Bullhorn logoBambooHR logo

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.

  1. The recruiter approves the Placement in Bullhorn.
  2. KoppelHet reads the placement and checks whether the candidate is already an employee in BambooHR.
  3. For a first placement KoppelHet creates the employee with a status row on the start date.
  4. If the placement has an end date, HR gets a task to record the contract end.
  5. A value BambooHR rejects, or a next placement, reaches HR as an alert.
Bullhorn → KoppelHet → BambooHRSOURCEBullhornTARGETBambooHRKoppelHetmapping · logging · monitoringBullhorn → KoppelHet → BambooHRSOURCEBullhornTARGETBambooHRKoppelHetmapping · logging · monitoring
Out: Placement with start date, end date and employee type · Candidate with name, email and mobile number · Employee in BambooHR with first status row · Task for HR for a temporary placement

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, architecture and compliance

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.

Price indication · Basic

Leave your work email and you see the price indication right away.

We only use your address to follow up on your question about this integration.

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 BullhornField in BambooHRNotes
Candidate firstName en lastNamefirstName en lastName
Candidate emailhomeEmail
Candidate mobilemobilePhone
Placement employmentStartDatehireDate en employeeStatusDate
Placement employeeTypeemploymentHistoryStatusLookup table to the status list in BambooHR
Placement dateEndTaak voor HREmpty for a permanent placement
Candidate idEigen veld met het Bullhorn-nummer

Related

Which systems do you want to connect?

Tell us which systems you use and what should happen automatically. Together we define the smallest working solution, with a clear design and a quote before building.