
Recruitment to HR
Bullhorn to Nmbrs integration: placements with hourly pay and end date in payroll
With an integration between Bullhorn and Nmbrs, a new placement in Bullhorn becomes an employee with an employment in Nmbrs, with start date, hourly pay or salary, hours per day and, for a temporary assignment, the end date. Payroll in Nmbrs then pays exactly what the recruiter agreed in Bullhorn, without retyping.
What the integration does
Organisations that place people through Bullhorn and run payroll in Nmbrs get an email or form from the recruiter per placement and enter hourly pay, hours and duration by hand in Nmbrs. An extended or early-ended assignment often reaches payroll only after the payroll run.
- The recruiter records the placement in Bullhorn with start, possible end, hourly pay and hours per day.
- KoppelHet reads the new placement from the event queue and checks the employee type.
- KoppelHet picks the Nmbrs company that belongs to the placement.
- Nmbrs then holds employee, employment, contract, pay and schedule.
- Payroll adds BSN and payroll tax details before the employee enters the run.
What to watch for with Bullhorn and Nmbrs
- A Placement in Bullhorn has an end date that is empty for a permanent placement. KoppelHet therefore creates a fixed-term contract in Nmbrs when there is an end date, and an open-ended contract when it is missing.
- Bullhorn holds both an hourly pay rate for the candidate and a salary with a unit per year or per hour on the placement. KoppelHet puts the pay rate into Nmbrs as hourly pay and converts an annual salary, so payroll does not have to guess which amount applies.
- The placement contains the number of hours per day. KoppelHet uses it to fill the schedule in Nmbrs, so holiday hours and part-time percentage are right from the first period.
- Bullhorn has a payGroup field for the pay frequency, intended for payroll integrations. KoppelHet uses it to pick the right Nmbrs company, for example a separate one for weekly payroll of temporary workers.
- In Nmbrs an employee belongs to one company and is created per company. If a candidate gets a second placement in the same company, KoppelHet looks up the existing employee instead of creating a second one.
- KoppelHet filters out placements of freelancers or other types not paid through Nmbrs on the Placement employee type. Those never end up in payroll.
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
Does an extension of the assignment go to Nmbrs too?
Not in the first version. Passing on a new end date or a termination can be added later as an extension, using the same event queue.
What does our payroll team still do itself?
Add BSN, payroll tax credit and collective agreement details, and check the new employee before the run.
Does this work with several Nmbrs companies?
Yes. Per pay group in Bullhorn we record which Nmbrs company the employee goes into.
Technical details for IT
For those who want to know how it works under the hood: APIs, fields and sources used.
- Bullhorn is read through the REST API (OAuth 2.0, then a REST login with BhRestToken and its own base URL). A subscription on entity Placement with eventTypes INSERTED fills the queue; GET /event/subscription with maxEvents reads it. Fields through GET entity/Placement (dateBegin, dateEnd, employeeType, payRate, salary, salaryUnit, hoursPerDay, payGroup) and entity/Candidate.
- Nmbrs is written through the Nmbrs REST API with OAuth and the company's consent in Nmbrs; first the employee per company, then address, employment, contract, schedule and pay. The SOAP API is retired from 1 March 2027.
Which fields are transferred
The key fields. The full mapping is agreed per customer.
| Field in Bullhorn | Field in Nmbrs | Notes |
|---|---|---|
Candidate.firstName en lastName | Voornaam, tussenvoegsel en achternaam | |
Candidate.dateOfBirth | Geboortedatum | |
Candidate.address | Adres | countryID tells whether it is a foreign address |
Placement.dateBegin | Begindatum dienstverband | |
Placement.dateEnd | Einddatum contract | Empty for a permanent placement: then an open-ended contract |
Placement.payRate | Uurloon | Only if the employee type is paid by the hour |
Placement.salary en salaryUnit | Salaris | For an annual amount converted to the Nmbrs company's period |
Placement.hoursPerDay | Rooster | |
Placement.payGroup | Nmbrs-bedrijf | Through a lookup table |
Related
Bullhorn → AFAS Profit
Bullhorn to AFAS integration: a consultant's first placement starts onboarding
Bullhorn → BambooHR
Bullhorn to BambooHR integration: first placement as an employee with a status row in BambooHR
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