Skip to main content

BambooHR Integration

Sync employees, time-off categories, and periods from BambooHR to Productive.

Automatically sync employee data and time-off information between BambooHR and Productive.


When a new employee is added in BambooHR, a user can be automatically created in Productive with their basic info — name, email address, and manager.


You can also sync additional BambooHR fields into employee fields in Productive to enrich employee profiles.

📌 Important: For the sync to run smoothly, make sure users have matching email addresses in both BambooHR and Productive.

Integration Setup

1) Access the App Marketplace

Go to Settings > App Marketplace in Productive and find BambooHR in the list of available apps. Click Connect App.

2) Connect BambooHR

Make sure you have admin permissions in BambooHR before connecting.
If you proceed without them, Productive will only sync your personal time-off data, not your organization’s.

Enter your BambooHR subdomain (for example, if your BambooHR login is acme.bamboohr.com, enter acme) and complete authentication.

Once connected, you’ll see a confirmation message: Successfully connected to BambooHR! Here, select which sync options you want to enable:

  • User provisioning

  • Time-off sync

If you select only Time-off sync, click Save to complete the setup.
If you select User provisioning (alone or in combination with time-off sync), click Next to define how users should be created in Productive.

Integration Settings

Step 1: Define Subsidiary

You can choose how Productive assigns subsidiaries to new users created from BambooHR.

This mapping ensures employees are automatically placed under the right subsidiary based on their BambooHR data.

Use default subsidiary

Assign all provisioned users to one subsidiary in Productive.

Sync from BambooHR

Choose a single-select field (e.g. Location) from BambooHR and map each of its values to subsidiaries in Productive.

Step 2: Connect Employee Fields

Enable the Connect employee fields toggle to sync additional BambooHR data into Productive.

This lets you map BambooHR fields to existing employee fields in Productive. For example:

  • DepartmentDepartment

  • Effective DateDate joined

If you enable Allow new values, new entries from BambooHR that don’t yet exist in Productive (for example, a new department name) will be automatically added to the corresponding dropdown list in Productive.


This helps keep your employee records in sync without manual updates. These synced fields appear in the Info tab of each employee’s profile in Productive.

Click Save to finish setup.

Step 3: Set Up User Provisioning Exclusions

Under User provisioning → Additional user filtering, you can define criteria to exclude specific BambooHR employees from being provisioned in Productive.

Select a single-select BambooHR field and one or more Field values. Employees who match that field and value combination will be skipped during provisioning.

For example, to exclude hourly and commission-only workers, select Pay Type as the BambooHR field and add Hourly and Commission Only as the field values.

📌 Exclusion criteria only affect new user creation. Users already created in Productive are not affected.

Step 4: Time-Off Category Settings

Under Pull time off from BambooHR to Productive, choose which categories to sync:

  • All categories – Syncs all time-off categories you have set up in BambooHR.

  • Only specific categories – Lets you select which categories to sync and how they map in Productive. Add categories to the Time off field to sync them as time off, or to the Remote work field to sync them as remote work days instead. Categories not added to either field are not synced.

How Employee Syncing Works

After setup, Productive automatically syncs employee data from BambooHR once every hour.

  • Automatic user creation – New employees in BambooHR are automatically added to Productive with their name, email, and manager. Employees who match your additional user filtering criteria are skipped.

  • Organizational hierarchy – Managers are created first, followed by employees, ensuring relationships are correctly assigned.

  • Seat limits – If there aren’t enough available seats in Productive, Productive will create as many users as possible and then send an email prompting you to increase your seat count.

  • Deactivation – When an employee’s status changes to inactive in BambooHR (for example, when you click End Employment), Productive automatically deactivates that user as well. Their seat needs to be manually removed in Settings > Billing in Productive.

After User Provisioning: Setting Up Synced Employees

Once employees are synced from BambooHR, they will initially have Staff permissions and will not have cost rates assigned. To fully set them up in Productive:

1) Go to Resourcing > Employees. Synced users will have a sync icon next to their name.

2) Open their profile and navigate to the Info tab. Adjust the permission set as needed to match their role.

3) Open the Cost Rate tab and add the employee’s cost rate (salary or hourly rate). This ensures they can track time and allow for accurate project cost calculations and profitability reporting.

Newly synced users will receive an email invitation to set up their password in Productive. After that, they'll be able to access your organization.

Make sure you add them to relevant projects, budgets, and deals so they can start contributing and tracking time, expenses, and other activities.

How Time-Off Syncing Works

Once connected, Productive will sync the following from BambooHR:

Absence Categories

  • Time-off categories from BambooHR are synced to Productive and appear in Settings > Absence.

  • Each category is also added to the user's Absence tab as an unlimited absence allowance.

📌 Don't see a category or allowance yet? It will appear in Productive once the first time-off booking of that type is approved and synced from BambooHR.

Time-Off Periods

  • Approved absences from BambooHR will appear in Productive as daily or hourly time-off periods, including half-days.

  • Time-off data is synced according to the following rules:

1) Initial Sync

  • Time-off periods with a start date up to 3 months in the past and up to 1 year in the future are imported when the integration is first connected.

2) Ongoing Sync

  • Every hour, Productive syncs all time-off periods with a start date up to 1 year in the future.

  • Once per day, time-off periods with a start date up to 2 weeks in the past are also synced.

  • The sync window moves forward each day. For example, on January 1, 2025, Productive will sync periods up to January 1, 2026—but not yet January 2, 2026.

Deleted Events

  • Deleted time-off events in BambooHR are synced to Productive every 3 days—no need to delete them manually.

Visibility in the Resource Planner

Time-off periods synced from BambooHR are marked as imported from external software in the Resource Planner.

Editing, Removing, and Manually Syncing the Integration

You can manage your BambooHR integration at any time from the App Marketplace.
Hover over the BambooHR app to see when the last sync occurred and choose from the available actions:

  • Sync manually (🔁) – If you’ve just added a new employee in BambooHR or updated an existing user, you don’t need to wait for the hourly automatic sync. Click this button to immediately pull the latest data into Productive.

  • Edit integration settings (✏️) – Update your user provisioning options, field or subsidiary mappings, additional user filtering criteria, and time-off category settings.

  • Delete the integration (🗑️) – Disconnect BambooHR from Productive and stop all automated syncing.

Did this answer your question?