Bamboo HR
Omnata's BambooHR plugin replicates company information, employee records, and employee-related tables from BambooHR to Snowflake.
Authentication
API Key
The BambooHR API uses HTTP Basic authentication with an API key in place of a username. Each request is authenticated and authorized as if the user who generated the key were making it directly — that user's permissions determine which fields and employees Omnata can read.
For detailed instructions on generating an API key, see the BambooHR authentication documentation.
We recommend creating a dedicated BambooHR user with read-only access to the data you want to sync, then generating the API key against that user.
The following fields are required to create a connection in the Omnata UI:
API Key
Yes
The API key generated for your BambooHR user. Stored as a Snowflake secret.
Company Domain
Yes
The subdomain used to access your BambooHR account (e.g. mycompany for https://mycompany.bamboohr.com).
Inbound Syncs
The BambooHR plugin supports the following stream categories:
Company Information — top-level company details (legal name, display name, address, phone).
Employees — core employee records (
id,employeeNumber,displayName,firstName,lastName,preferredName,nickname,pronouns,terminationDate,hireDate, photo metadata, etc.).Employee-related tables — per-employee tabular data, dynamically discovered from your BambooHR account's
tabularfieldsendpoint.
Available employee-related tables
The list of employee-related tables is fetched live from your BambooHR account, so the streams you see depend on which features and tables are enabled there. Common examples include:
bonuscompensationcontactsdependentsearningsemergency_contactsemployee_assetsemployee_certificationsemployment_statusjob_info
Sync strategies
All BambooHR streams currently use Full Refresh. The BambooHR API does not expose change-tracking endpoints suitable for general-purpose incremental syncs of these objects, so Omnata re-reads the full set on each run.
Because all streams currently run as Full Refresh, the only thing that determines whether hard-deleted employees disappear from Snowflake is your Write Strategy:
Replace
Snowflake table is rebuilt each run — deleted employees disappear.
Merge / Append
Deleted employees remain in Snowflake indefinitely (stale).
For the employees stream specifically, terminations are not deletions — terminated employees stay in BambooHR and continue to be synced. Filter by terminationDate IS NOT NULL in your downstream models if you want to exclude them.
Outbound Syncs
Outbound syncs to BambooHR are not currently supported. Contact us if this is a use case you'd like to discuss.
Last updated