DatriseAI-first ETL

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.

Incremental syncSchema-aware mapping43 destinations available

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.

ObjectLanding tableSync mode
employee recordsbamboohr_employee_recordsUpsert by primary key, incremental on updated-at
org structurebamboohr_org_structureUpsert by primary key, incremental on updated-at
lifecycle eventsbamboohr_lifecycle_eventsAppend-only, incremental by timestamp
workforce attributesbamboohr_workforce_attributesUpsert 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.

APIBambooHR API v1
AuthenticationAPI 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.
Paginationnone — 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 limitNot published
Incremental cursorlastChanged (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.
WebhooksYes — Event-Based Webhooks (employee.created/updated/deleted) and Field-Based (Global) Webhooks
Bulk exportNo
Deletes detectableYes — 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.

Official API reference

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.

Compare this against every other documented API

Popular destinations for BambooHR

Choose a destination below to open the ready pipeline page.

  • A
    Airtable

    Relational spreadsheet destination for ops and go-to-market teams.

    View pipeline
  • A
    Amazon Athena

    Serverless SQL over S3 data lake tables.

    View pipeline
  • A
    Amazon DynamoDB

    Serverless key-value and document store on AWS.

    View pipeline
  • A
    Amazon QuickSight

    AWS serverless BI with SPICE and embedded analytics.

    View pipeline
  • A
    Amazon Redshift

    AWS petabyte-scale warehouse with Spectrum.

    View pipeline
  • A
    Amazon S3 Data Lake

    Object storage landing zone for parquet and snapshots.

    View pipeline
  • A
    Apache Superset

    Open-source BI for SQL exploration, charts, and dashboard publishing.

    View pipeline
  • A
    Azure Data Lake Storage

    ADLS Gen2 object storage for analytics workloads.

    View pipeline
  • A
    Azure 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.