Linking BambooHR as a source

Let AI connect your sources for you

Skip the manual setup — run this in your project and the wizard auto-detects your databases and APIs and connects them to PostHog.

Learn more
PostHog Wizard hedgehog
Alpha release

This source is currently in alpha. The interface and available tables may change.

The BambooHR connector syncs your HR data – employees, time off requests and types, and account metadata – into PostHog.

Adding a data source

  1. Go to the sources tab of the data pipeline section in PostHog.
  2. Click + New source and then click Link next to BambooHR.
  3. Next, you need your company subdomain and an API key from BambooHR. Your company subdomain is the first part of your BambooHR URL (for example yourcompany in yourcompany.bamboohr.com). To generate an API key, go to Account Settings → API Keys (this requires admin permissions) and make sure the key has access to the data you want to sync.
  4. Back in PostHog, enter the credentials in the Company subdomain and API key fields and click Next.
  5. Select the tables you want to sync, set the sync method and frequency, then click Import.

Once the syncs are complete, you can start using BambooHR data in PostHog.

Available tables

TableDescriptionSync method
employeesEmployee directoryFull refresh
time_off_requestsTime off requestsFull refresh
time_off_typesTime off type definitionsFull refresh
meta_fieldsField definitions in your accountFull refresh
meta_listsList field optionsFull refresh
meta_usersUsers with account accessFull refresh

Incremental tables sync only new or updated records on each run. Full refresh tables reload all data on each sync.

Sync limitations

All BambooHR tables are full refresh only – the BambooHR API does not expose a verified "modified since" filter that returns complete records, so each sync reloads all data.

Configuration

OptionTypeRequired
Company subdomaintextYes
API keypasswordYes

Supported tables

TableDescriptionSync methodIncremental fieldPrimary key
employees

An employee in the company directory.

Full refresh
employee_job_info

A dated row from an employee's job information history table. A row records the job title, department, division, location and reporting line an employee held from a given effective date. The columns depend on how the company has configured the table.

Incremental, Full refreshlastChanged
employee_compensation

A dated row from an employee's compensation history table. A row records the pay rate, pay type, pay schedule and overtime status an employee held from a given effective date. The columns depend on how the company has configured the table.

Incremental, Full refreshlastChanged
employee_employment_status

A dated row from an employee's employment status history table. A row records the employment status and status change an employee held from a given effective date, including terminations. The columns depend on how the company has configured the table.

Incremental, Full refreshlastChanged
time_off_requests

A time-off request submitted by an employee.

Full refresh
time_off_types

A category of time off configured for the company (e.g. vacation, sick).

Full refresh
time_off_policies

A time-off policy configured for the company, governing how a time-off type accrues.

Full refresh
employee_time_off_policies

The assignment of a time-off policy to an employee.

Full refresh
employee_time_off_balances

An employee's current time-off balance for one time-off type, as of the day the table was synced.

Full refresh
timesheet_entries

A single tracked block of time worked by an employee, either clocked or entered as hours.

Full refresh
meta_fields

A field definition available in the company's BambooHR account.

Full refresh
meta_lists

A list field and its available option values configured in BambooHR.

Full refresh
meta_users

A user account with access to the company's BambooHR.

Full refresh
whos_out

An employee time-off entry or company holiday on the Who's Out calendar for a date range.

Full refresh
locations

A work location configured for the company, used to place employees and job openings.

Full refresh
job_openings

A job opening in applicant tracking, with its applicant counts.

Full refresh
applications

An application submitted to a job opening, with the applicant and current stage.

Full refresh
application_details

The full detail of a single application, including when its status last changed.

Full refresh
applicant_statuses

A status an application can be placed in, resolving the status IDs on applications.

Full refresh
ats_locations

A company location that can be attached to a job opening in applicant tracking.

Full refresh
employee_goals

A performance goal assigned to an employee, with its progress and milestones.

Full refresh
employee_goal_comments

A comment left on an employee's performance goal. BambooHR answers with at most 50 comments per goal and offers no way to page past them, so a goal discussed more than that holds only the 50 the API returns.

Full refresh

Still have questions?

Was this page useful?