Skip to main content

BambooHR integration - Setup guide with Planday

Sync employee data from BambooHR to Planday automatically using the BambooHR integration.

Written by Kyle

🔓 Access level in Planday: Administrator or HR Manager with access to all departments in Planday.

🌐 Subscription plan: Plus, Pro.

⏱️ Set up time: 10 min.

⏱️Reading time: 5 min.


Overview of the BambooHR integration

The BambooHR integration syncs your employee data from BambooHR to Planday. Data flows one way only — from BambooHR to Planday and BambooHR is the single source of truth. Changes made directly in Planday to synced fields will be overwritten on the next sync. Planday checks for changes in BambooHR automatically every 3 hours.

Key functionalities of the BambooHR integration:

  • Syncs new employees

  • Updates employee profiles

  • Creates or maps employee groups

  • Creates or maps departments

  • Deactivates terminated employees

  • Imports approved leave


Step 1: Configure permissions in BambooHR

The integration connects using the permissions of the BambooHR user who authenticates during setup. That user's Access Level in BambooHR must be configured to grant the minimum read permissions the integration requires.

Note: We recommend using an admin account set to access all employees rather than direct reports only. If the connecting account is limited to direct reports, the integration cannot access deactivation information and will be unable to automatically deactivate terminated employees in Planday.

To configure permissions:

  1. In BambooHR, click the cog icon in the top-right corner.

  2. In the Settings sidebar, click Access Levels.

  3. Select the Access Level assigned to the connecting user, or create a new one and assign the user to it. When creating a new level, select Custom Access Level.

  4. Click Access Level Settings and edit the permissions to match what the Kombo connection flow requests during setup.

  5. Where the connection flow specifies View only, set the permission to View Only. Where it requests view and edit access, set it to Edit.

Note: The exact permissions required are shown during the connection flow in Step 2 below. Review the connection flow to confirm which permissions to enable.

A detailed guide on the prerequisites in BambooHR can be found here: Integration between Planday and BambooHR


Step 2: Complete the setup in Planday

You can connect an HR integration from any of these pages in Planday:

  • Planday-Web > Settings > Integrations > Overview > BambooHR > Set up

  • Planday-Web > People > Employees > Create employees > Connect with HR system

    1. Choose whether you want to disable any optional scopes (such as pay rates if you don't want to transfer salaries)

    2. When prompted, enter your BambooHR subdomain (the part before .bamboohr.com).

    3. Click Sign in with BambooHR. A pop-up window will open — enter the email address and password of the BambooHR user account whose Access Level you configured in Step 1.

    4. Configure Filter: Select any filters to apply to manage which employees are imported from BambooHR to Planday.

    5. Review and confirm: Review the data to be synced and confirm.

Note: If you want employees to be imported into Planday who has a start date in the future (eg. to schedule them before they start). When configuring the filter during setup (or reconfiguring it), make sure to include the employment status "Pending." This ensures employees who haven't started yet are still imported ahead of their start date. Remember that Planday charges users in blocks of 5 so this might affect your invoices.


Step 3: Onboarding wizard: flexible entity mapping

After connecting and filtering, a guided wizard walks you through how your BambooHR data maps into Planday.

Wizard step 1 — Configure entity mapping

  • Choose how each BambooHR entity type maps to Planday:

BambooHR entity

Can map to

Departments

Planday Departments, Planday Employee Groups, or skip

Teams (Teams in Bamboo are stored as a custom field and cannot be mapped automatically. Contact Planday Support to configure team mapping for your account)

Planday Departments, Planday Employee Groups, or skip

Work locations

Planday Departments, or skip

Positions / job titles

Planday Employee Groups, or skip

Note: If all entity mappings are skipped, the integration will create one default department and one default employee group called BambooHR automatically.


Wizard step 2 — Map departments

  • Review which BambooHR entities will create or update departments in Planday. Confirm or adjust the assignments before continuing.


Wizard step 3 — Map employee groups

  • Review which BambooHR entities will be used to assign employees to groups in Planday. Confirm or adjust the assignments.


Wizard step 4 — Configure absence and employee settings

  • Select which absence policies from BambooHR to sync to Planday.

  • Choose whether an open shift should be created when an absence is imported on a day where the employee already has a scheduled shift.

  • Choose whether new employees added through the integration should automatically receive an invite email to Planday.


Wizard step 5 — Review and confirm

  • Review all your configuration choices. Once you confirm, the integration status moves to pending and the first full sync begins. The integration is marked as complete once the initial sync finishes.


Data mapping between BambooHR and Planday

Standard fields are mapped automatically. The table below shows the default field-to-field mapping.

BambooHR fields that Planday map

Employee fields

The following employee data syncs from BambooHR to Planday:

  • First name and last name

  • Email address

  • Mobile phone number

  • Date of birth

  • Start date

  • Termination date

  • Home address (street, city, postcode)

  • Gender

  • National ID / SSN

  • Employee number

  • Profile picture

Salary
Pay rate and pay period sync from BambooHR to Planday. Salary data is drawn from employment records in BambooHR. For salary to sync, the currency in BambooHR must exactly match the currency in your Planday portal. The integration does not convert between currencies.

Absences
Absence types and absence records sync from BambooHR to Planday. Absences that started in a previous calendar year cannot be synced retroactively. These must be created manually in Planday from the start of the current year.


1) Mapping Logic — Job title history

BambooHR stores the full history of all job titles an employee has held, each with an effective date but no end date or active flag. The integration reads this history and syncs only the most recent job title as the employee's group in Planday.

This means:

  • An employee who has been promoted will only be assigned the group matching their current job title.

  • If an employee holds more than one role at the same time, BambooHR's job title history cannot represent this — only the most recent title syncs. Additional concurrent employee groups must be added manually in Planday.

  • Periodically review employee groups in Planday to ensure they reflect actual scheduling needs, especially after promotions or role changes.

Note: Planday Departments are only created for groups that contain employees currently being imported.

2) Mapping Logic — Department and employee group mapping

Departments are additive only. When an employee's department changes in BambooHR, the integration adds them to the new department in Planday but does not remove them from existing departments. Manual department assignments in Planday are preserved across every subsequent sync. Removals must be done manually.

Employee groups follow the same additive logic. When a job title changes in BambooHR, the employee is added to the new group but not removed from any existing ones. All group removals must be done manually in Planday.

If two departments share the same name across different contexts, the integration distinguishes them by prefixing the parent context. Where names remain ambiguous, the group type is appended (e.g., "Location X - Service (Department)").

The integration always creates new Employee Groups rather than modifying existing ones. If a group named "Bartenders" already exists, a new group is created with a suffix (e.g., "Bartenders-BambooHR"). This suffix rule is applied only once to prevent endless duplicates.


Important notes and limitations

The BambooHR integration is designed to be a "single source of truth" system, where BambooHR manages all employee data, which is then synced to Planday.

BambooHR is the single source of truth

  • Changes to synced employee fields made directly in Planday will be overwritten on the next full sync. Make all data changes in BambooHR.

  • Email address is an exception. The email in Planday functions as the employee's login username. Changing it in BambooHR will not update it in Planday, to prevent employees from being locked out. Email changes must be made directly in Planday.


Teams require CX support

  • Teams in BambooHR are a custom field and cannot be mapped automatically. Contact Planday Customer Experience to configure team mapping for your account.


Filters are set at connection

  • To change which employees are included in the sync, you must disconnect and reconnect the integration.

  • Reconnecting removes links after one month. If the integration is disconnected for more than one month, all links between BambooHR and Planday profiles are permanently removed. Reconnecting within one month preserves existing links.

Why might this cause duplicates?

This loss of links becomes critical when the primary identifier (e.g. Email/Username) has been changed in BambooHR but has not yet been updated in Planday. Since the Email in Planday is an exception to the One-Way Data Sync rule, the email change in BambooHR will not automatically update the corresponding Planday profile. If the integration is deactivated and reactivated in this state, the system will not recognise the profiles as the same user and will re-create the user as a duplicate in Planday.


Manual deactivations in Planday are not auto-reversed

  • If you manually deactivate an employee in Planday who is still active in BambooHR, the sync will not reactivate them. Reactivate them manually in Planday, or deactivate and reactivate in BambooHR to trigger the change.


Deactivated employee shifts are not deleted

  • When a termination date is reached in BambooHR, the employee's Planday profile is deactivated but their assigned shifts remain. Managers must reassign or delete those shifts.


Required Planday fields can block sync

  • If your Planday portal has custom required fields not covered by the integration mapping, the sync for affected employees may fail until those fields are populated manually.


Sync Frequency

  • The integration automatically syncs data every three hours. A manual "Sync now" button is also available in the integration settings.

Note: The automatic sync (every 3 hours) is a partial sync that only captures changes, whereas the manual "Sync now" button triggers a full sync of all data.


Credential failures and sync delays

  • When you update your BambooHR login credentials, the integration will continue attempting to connect using the new credentials. If those credentials are invalid, the integration keeps retrying for up to 24 hours before marking the connection as failed. During this retry period, Planday will still show the integration as syncing successfully — even though no new data is imported. Once the connection is confirmed as failed, a Reconnect button will appear. Click it to re-enter your credentials. You will not need to reconfigure filters or mapping.

Note: Data syncs — including absence imports — can be delayed by up to 24 hours if there are credential or availability issues on the BambooHR side.


How to import leave data from BambooHR to Planday

When Absence Sync is enabled for your BambooHR integration, approved leave recorded in BambooHR is automatically imported into Planday. BambooHR remains the single source of truth for all absence data; Planday simply reflects what has been approved in BambooHR. Employees should book leave via BambooHR.

Note: Accruals are not imported to Planday, so employees cannot use Planday to check their holiday balances.

How leave is displayed in the schedule

  • Visual leave indicators: Approved absences from BambooHR are shown on the schedule as a leave bar (blue bar) so managers can quickly see when an employee is unavailable.

  • Existing shifts: If an employee already has a shift in Planday on a day where BambooHR reports approved leave, that shift is either not automatically converted to an Open Shift or left as is, depending on the integration setting. The setting can be updated by going to Planday Web > Settings > Overview > BambooHR > Set up.

  • Approved leave only: Only approved absences from BambooHR are synced into Planday; pending absences are ignored.


Handling of partial leave days

  • A note will be added to the leave in Planday clarifying that the employee is off for only part of the day.


BambooHR leave configuration

  • Direction of sync: Leave sync is one-way (BambooHR to Planday). All accruals, approvals, and policy checks happen in BambooHR.

  • Enable/disable: Leave Sync is controlled via a toggle in the integration settings, and each imported absence event is logged in the Integration Sync Log for traceability. Leave sync is on by default.


Historical leave: Absences that started before the current calendar year cannot be synced. If an employee has an ongoing absence that began in a previous year (such as maternity leave), it must be created manually in Planday from the start of the current year to the end.


ℹ️ Need more help?

🔍 Search the Help Center | See videos at Tutorials.Planday.com | Watch a webinar

💬 For personalised support

Login and contact our support team via the blue icon at the bottom if you have more questions or book a one-to-one professional training session with an expert.

Did this answer your question?