Source connector
BambooHR connector
BambooHR integration for databases, warehouses and BI tools
HRIS source for employee records and workforce analytics. Datrise captures BambooHR entities such as employee records, org structure, lifecycle events, and workforce attributes, then lands normalized and typed models for warehouse reporting, attribution, and AI workflows.
The BambooHR API v1 authenticates with API key, HTTP Basic, incremental runs key on lastChanged (via Get Changed Employee IDs `since` parameter).
Of the 4 objects, 3 sync as upserts keyed on the primary key and 1 as append-only streams, so each incremental run moves only what changed since the last watermark. Every object lands in its own table (for example `bamboohr_employee_records`) with a schema derived from the BambooHR API rather than a flattened CSV, in any of the 43 supported destinations.
Datrise is in early access: pick a destination below to open the BambooHR pipeline page, and join the waitlist to get the BambooHR connector (HR) with guided onboarding.
What BambooHR data Datrise extracts
Each object lands in its own typed table. Sync mode is derived from the object: history-style objects append, everything else upserts.
| Object | Landing table | Sync mode |
|---|---|---|
| employee records | bamboohr_employee_records | Upsert by primary key, incremental on updated-at |
| org structure | bamboohr_org_structure | Upsert by primary key, incremental on updated-at |
| lifecycle events | bamboohr_lifecycle_events | Append-only, incremental by timestamp |
| workforce attributes | bamboohr_workforce_attributes | Upsert by primary key, incremental on updated-at |
BambooHR API: setup facts for the connector
Verified against the vendor documentation on 2026-09-02. Unknown values are left blank rather than guessed.
| API | BambooHR API v1 |
|---|---|
| Authentication | API key, HTTP Basic — API key is sent as the HTTP Basic Auth username with any string as the password; BambooHR recommends sending credentials on every request rather than relying on the 401 challenge-response. |
| Pagination | none — Most endpoints (e.g. Employee Directory) return the full result set in one response; only a few endpoints such as time-off requests/balances use `page`/`per_page` query parameters. |
| Rate limit | Not published |
| Incremental cursor | lastChanged (via Get Changed Employee IDs `since` parameter) — The Get Changed Employee IDs endpoint takes an ISO 8601 `since` timestamp and returns changed employee `id`/`action`/`lastChanged` records, where a change to any field, or to employment/job/compensation tables, updates the employee's last-changed timestamp. |
| Webhooks | Yes — Event-Based Webhooks (employee.created/updated/deleted) and Field-Based (Global) Webhooks |
| Bulk export | No |
| Deletes detectable | Yes — Get Changed Employee IDs accepts `type=deleted` to filter the change feed to deletions, and the `employee.deleted` event-based webhook fires in real time. |
What bites when replicating BambooHR
- The Employee Directory endpoint returns every active employee in a single unpaginated response with only a fixed, limited field set; pulling the full field set for every employee requires the Custom Reports endpoint instead, which is deprecated in favor of the newer Datasets API.
- BambooHR publishes no fixed rate-limit number; it only documents that requests can be throttled with an HTTP 503 (and possibly a `Retry-After` header), so a connector must implement generic backoff rather than budget against a stated ceiling.
- The Get Changed Employee IDs `since` timestamp reflects a change to ANY field, including employment-status, job-info, or compensation table rows, so a naive integration that only re-fetches top-level employee fields can miss table-level changes that still bumped `lastChanged`.
- Get Changed Employee Table Data returns ALL of a changed employee's table rows (not just the row that changed), so a downstream merge must fully replace that employee's table data rather than upsert a single row.
Popular destinations for BambooHR
Choose a destination below to open the ready pipeline page.
- AAirtable
Relational spreadsheet destination for ops and go-to-market teams.
View pipeline - AAmazon Athena
Serverless SQL over S3 data lake tables.
View pipeline - AAmazon DynamoDB
Serverless key-value and document store on AWS.
View pipeline - AAmazon QuickSight
AWS serverless BI with SPICE and embedded analytics.
View pipeline - AAmazon Redshift
AWS petabyte-scale warehouse with Spectrum.
View pipeline - AAmazon S3 Data Lake
Object storage landing zone for parquet and snapshots.
View pipeline - AApache Superset
Open-source BI for SQL exploration, charts, and dashboard publishing.
View pipeline - AAzure Data Lake Storage
ADLS Gen2 object storage for analytics workloads.
View pipeline - AAzure Synapse
Microsoft analytics workspace with SQL pools.
View pipeline
BambooHR connector FAQ
- What BambooHR data does the connector extract?
- 4 objects: employee records, org structure, lifecycle events and workforce attributes. Each lands in its own table with types preserved; history-style objects (1: lifecycle events) load as append-only streams.
- Is the BambooHR integration incremental?
- Yes. After the initial full load, every run reads only records changed since the last watermark (updated-at or event timestamp) and applies an upsert or an append depending on the object.
- Where can I load BambooHR data?
- Into 43 destinations: relational databases, cloud warehouses, data lakes, spreadsheets and BI tools. Each BambooHR → destination pair has its own page with the object-to-table mapping.
Related HR sources
Other sources in the same category, each with its own connector page.
Early access
Launch your BambooHR pipeline with guided onboarding
Join the waitlist to get priority access for BambooHR integrations with guided setup, schema-aware mapping, and production-grade incremental sync.