Bullhorn logoLoket logo

Recruitment to HR

Bullhorn to Loket integration: placement as a concept employee in the right payroll administration

With an integration between Bullhorn and Loket, an approved placement in Bullhorn automatically becomes a concept employee in Loket, with the date paid employment starts, the end date of the assignment and the hourly pay. The pay group on the placement decides which payroll administration the concept goes into, and payroll turns it into an employee after review.

What the integration does

Organisations that place candidates in Bullhorn and pay them in Loket retype every placement for payroll. Paid work often starts on a different day than the placement itself, and whoever misses that difference pays the first week wrongly.

  1. The recruiter sets the placement in Bullhorn to the agreed status, with start, possible end, hourly pay and pay group.
  2. KoppelHet fetches the placement and the candidate and checks the employee type.
  3. The pay group points through a lookup table to the Loket employer and payroll administration.
  4. In Loket a concept employee is ready, with the new hire checklist started.
  5. Payroll adds citizen service number, payroll tax and collective agreement details and converts the concept into an employee.
Bullhorn → KoppelHet → LoketSOURCEBullhornTARGETLoketKoppelHetmapping · logging · monitoringBullhorn → KoppelHet → LoketSOURCEBullhornTARGETLoketKoppelHetmapping · logging · monitoring
Out: Placement with paid employment start date, end date and employee type · Candidate with name, date of birth and address · Hourly pay or salary with unit · Concept employee at employer and payroll administration in Loket

What to watch for with Bullhorn and Loket

  • Besides the start date, Bullhorn has a separate field on the placement for the day paid employment begins, intended for payroll integrations. KoppelHet uses that date as the hire date in Loket and only falls back on the placement start date when the field is empty.
  • In Loket the fields of a new concept depend on the payroll administration, and an employer can have more than one. The Bullhorn payGroup field gives the pay frequency of the placement; KoppelHet uses it to pick, for example, the weekly or the monthly payroll administration at the right employer.
  • The employee type on a Bullhorn placement can also indicate a contractor or freelancer. Only types you mark as employed become a concept in Loket; the rest stays out of payroll.
  • Bullhorn stores salary with a unit per year or per hour. An hourly amount goes to the concept as hourly pay. KoppelHet does not convert an annual amount into a monthly wage itself, because holiday pay and a thirteenth month differ per collective agreement; that becomes an alert for payroll.
  • Events from the Bullhorn queue can be fetched again with a requestId. If creating the concept in Loket fails, for example because a required field of the payroll administration is missing, KoppelHet fetches the same batch again instead of losing the placement.
  • Bullhorn has a field for the candidate's social security number, but KoppelHet does not read it. The citizen service number reaches Loket through payroll, so it does not travel through a recruitment system and an integration.
  • Loket only admits an external application to production after approval and first provides an acceptance environment with test data. The first placements per pay group run there, so the lookup table to employers and payroll administrations is right before real concepts appear.

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

Does an extension or a new hourly rate go to Loket later too?

Not in the first version: it only creates the concept. Passing on changes can be added later as an extension, using the same queue.

What if a pay group is not in the lookup table yet?

Then KoppelHet creates no concept and payroll gets an alert with the placement attached.

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 (OAuth 2.0, then a REST login with BhRestToken). A subscription on entity Placement with eventTypes INSERTED and UPDATED; GET /event/subscription/{id} with maxEvents reads the queue, with requestId to fetch a batch again. Fields through entity/Placement (status, employmentStartDate, dateBegin, dateEnd, employeeType, payRate, salary, salaryUnit, payGroup) and entity/Candidate (firstName, lastName, dateOfBirth, address).
  • Loket through the REST API with OAuth 2.0 (authorization code with refresh token). Metadata for a concept per employer (jobapplicant/metadata) and then per payroll administration; create the concept and start the new hire workflow. Acceptance on api.loket-acc.nl/v2, production only for approved applications.

Which fields are transferred

The key fields. The full mapping is agreed per customer.

Field in BullhornField in LoketNotes
Placement.idEigen administratie van KoppelHetRecognises a second event for the same placement
Candidate.firstName en lastNameVoornaam, voorvoegsel en achternaamName prefix split off using a fixed list
Candidate.dateOfBirthGeboortedatum
Candidate.address (address1, zip, city, countryID)Woonadres
Placement.employmentStartDate, anders dateBeginDatum in dienst
Placement.dateEndEinddatum contractEmpty for a permanent placement
Placement.payRateUurloonOnly for employee types paid by the hour
Placement.payGroupWerkgever en loonadministratieThrough a lookup table

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.