Skip to main content
Beebole’s BambooHR integration connects your BambooHR account to Beebole so that approved time-off requests are automatically reflected as absence records. When you enable the integration, Beebole imports your BambooHR employees and maps your BambooHR time-off types to Beebole absence types, then syncs approved requests every 24 hours.

What syncs and what stays in Beebole

You need administrative privileges in both BambooHR and Beebole to set up the integration.
What syncs from BambooHRWhat stays in Beebole
Employees: Imported as Beebole people.Timesheet entries: Managed exclusively in Beebole.
Time-off types: Mapped to Beebole absence types.Approval workflows: Beebole handles its own timesheet lifecycle.
Approved time-off requests: Created as Beebole absence records.Billing rates and budgets: Set within Beebole’s billing and budget settings.

What’s included

BambooHR employees with a work email address are created as people in Beebole during the initial setup. If an employee’s email already exists in Beebole, the integration links to the existing person instead of creating a duplicate.
BambooHR time-off types are matched to Beebole absence types by name (case-insensitive). If a matching absence type exists in Beebole, the integration links to it. If no match is found, a new absence type is created automatically. Time-off types measured in hours are configured with an hourly unit in Beebole.
BambooHR’s paid/unpaid setting is not carried over — all imported absences are created as paid in Beebole, even if the time-off type is unpaid in BambooHR. After the import, edit the created absence type in Beebole and adjust Is paid (included in people costs) to replicate the unpaid setting manually.
Approved time-off requests from the start of the current year through one year from today are imported as Beebole absence records. Each request is processed per calendar day. If a request changes after import (dates, amount, or notes), Beebole updates the corresponding absence record on the next sync.Records removed from BambooHR within the sync window are also removed from Beebole.
When a time-off request is measured in days, Beebole calculates the absence duration using the employee’s assigned work schedule. If the employee has no schedule assigned, Beebole defaults to an 8-hour workday.

Step-by-step configuration

1

Enter your BambooHR company subdomain

Go to Settings > Integrations > BambooHR. In the Company subdomain field, enter your BambooHR subdomain (for example, enter acme if your BambooHR URL is acme.bamboohr.com).
2

Connect to BambooHR

Click Connect to BambooHR. A popup opens to authorize Beebole to access your BambooHR account. Complete the authorization flow. The popup closes automatically when the connection is established and your BambooHR domain is displayed as confirmed.
3

Set the default role for imported employees

Select the Default role for imported employees. This role is assigned to any BambooHR employee who is created as a new person in Beebole during import.
You can review and manage existing roles in Settings > Person roles.
4

Set the default role for imported employees

Select the Default role for imported employees. This role is assigned to any BambooHR employee who is created as a new person in Beebole during import.
You can review and manage existing roles in Settings > Person Roles.
5

Enable the integration

Click the toggle to Enable integration. Beebole immediately:
  1. Imports all BambooHR employees (creating new Beebole people where needed).
  2. Maps BambooHR time-off types to Beebole absence types.
  3. Imports approved time-off requests for the current year through one year from today.
The initial import may take a few moments. A summary shows how many entries were successfully imported and lists any entries that could not be processed.
6

Enable the integration

Click the toggle to Enable integration. Beebole immediately:
  1. Imports all BambooHR employees (creating new Beebole people where needed).
  2. Maps BambooHR time-off types to Beebole absence types.
  3. Imports approved time-off requests for the current year through one year from today.
The initial import may take a few moments. A summary shows how many entries were successfully imported and lists any entries that could not be processed.
7

Validate and manually sync

Once enabled, go to the Absences section to verify that imported records appear correctly. The integration syncs automatically every 24 hours.To trigger an immediate sync at any time, go to Settings > Integrations > BambooHR and click Manual sync under Manually sync last changes from BambooHR.
8

Validate and manually sync

Once enabled, verify that imported records appear correctly: the absences show as Time off on the affected people’s timesheets, and you can run a report in Reports to review them across your team. The integration syncs automatically every 24 hours.To trigger an immediate sync at any time, go to Settings > Integrations > BambooHR and click Manual sync under Manually sync last changes from BambooHR.

Disabling the integration

If you disable the integration, automatic syncing stops. Previously imported absence records remain in Beebole as local records and are not deleted.
To disable the integration, go to Settings > Integrations > BambooHR and toggle the integration off. You can re-enable it at any time to resume automatic syncing. To disconnect your BambooHR account entirely, click Reset connection. This removes the OAuth connection and clears all integration mappings.

Time off and absences

Manage absence types, quotas, and time-off requests in Beebole.

People management

Add and manage employees, roles, and schedules in your Beebole account.

Custom integrations

Build your own integrations using the Beebole GraphQL API.

All integrations

Explore all available Beebole integrations.

Frequently asked questions

The integration syncs approved time-off requests from January 1st of the current year through one year from today. Requests outside this window are not imported. You can trigger a manual sync at any time from the integration settings page.
If no Beebole absence type matches the BambooHR time-off type name exactly (case-insensitive), the integration creates a new absence type automatically. You can rename or reconfigure the created absence type in Settings > Time Off.
Yes. The integration automatically links a BambooHR employee to an existing Beebole person if their work email addresses match. If no match is found, a new person is created with the default role you selected during setup.
For requests measured in days, Beebole multiplies the day amount by the employee’s scheduled working hours for that day (based on their assigned work schedule). If the employee has no schedule, Beebole uses 8 hours per day as the default. Requests measured in hours use the exact hourly amount from BambooHR.
No. All absences imported from BambooHR are created as paid in Beebole, regardless of how they are defined in BambooHR. To treat a type as unpaid, edit the corresponding absence type in Beebole after it has been created by the import and turn off Is paid (included in people costs).
On the next sync, Beebole updates or removes the corresponding absence record to match the current state of approved requests in BambooHR. Records that no longer appear in the BambooHR response within the sync window are deleted from Beebole. You can also trigger a manual sync immediately from the integration settings page.