
Recruitment to HR
SmartRecruiters to Unit4 HR integration: hire on the position from SmartRecruiters, with onboarding status back
With an integration between SmartRecruiters and Unit4 HR, a candidate hired in SmartRecruiters automatically becomes an employee in Unit4, on the position that was already attached to the job. SmartRecruiters then gets the onboarding status back, so recruiters see whether the hire succeeded in Unit4 or is waiting for HR.
What the integration does
Organisations that use Unit4 as their ERP and recruit in SmartRecruiters record headcount positions in both systems. After a hire HR retypes the candidate in Unit4 and looks up the matching position, while recruiters cannot see whether the new employee is in Unit4 yet.
- The recruiter sets the application in SmartRecruiters to hired.
- KoppelHet confirms the notification immediately and then fetches candidate, job, position and offer.
- Unit4 checks the new employee without saving, with the position from SmartRecruiters.
- After a successful check Unit4 creates the employee in the right company.
- KoppelHet sets the onboarding status on the candidate in SmartRecruiters to successful, or to failed with an alert to HR.
What to watch for with SmartRecruiters and Unit4 HR
- A job in SmartRecruiters can have positions, each with its own positionId that the organisation fills in, a type (new or replacement) and a target start date. If we fill in the position from Unit4 there, a hire lands on the right Unit4 position without a translation table, and with it on the right cost centre.
- For a position of the replacement type SmartRecruiters records the name of the departing employee. KoppelHet checks whether that person has an end date in Unit4, and alerts HR if the new employee starts before the previous one leaves.
- SmartRecruiters has an onboarding status per application, but only if that property is activated in the account. Without it SmartRecruiters refuses the status. We switch it on at the start, so recruiters see for every hire whether Unit4 has taken it in.
- A notification from SmartRecruiters only contains an ID and must be confirmed within five seconds. The check and the creation in Unit4 take longer. KoppelHet therefore confirms first and only then talks to Unit4, so SmartRecruiters does not offer the same hire again.
- Unit4 does not allow a saved employee to be deleted, only terminated, and can validate a hire in advance. KoppelHet validates first and sets the onboarding status in SmartRecruiters to failed if Unit4 rejects something, so the recruiter can fix it in SmartRecruiters before an employee exists in Unit4.
- SmartRecruiters keeps thirty days of successful and failed notifications in a log per subscription. KoppelHet compares that log daily with the employees in Unit4, so a hire missed during an outage is still processed.
- If approval for new employees is switched on in Unit4, the hire waits there for an approver. KoppelHet then leaves the onboarding status on ready to onboard until Unit4 has approved the employee, and only then sets it to successful.
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 we have to maintain positions in SmartRecruiters?
It helps. Without positions we record a Unit4 position per job in a table. Putting positions from Unit4 into SmartRecruiters automatically can come later as an extension.
Does the salary from the offer go to Unit4?
Not in the first version. HR records salary and grading in Unit4; that can come later as an extension.
Technical details for IT
For those who want to know how it works under the hood: APIs, fields and sources used.
- SmartRecruiters through a webhook subscription (notification with only the ID and a Link header, smartrecruiters-signature with HMAC-SHA256, 202 within 5 seconds, up to 10 retries, 30-day callbacks log, suspension on 410). Data through the Customer API with OAuth 2.0; positions through GET /jobs/{jobId}/positions (positionId, type NEW or REPLACEMENT, incumbentName, targetStartDate). Status back through PUT /candidates/{id}/jobs/{jobId}/onboardingStatus with READY_TO_ONBOARD, ONBOARDING_SUCCESSFUL or ONBOARDING_FAILED (scope candidates_manage).
- Unit4 ERPx through the Employees API with client ID and client secret. POST /v1/employees/validate, then POST /v1/employees with companyId, nameInformation, contactPoints, personnelType and employments (positionId, startDate). 202 with an active workflow listing the fields awaiting approval, 409 for a duplicate personId, 422 for a missing mandatory field. For a large hiring round POST /v1/employees/batch, up to 200 per call.
Which fields are transferred
The key fields. The full mapping is agreed per customer.
| Field in SmartRecruiters | Field in Unit4 HR | Notes |
|---|---|---|
Kandidaat-ID | Vrij veld of relatie in Unit4 | Recognises a repeated notification |
firstName en lastName | nameInformation (firstName, surname) | |
email en location | contactPoints | |
Positie van de vacature (positionId) | employments (positionId) | positionId in SmartRecruiters is a free reference; we fill in the Unit4 position there |
Startdatum uit het aanbod | employments (startDate) en dateFrom | Otherwise the position's target start date, with an alert |
Vestiging of entiteit van de vacature | companyId | Through a table |
Resultaat in Unit4 | onboardingStatus (ONBOARDING_SUCCESSFUL of ONBOARDING_FAILED) |
Related
SmartRecruiters → ADP Workforce Now
SmartRecruiters to ADP Workforce Now integration: ready to onboard becomes a hire in ADP
SmartRecruiters → AFAS Profit
SmartRecruiters to AFAS integration: hired candidate starts onboarding, status back to SmartRecruiters
SmartRecruiters → BambooHR
SmartRecruiters to BambooHR integration: hire with Dutch fields and feedback
SmartRecruiters → Dayforce
SmartRecruiters to Dayforce integration: validate first, then create the employee