BambooHR HRIS Integration with Peoplebox
This guide is for customers integrating BambooHR with Peoplebox. Since this integration is configured by the Peoplebox
team and does not have a self-serve setup, our team will complete the backend configuration for you.
This document outlines the setup requirements, the employee data that gets synced, the sync schedule, and what you can
expect once the integration is live.
1. Overview
Peoplebox syncs employee data from BambooHR using BambooHR's Custom Reports API. Once the integration is configured,
employee information is automatically synchronized with Peoplebox every day. BambooHR acts as the system of record,
ensuring employee details, reporting hierarchy, and departments remain up to date.
Share the following with your Peoplebox contact before setup begins:
2. BambooHR API Key
Generate an API key in BambooHR:
1. Log in to BambooHR as an admin.
2. Click your name in the top-right corner.
3. Select API Keys.
4. Click Add New Key.
5. Give it a name (for example, Peoplebox Integration).
6. Copy the generated API key.
Important: The API key is sensitive. Share it securely (for example, via a password manager link or encrypted message).
Do not send it in plain email.
3. BambooHR Company Domain
Provide your BambooHR company subdomain.
- Example: If your BambooHR URL is: https://acme.bamboohr.com
- Your company domain is: acme
4. Field Mapping
Peoplebox needs to know which BambooHR field names correspond to each Peoplebox attribute.
Below is the standard mapping. If your BambooHR instance uses different field names (common for custom fields), let your
Peoplebox contact know which BambooHR field should be used for each attribute.
- Employee ID → employeeNumber
- Work email → workEmail (Note: Employees without a work email are skipped)
- Full name → fullName1
- Hire date → hireDate (Must be in YYYY-MM-DD format in BambooHR)
- Termination date → terminationDate (Automatically cleared for Active employees)
- Gender → gender (not_specified is treated as blank)
- Manager email → supervisorEmail (Used to build the reporting hierarchy)
- Department → department(Creates the department automatically if it does not exist)
- Job title → jobTitle
- Location → division
- Employment type → employmentHistoryStatus
- Phone number → (Optional) Specify the BambooHR field name to be used.
5. Profile Pictures (Optional)
Peoplebox can import employee profile photos from BambooHR. If you want this enabled, let your Peoplebox contact know.
Note: Enabling profile picture sync adds one extra API call per active employee during each sync.
6. What Gets Synced
Each daily sync performs the following actions:
- Creates new Peoplebox employees for anyone added to BambooHR since the last sync.
- Updates existing employees if their BambooHR data has changed (name, title, department, manager, etc.).
- Deactivates employees who are no longer returned by BambooHR (their date_of_exit is set to today's date in
Peoplebox).
- Builds the org chart using the supervisorEmail field.
- Creates departments automatically if they do not already exist in Peoplebox.
7. What Is Not Synced
The BambooHR integration does not sync:
- Custom BambooHR fields that are not included in the field_mapping.
- Team or group memberships (managed separately in Peoplebox).
- Department hierarchies (departments are synced as flat names only).
8. Sync Schedule
The BambooHR integration sync runs automatically with the following schedule:
- Frequency: Once per day.
- Time: Approximately 12:30 AM UTC.
- Trigger: Automatically triggered via the scheduler.
9. How Active vs. Inactive Employees Are Handled
Peoplebox uses the BambooHR status field to determine employee activity.
- If the BambooHR status is Active:
- The employee remains active in Peoplebox.
- The termination date is ignored, even if it contains a value or is blank.
- If the BambooHR status is Inactive and a valid termination date (YYYY-MM-DD) is available:
- The employee is set to inactive in Peoplebox using the termination date from BambooHR.
- If the BambooHR status is Inactive but the termination date is missing or invalid:
- The employee is set to inactive in Peoplebox using today's date as the termination date.
- If the employee is not returned in the BambooHR sync results:
- The employee's date_of_exit is set to today's date in Peoplebox and they are treated as terminated.
10. How the Manager Hierarchy Is Built
Peoplebox uses the supervisorEmail field to link each employee to their manager. For manager relationships to be
created:
- The manager must also exist as an employee in Peoplebox.
- The manager must be included in the BambooHR sync results.
If a manager is not included in the sync, the reporting relationship is not created.
11. Checklist Before Go-Live
Before enabling the integration, ensure that:
- BambooHR API key has been generated and shared securely.
- BambooHR company domain has been confirmed.
- Field mapping has been reviewed.
- Custom field names have been shared, if applicable.
- Employee filters have been finalized (or confirmed that all employees should be synced).
- Profile picture sync preference has been confirmed.
- The Peoplebox team has completed the backend configuration.
- An initial manual sync has been triggered, and the results have been reviewed.
12. Troubleshooting
- An employee is missing from Peoplebox after sync?
Ans: Check the following,
1. Ensure the employee has a work email in BambooHR. Employees without an email are always skipped.
2. Verify that an active filter is not excluding the employee (for example, based on employment type).
3. Confirm the employee's BambooHR status is Active and they are not marked as terminated.
- An employee shows as inactive, but they are still at the company?
Ans: Possible reasons include,
1. The employee's BambooHR status is set to Inactive.
2. The employee no longer appears in the BambooHR custom report results (for example, due to a filter change). If an
employee is not returned by the sync, Peoplebox automatically deactivates them. Review the configured filter rules.
- Manager relationships are missing or incorrect?
Ans: Verify that,
1. The supervisorEmail field contains the manager's work email (not a personal email).
2. The manager is also included in the BambooHR sync results.
3. The manager is not excluded by any configured filters. If the manager is filtered out, the reporting relationship
cannot be created.
- The sync has not run recently?
Ans: The sync runs automatically once every day at approximately 12:30 AM UTC. If you need an immediate update, contact
the Peoplebox team to trigger a manual sync.
13. Frequently Asked Questions
- Can we choose which employees to sync?
Ans: Yes. Filters let you include or exclude employees based on any BambooHR field, including employment type,
department, location, termination date, and more. Share your criteria with the Peoplebox team during setup, and they
will configure the filters before the first sync.
- What happens if we have employees in Peoplebox who are not in BambooHR?
Ans: Employees created manually in Peoplebox (not originating from BambooHR) are untouched. The sync only manages
employees whose employee_source is bamboo_hr. If you want all employees to be managed by the sync going forward, the
Peoplebox team can migrate existing records.
- Will the integration overwrite changes we make manually in Peoplebox?
Ans: Yes. For fields that are part of the sync, BambooHR is the system of record. If you update a synced field in
Peoplebox but the BambooHR record still has the previous value, the next sync will overwrite it.
- How do we update the field mapping or filters after go-live?
Ans: Contact the Peoplebox team. There is no self-serve UI for this integration, so all configuration changes are made
on the backend. Changes take effect from the next scheduled sync.
- Can we sync employees from multiple BambooHR accounts?
Ans: No. Each Peoplebox account can be connected to only one BambooHR configuration. If your organization uses multiple
BambooHR instances, contact the Peoplebox team to discuss available options.
- What BambooHR permissions does the API key need?
Ans: The API key inherits the permissions of the BambooHR user who created it. At a minimum, that user should have read
access to the employee fields being synced (such as name, email, job title, department, and manager). If profile
pictures are enabled, the user must also have read access to employee photos. We recommend using a dedicated read-only
integration user.
- How soon after setup will the first sync happen?
Ans: After the integration is configured, the Peoplebox team will trigger a manual sync so you can review the results
before the automated daily sync begins.
- What happens if BambooHR is down or the API returns an error?
Ans: The sync fails silently for that day, and no data is deleted or modified in Peoplebox. The next scheduled sync will
automatically attempt again the following day. Contact the Peoplebox team if you need to confirm whether a sync
completed successfully.