BambooHR

Connect & Ingest data from BambooHR

BambooHR is a cloud-based HR platform for small and medium businesses. The Sling BambooHR connector extracts data from the BambooHR REST API, supporting employee directory, job history, compensation, time off, time tracking, training, goals, and applicant tracking data.

circle-check

Setup

The following credentials and inputs are accepted:

Secrets:

  • api_key (required) -> Your BambooHR API key

Inputs:

  • company_domain (required) -> Your BambooHR company subdomain (e.g. mycompany from mycompany.bamboohr.com)

  • anchor_date (optional) -> Starting date for incremental sync (default: 1 year ago). Format: YYYY-MM-DD

Authentication

BambooHR uses API Key authentication (HTTP Basic Auth with the API key as username):

  1. Log in to your BambooHR account

  2. Click your profile picture in the upper right corner

  3. Select API Keys

  4. Click Add New Key, give it a name, and click Generate Key

  5. Copy the API key (it will only be shown once)

circle-info

Permissions: The API key inherits the permissions of the user who created it. Ensure the user has access to the data you want to extract.

Using sling conns

Environment Variable

See here to learn more about the .env.sling file.

Sling Env File YAML

See here to learn more about the sling env.yaml file.

With anchor date for historical data:

Replication

Here's an example replication configuration to sync BambooHR data to a PostgreSQL database:

Endpoints

Employee Directory

Endpoint
Description
Incremental

employees

Employee directory with core fields

No

Metadata

Endpoint
Description
Incremental

meta_fields

Available employee fields in the account

No

meta_tables

Available tabular fields and table metadata

No

meta_users

All active BambooHR user accounts

No

meta_lists

Details for list-type fields (dropdown options)

No

Time Off

Endpoint
Description
Incremental

time_off_types

Time off types (Vacation, Sick, etc.)

No

time_off_policies

Time off policies

No

time_off_requests

Time off requests

Yes

whos_out

Employees currently out or on upcoming leave

No

Time Tracking

Endpoint
Description
Incremental

timesheet_entries

Timesheet entries

Yes

Employee Tables (Per-Employee)

Endpoint
Description
Incremental

job_info

Employee job history (title, department, location)

No

employment_status

Employment status history (active, terminated)

No

compensation

Compensation history (pay rate, type, schedule)

No

Training

Endpoint
Description
Incremental

training_categories

Training categories

No

training_types

Training types with requirements and frequency

No

training

Employee training records (per-employee)

No

Goals

Endpoint
Description
Incremental

goals

Employee goals and progress (per-employee)

No

Applicant Tracking

Endpoint
Description
Incremental

job_summaries

ATS job postings summary

No

job_applications

Job applications

Yes

To discover available endpoints:

Parent-Child Endpoints

The employees endpoint populates an employee_ids queue, which feeds the following per-employee endpoints:

  • job_info — job history per employee

  • employment_status — status history per employee

  • compensation — compensation history per employee

  • training — training records per employee

  • goals — goals per employee

Ensure the employees endpoint runs before these child endpoints in your replication configuration.

Incremental Sync

The BambooHR connector supports date-range-based incremental sync for:

  • time_off_requests — syncs by start date

  • timesheet_entries — syncs by start date

  • job_applications — syncs by applied date (via newSince parameter)

First run: Fetches records from anchor_date (default: 1 year ago) to present. Subsequent runs: Only fetches records after the last sync checkpoint.

Rate Limiting

The connector handles BambooHR's rate limits automatically:

  • Uses conservative rate limiting (3 requests/second, 2 concurrent)

  • Retries with exponential backoff on 429 and 503 responses

  • Maximum 5 retry attempts

If you are facing issues connecting, please reach out to us at [email protected]envelope, on discordarrow-up-right or open a Github Issue herearrow-up-right.

Last updated

Was this helpful?