Unit4 HR logoServiceNow logo

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.

  1. KoppelHet reads employees from the Unit4 ObjectAPI that changed since the previous run.
  2. For each employee the main position sets department and job, and the valid relations set the cost centre.
  3. Companies, departments and cost centres go to ServiceNow first, then the users.
  4. Within the agreed lead time before the start date, KoppelHet orders the onboarding item with the employee as requested for.
  5. An end date results in an offboarding request; after that date the user becomes inactive.
Unit4 HR → KoppelHet → ServiceNowSOURCEUnit4 HRTARGETServiceNowKoppelHetmapping · logging · monitoringUnit4 HR → KoppelHet → ServiceNowSOURCEUnit4 HRTARGETServiceNowKoppelHetmapping · logging · monitoring
Out: User with company and employee number · Company per Unit4 company · Department and cost centre from the relations · Manager · Onboarding and offboarding request (REQ/RITM)

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, 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 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 HRField in ServiceNowNotes
companyId + personIdemployee_numberpersonId is unique per company
nameInformation.firstNamefirst_name
nameInformation.surnamelast_name
Zakelijk e-mailadres (contactPoints)email
companyIdcompany (core_company)
Hoofdpositie (isMainPosition)title en department (cmn_department)
Relatie kostenplaats (relatedValues)cost_center (cmn_cost_center)Valid today
Relatie leidinggevendemanager (sys_user)
employmentEndDateactive = false
Nieuwe of beëindigde positieCatalogusitem voor onboarding of offboarding
Gesynchroniseerde gebruikersysparm_requested_for

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.