- Home
- Company Settings
- Integration (Import & Export Data)
- Integration with BambooHR
Integration with BambooHR
Crystal Payroll supports a comprehensive level of integration with BambooHR, an HR Management Software used worldwide by over 30,000+ companies, both big & small. The integration with this Human Resources management system allows you to pull over employee information, send leave balances, and update pay rates with just the click of a button.
Setting Up BambooHR
First of all, ensure that you have purchased the Advantage package of BambooHR, as the Essentials package does not include Open API support, which is the method of which Crystal Payroll uses to connect to your HR System. See their packages here: Bamboo HR plans and pricing.

Log in to your BambooHR. Click your name or picture in the top right-hand corner of the page, and then choose "API Keys".

Click "Add New Key".

Enter the "API Key Name" as whatever you would like, but "Crystal Payroll" works.
Click "Generate Key".
Click "Copy Key" and paste this somewhere you will remember for later. If you do forget, you can just do this step again.
Select "Done".

From here, just check that the "Time Off" categories match the wording of Crystal Payroll. Basically, the names of the categories must match exactly with what is in Crystal Payroll. They cannot have any missing, additional, or different characters, and should be in the same units.
What this means is, that the following time off categories should be set up with these names:
"Annual Leave" for Annual Leave, and in the unit of hours. By default this is called Vacation Leave, so it must be changed, or a new category can be set up.
"Sick Leave" for Sick Leave, and in the unit of days.
"Alternative Leave" for Alternative Leave, and in the unit of days.
The easiest way to manage these three leave types in BambooHR, is to set all three of the above up as a "Manual Policy". This means that they will not accrue leave by BambooHR, and would be entirely controlled by Crystal Payroll. Ideally, the leave settings for an employee would look something like below:

This last step can only be completed on Tuesday to Saturday before 12:00 p.m. for each day, because it requires contacting BambooHR support who are American based. The option will not be present if you try any other time. All this will do is allow you to store the employee's additional details such as their IRD number and bank account, so that this integrates with Crystal Payroll. If you are not interested in this, then you do not need to do this step.
Otherwise, within Tuesday to Saturday and before 12:00 p.m. for each day, select the "Question Mark" button in the top right-hand corner of the page.
Select "Chat with us now".
Don't set up the fields yourself as they need special IDs set up in the background to match.

When the chatbox opens, and a representative is present, simply copy-and-paste the following text and send it to them. Use this verbatim (i.e., don't change the words at all) as otherwise this area of the integration may not work:
.I am setting up an integration with my payroll system and have been provided the following letter for you.
Please add the following tab and the fields under it, to the "People" dashboard.
New custom tab: "Payroll | CP".
New custom text field type: "IRD Number (000-000-000) | CP", with a background Obj ID of "customIRDNumberCP".
New custom text field type: "Tax Code (X or X XX or XX XX) | CP", with a background Obj ID of "customTaxCodeCP".
New custom text field type: "Withholding Tax Rate (%) (Optional) | CP", with a background Obj ID of "customWithholdingTaxRateCP".
New custom text field type: "Bank Account Number (00-0000-0000000-00) | CP", with a background Obj ID of "customBankAccountNumberCP".
New custom text field type: "Default Hours (M-T-W-T-F-S-S) | CP", with a background Obj ID of "customDefaultHoursCP".
New custom text field type: "KiwiSaver Employee Contribution (%) | CP", with a background Obj ID of "customKiwiSaverEmployeeContributionCP".
New custom text field type: "KiwiSaver Employer Contribution (%) | CP", with a background Obj ID of "customKiwiSaverEmployerContributionCP".
New custom text field type: "KiwiSaver ESCT Rate (%) | CP", with a background Obj ID of "customKiwiSaverESCTRateCP".
New custom text field type: "Casual Employee (Y or N) | CP", with a background Obj ID of "customCasualEmployeeCP".
New custom text field type: "Region for Anniversary Day (Optional) | CP", with a background Obj ID of "customRegionforAnniversaryDayCP".
All fields should be optional only, they must be text fields, and include all brackets / any characters within the quotation marks.
Warm Regards
Once the BambooHR representative has finished making the changes in your system, you should be good to go. You will have a new tab under each employee's name, and some additional fields you can enter. This new area should look just like below:

Setting Up Crystal Payroll
Head over to “Company Settings”, and then “Import/Export”. Under “API Settings”, select "BambooHR" from the "HR System" dropdown menu, and then select "Save"
Next, enter your "Client ID". Your "Client ID" is normally just the first part of your BambooHR domain. If you're not sure what that is, just go to your BambooHR login page. Look at the address along the top of the browser. The details before ".bamboohr.com" is your "Client ID".

Finally, enter your "API Key". You should have saved this when setting up BambooHR earlier.
Select "Save".

Using the Integration
From "Employee Settings", and then "Employee Details", select "BambooHR" in the top right-hand corner of the page.

There are three choices for you here:
You can import new emplyoees from BambooHR from the first tab
You can update an employee's pay rate from BambooHR from the second tab
You can update the employee's details from BambooHR from the third tab
All of the information excluding the leave balances is pulled from your BambooHR account. This means you would manage all of your employees details from BambooHR and then pull them over to Crystal Payroll whenever you need them.

The leave balances work the opposite way. When an employee takes leave or receives a new leave entitlement, you can send the updated balance to BambooHR by clicking "Step 2: Update Leave Balances" in the top right-hand corner.