

Recruitment to HR
Bullhorn to BambooHR integration: first placement as an employee with a status row in BambooHR
With an integration between Bullhorn and BambooHR, the first approved placement of a candidate becomes an employee in BambooHR, with hire date and a first status row that follows the employee type from Bullhorn. If the placement has an end date, KoppelHet prepares a task for HR, because BambooHR ignores an end date on creation.
What the integration does
Organisations that place people through Bullhorn and use BambooHR for their own staff add the new colleague to BambooHR by hand after every first placement. Whether someone works permanently, temporarily or as a freelancer is in Bullhorn, but has to be chosen again in BambooHR.
- The recruiter approves the Placement in Bullhorn.
- KoppelHet reads the placement and checks whether the candidate is already an employee in BambooHR.
- For a first placement KoppelHet creates the employee with a status row on the start date.
- If the placement has an end date, HR gets a task to record the contract end.
- A value BambooHR rejects, or a next placement, reaches HR as an alert.
What to watch for with Bullhorn and BambooHR
- We did not find a Bullhorn integration in the BambooHR Marketplace; there is no listing for Bullhorn there. KoppelHet reads the placements from Bullhorn's event queue and creates the employee with BambooHR's API.
- BambooHR creates an employee without an employment status if none is given. KoppelHet translates the employee type on the Bullhorn placement, such as Employee or Contractor, to a value from BambooHR's status list, with the start date as the date of the row.
- A temporary placement has an end date in Bullhorn, a permanent placement does not. BambooHR ignores an end date and an employment type when creating an employee, without an error. KoppelHet therefore puts the contract end as a task with HR, instead of assuming it has been saved.
- A list field in BambooHR with a value not in the list returns a conflict error. Bullhorn values such as the employee type can be configured per installation, so KoppelHet checks every value against the table and reports a new value to HR.
- The same candidate can have several placements in a row in Bullhorn. KoppelHet puts the Bullhorn candidate number in a custom field in BambooHR and searches there first, so a next assignment does not produce a second employee.
- Bullhorn distinguishes the start date of the work and the day paid employment starts. KoppelHet uses the latter as the hire date in BambooHR and as the date of the first status row; without that date KoppelHet falls back on the start date.
- Changes to an approved placement run in Bullhorn through a change request with its own effective date. KoppelHet therefore does not update BambooHR automatically, but sends HR what changed after approval.
How we build and run it
- The integration runs on the KoppelHet platform, hosted in a data centre in the EU.
- Every sync and every error is visible in the functional log; on an error your administrator is notified.
- A change that cannot go through is not half-applied but queued for another attempt.
- KoppelHet is ISO 27001 certified. Data travels encrypted and stays on the platform no longer than needed.
- After go-live we manage the integration and adjust it when your process changes.
- The integration fits next to your existing integration layer. Only the fields in the design are transferred; the platform keeps no register of its own.
Implementation and price
This is not an app you switch on. We build the integration for your organisation on our platform, with building blocks we reuse on every project. So it is custom work that does not start from scratch.
A consultant prepares the intake and analyses both systems. We then record the mapping and exceptions field by field, test in the test or acceptance environment and go live at a moment you choose. Costs are a one-off amount for the setup and a monthly amount for platform, monitoring and support.
Frequently asked questions
Do freelancers go to BambooHR too?
You choose that per employee type in the table. They then get their own status in BambooHR.
Does the salary of the placement come along?
Not in the first version. A salary row from the placement's amount and unit can be added later as an extension.
What if the assignment is extended?
HR then gets an alert with the new end date and adjusts the contract in BambooHR.
Technical details for IT
For those who want to know how it works under the hood: APIs, fields and sources used.
- Bullhorn through the REST API after OAuth 2.0 and a REST login with BhRestToken. Event subscription on Placement (INSERTED and UPDATED) with GET event/subscription. Placement status, employeeType, employmentStartDate, dateBegin and dateEnd; PlacementChangeRequest with dateEffective; Candidate firstName, lastName, email and mobile.
- BambooHR through POST /api/v1/employees (firstName and lastName required; employmentHistoryStatus with employeeStatusDate, otherwise hireDate; employmentType and terminationDate are ignored; 409 on an invalid list value). OAuth 2.0 with employee.write or basic auth with an API key.
Which fields are transferred
The key fields. The full mapping is agreed per customer.
| Field in Bullhorn | Field in BambooHR | Notes |
|---|---|---|
Candidate firstName en lastName | firstName en lastName | |
Candidate email | homeEmail | |
Candidate mobile | mobilePhone | |
Placement employmentStartDate | hireDate en employeeStatusDate | |
Placement employeeType | employmentHistoryStatus | Lookup table to the status list in BambooHR |
Placement dateEnd | Taak voor HR | Empty for a permanent placement |
Candidate id | Eigen veld met het Bullhorn-nummer |
Related
Bullhorn → AFAS Profit
Bullhorn to AFAS integration: a consultant's first placement starts onboarding
Bullhorn → Dayforce
Bullhorn to Dayforce integration: first placement of an employee as an employee in Dayforce
Bullhorn → Deel
Bullhorn to Deel integration: first placement as a direct employee with a contract in Deel
Bullhorn → HiBob
Bullhorn to HiBob integration: an approved placement as a new employee in Bob