
HR to ITSM
Unit4 HR ServiceNow integration: users from the main position and catalog requests for joiners and leavers
With an integration between Unit4 HR (ERPx) and ServiceNow, every employee from Unit4 is a user in ServiceNow, with company, department, cost centre and manager from their main position, and KoppelHet orders a request from the ServiceNow service catalog for every new or ended position. After the employment end date the user is set to inactive.
What the integration does
Organisations that use Unit4 for HR and finance and have ServiceNow as their service desk maintain cost centres in Unit4 but still book requests in ServiceNow against an old list. After a reorganisation requests go to the wrong budget holder for approval.
- KoppelHet reads employees from the Unit4 ObjectAPI that changed since the previous run.
- For each employee the main position sets department and job, and the valid relations set the cost centre.
- Companies, departments and cost centres go to ServiceNow first, then the users.
- Within the agreed lead time before the start date, KoppelHet orders the onboarding item with the employee as requested for.
- An end date results in an offboarding request; after that date the user becomes inactive.
What to watch for with Unit4 HR and ServiceNow
- An employee can have several positions in Unit4, one of which is marked as the main position. KoppelHet takes department and job from that main position, so ServiceNow gets one department per user.
- Cost centre and manager are held in Unit4 as relations with a start and end date. KoppelHet takes the relation valid today, and only sends a future relation to ServiceNow on its effective date.
- Unit4 ERPx can hold several companies in one environment, and personId is only unique within a company. KoppelHet puts companyId in front of the number in employee_number, so coalesce in ServiceNow does not merge two people.
- A Unit4 company becomes a company in core_company. Because cost centres are also kept per company, KoppelHet puts the company code in front of the cost centre in cmn_cost_center.
- Unit4 has a workflow state on employee records. An employee still in an approval flow is not sent to ServiceNow, so no request is raised for a record that may still be rejected.
- The Unit4 ObjectAPI is read-only and returns up to 50,000 records per call. The first delivery of all employees therefore fits in a few calls; after that KoppelHet only reads what changed after lastUpdated.
- Besides HR, Unit4 also holds pay and financial data. KoppelHet's machine-to-machine client only reads the employee object, and pay and bank details are not passed to ServiceNow.
This integration is also part of joiner, mover, leaver.
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 approvals go to the right budget holder?
Yes, if the ServiceNow flow approves on cost centre or manager. Both come from the relations valid today in Unit4.
Does this work with several companies in Unit4?
Yes. Each company becomes a company in ServiceNow, and the company code is part of the employee number and cost centre.
Does this also work with Unit4 on-premise?
This setup assumes Unit4 ERPx in the cloud. For an on-premise version we first check which API is available.
Technical details for IT
For those who want to know how it works under the hood: APIs, fields and sources used.
- Unit4 ERPx through the ObjectAPI (GET /v1/objects/employees, read-only) with OAuth 2.0 client credentials through Unit4 Identity Services (scope u4erp, token 3600 seconds), incremental on lastUpdated. Fields include companyId, personId, nameInformation, workflowState, employments (isMainPosition, employmentStartDate, employmentEndDate) and relatedValues with dates.
- ServiceNow is written through the Import Set API (insertMultiple) with transform maps and coalesce on employee_number; with run_after first core_company, cmn_department and cmn_cost_center, then sys_user.
- Requests through POST /api/sn_sc/servicecatalog/items/{sys_id}/order_now with variables and sysparm_requested_for; the item's flow creates the tasks. KoppelHet stores the RITM number per employee per event.
Which fields are transferred
The key fields. The full mapping is agreed per customer.
| Field in Unit4 HR | Field in ServiceNow | Notes |
|---|---|---|
companyId + personId | employee_number | personId is unique per company |
nameInformation.firstName | first_name | |
nameInformation.surname | last_name | |
Zakelijk e-mailadres (contactPoints) | email | |
companyId | company (core_company) | |
Hoofdpositie (isMainPosition) | title en department (cmn_department) | |
Relatie kostenplaats (relatedValues) | cost_center (cmn_cost_center) | Valid today |
Relatie leidinggevende | manager (sys_user) | |
employmentEndDate | active = false | |
Nieuwe of beëindigde positie | Catalogusitem voor onboarding of offboarding | |
Gesynchroniseerde gebruiker | sysparm_requested_for |
Related
Greenhouse → Unit4 HR
Greenhouse to Unit4 HR integration: accepted offer as an employee in the right Unit4 company
Recruitee → Unit4 HR
Recruitee to Unit4 HR integration: hired candidate as employee in Unit4, validated before it is saved
SmartRecruiters → Unit4 HR
SmartRecruiters to Unit4 HR integration: hire on the position from SmartRecruiters, with onboarding status back
Teamtailor → Unit4 HR
Teamtailor to Unit4 HR integration: hired candidates as employees in Unit4 ERPx, with company and position