The BambooHR integration was designed to allow you to easily launch a Workflow for each candidate that is hired. We use BambooHR's native webhook capabilities along with information from their API in order to launch your Enboarder Journeys. Here's how it works!

Before you begin: Like anything worth doing, integrations take time. Please allow up to 4 weeks for this integration to be completed, this includes time for scoping, development and testing. You’ll also need to have a system expert and/or system administrator to assist in the completion of this integration.

Click the hyperlinks below to skip to that topic!


How It Works

When a candidate is hired by clicking on the 'Hire' option, a dialog box will open showing the button 'Add New Employee'. Clicking this button will allow you to fill out the info required to hire the candidate and get them on their way to Enboarder.

All candidates are converted to employees when an offer is signed and the candidate is marked as hired in BambooHR. You will need to enter the hire date and the email address or mobile number while creating the new employee record.

It's very important that you uncheck the 'New Hire Packet' button so that the candidate doesn't go through the BambooHR Onboarding process. ⚡️

Instead, we'll be launching them into Enboarder. All that's left is to click 'Save' to launch the new hire's onboarding Workflow!


The Integration Setup

Step 1: Copy your custom BambooHR domain prefix

A BambooHR Admin must first log in to BambooHR and copy your custom BambooHR domain prefix. If your custom domain is https://enboardersandboxaccount.bamboohr.com, then copy just the 'enboardersandboxaccount' part.

While logged in, you should also go to Settings > Account > Webhooks. Please check that you have permission to add webhooks to the system by clicking 'Add Webhook'.

We'll return to configure this webhook later!

Step 2: Enboarder Integration Setup 

This step requires an Enboarder Admin to paste the custom BambooHR domain prefix and copy your custom webhook URL.

First, navigate to Settings > Apps & Integrations > App Center.

Click on the tile 'BambooHR' tile.

When you click on 'Add Integration' you will be asked to enter the BambooHR custom domain prefix from our previous step. 


The Filters Setup

To exclude certain hires from being launched into Enboarder, you can use the 'Additional Filter' line within the Integration Tile in Enboarder.

In order to determine which employees do launch in Enboarder, and which don't, you can apply a simple filter as below:

{{BambooHRColumnName}} = {{possible values comma separated}}

For example - if the column name is Department, and the possible values are Sales or Marketing then the filter will be: Department=Sales, Marketing

This will mean that anyone being hired with their department as either Sales or Marketing WILL launch to Enboarder. But in this case, if you're hiring someone in Support, they will NOT launch to Enboarder.

You'll also see the custom Webhook URL on the tile as well which you'll need to copy and pop into Bamboo a bit later on.

Once you've copied the Webhook URL, click 'Integrate Now' which will open up the Bamboo HR log-in page, where you will log in with your BambooHR Admin credentials.

Once you've passed the admin authentication, Enboarder will mark the tile as integrated.

Step 3: Webhook Setup in BambooHR

Next, your BambooHR admin will log in and go to Settings > Account > Webhooks and click on 'Add Webhook' as tested in the first step.

Provide a name for the new webhook such as 'Enboarder Integration'. Please select 'Hire Date' from the choice 'What fields do you want to monitor'.

In the next section provided, called 'What fields do you want to post', select the fields which you want to send across to Enboarder. (See note below).

Please note that the below fields are mandatory to select in order for the Integration to work:

  • Name

  • Work phone

  • Work Email

  • Supervisor EID

  • Mobile Phone

  • Home Email

  • Home Phone

  • Hire Date

In the next section you see, please select the following:

  • The JSON format for the data

  • Paste the webhook URL from Enboarder, which you have copied in the previous step, in the field labeled 'Post to URL'

  • Set the frequency of the webhook based on your requirements

  • Click Save and you're all set!


Additional Integration Notes

Field Mapping in Enboarder

Below is the mapping that we have already done for you with regard to launching. This means that you won't need to adjust names in Bamboo or Enboarder for the below.

For anything else (like custom fields) names must match accordingly in both systems.

Send Data From Enboarder back into BambooHR via JSON Webhook (Advanced)

To send employee data back into BambooHR, you will need to configure the HRIS API in a send data webhook module. Please see the detail of this API at https://documentation.bamboohr.com/reference.

If you want to update an employee's details or get an employee's information, you will need to pass the employee ID in the URL. In this case, add a new Custom Field, 'empid', in your Enboarder workflow. The system will auto-populate this data when data is pushed into Enboarder from BambooHR's webhook. You can use this for updates or RestAPI GET requests.

The BambooHR API uses basic-auth for authentication. You will need to first get the API key from the BambooHR portal > APIKeys. Create a key if one does not already exist.

Once a key is created, then you will need to encode an apikey:x and complete the header information. You can use any online tool to encode this information.

In the request header, the key will be Authorization and value will be Basic EncodedString as shown in the below image.

Your custom payload should be designed in the same JSON structure required by the BambooHR API documentation.

Troubleshooting 

You can now investigate mapping issues very easily from the Enboarder logs. The API response is now available in your Enboarder account. Please go to Settings > Apps & Integration > Integration Logs to view the complete payload. There may be multiple rows for each new hire. One row contains the complete response message and the others will provide info from the webhooks.

Click on a row with a blank 'Employee' field to see the complete payload.


BambooHR Launch, Update Cancel use cases

The webhook URL is changed. Earlier our endpoints started with the below:

Now our new endpoints start with:


New list to choose action

The admin can select the option to select the option Launch, Update and Cancel mode.

Steps:

  1. Login as an admin user in Enboarder and got to Setting → Apps and Integrations → Bamboo HR tile.

2. Now the admin can select the mode in which Integration will work. Please select the mode and save the integration.

Here are the options provided

(Relaunch is launching a brand new Workflow, it doesn't restart a canceled Workflow)


Integration mode and its behavior

Integration

First Time

Next Time

Additional comments

Launch Only

Process the data and launch the workflow.

Also, upload the profile pic if exists in BambooHR

In case Enforce Candidate ID as a unique ID flag is set then the payload will be rejected otherwise another workflow launched in the system.

Launch, Update

Process the data and launch the workflow.

Also, upload the profile pic if exists in BambooHR

In case the Workflow is In Progress, canceled or deleted then update it. Otherwise, provide an error that the workflow state is invalid.

Launch, Cancel

Process the data and launch the workflow.

Also, upload the profile pic if exists in BambooHR

In case the Workflow is In Progress, canceled or deleted then update it. Otherwise, provide an error that the workflow state is invalid.

Launch, Update, Cancel

Process the data and launch the workflow.

Also, upload the profile pic if exists in BambooHR

In case the workflow is In Progress, canceled or deleted then:

  • Check the payload if Employee status is coming and its value is Terminated.

  • If yes then it will cancel the payload otherwise update it

Otherwise provide an error that the workflow state is invalid.

Launch, Update, Cancel and Relaunch

Process the data and launch the workflow.

Also, upload the profile pic if exists in BambooHR

  • Check the payload if the Employee status is coming and its value is not Terminated then update the workflow if the workflow status is In Progress, cancel or delete.


Configuring Bamboo HR Webhook

In Bamboo HR, the admin can configure multiple webhooks or they can configure multiple columns to watch. Based on this, Enboarder can receive multiple webhooks with different data for the same employee.

Steps:
1. Login in bamboo HR. Go to Settings → Account → Webhooks and click Add Webhook button

2. Provide the name of the webhook. Please select fields from What fields do you want to monitor

  • The user can select multiple fields to monitor. If any field changes then the webhook will be called.

  • Users can select multiple fields to push in webhooks


Configuring Employee status fields

  1. Please add the below fields in the webhook


How to terminate Employee

To terminate an employee in BambooHR,

  1. login into your account

  2. Go to the detail of the employee account

  3. Click on “Update Employment Status”

  4. Change Employment Status to Terminated.

  5. Fill type, reason, and other information and save it.

In the webhook add Employment Status as a field to monitor and to receive the termination request.

{
"employees": [
{
"changedFields": [
"Employment Status - FTE"
],
"fields": {
"Employee #": "6",
"Status": "Inactive",
"Birth Date": "1970-09-01",
"Gender": "Female",
"City": "Pleasant Grove",
"Mobile Phone": "XXXXXXXX",
"Work Email": "jennifer@XXXXXXXXXX.com",
"Start Date": "0000-00-00",
"Hire Date": "2016-11-28",
"Employment Status - FTE": "Terminated",
"Effective Date": "2021-10-27",
"Termination Type": "Voluntary",
"Termination Reason": "Other employment",
"Eligible for Rehire": "Yes",
"Comment": "temeiante test"
},
"id": "9"
}
]
}

Prevent duplicate launches from BambooHR

Making changes in Bamboo HR for the candidate could result in the candidate launching multiple times in Enboarder. In order to prevent a candidate from experiencing multiple launches, simply click the "Enforce Candidate ID as Unique ID" checkbox in the Enboarder. If you have already integrated, simply update the integration and ensure this box is checked!


If you have any questions about this process, don't hesitate to reach out to the Support team by clicking the '?' button at the top right of any Enboarder page. Alternatively, you can email us at support@enboarder.com 🎉

Did this answer your question?