Unit4 HR logoFreshservice logo

HR to ITSM

Unit4 HR Freshservice integration: employees per company as requesters and requests on joining and leaving

With an integration between Unit4 HR and Freshservice, every employee from Unit4 ERPx becomes a requester in Freshservice, with department, job and manager, and KoppelHet submits an onboarding request for a new employment and an offboarding request for an end date. KoppelHet reads Unit4 through the ObjectAPI on the last modified date and writes to the Freshservice API v2.

What the integration does

Organisations that run HR and finance in Unit4 ERPx and IT in Freshservice often enter a new employee twice: in Unit4 by HR and in the onboarding form by the manager. A change of department then does not reach Freshservice, and approvals go to the old manager.

  1. Every hour KoppelHet asks Unit4 for the employees that changed since the previous run.
  2. Records still in an approval workflow are skipped by KoppelHet until they are approved.
  3. A new main employment produces an onboarding request with start date, job and department.
  4. With the work email from Unit4, KoppelHet creates or updates the requester, with department and manager on their effective date.
  5. An end date produces an offboarding request; after that day the requester is deactivated.
Unit4 HR → KoppelHet → FreshserviceSOURCEUnit4 HRTARGETFreshserviceKoppelHetmapping · logging · monitoringUnit4 HR → KoppelHet → FreshserviceSOURCEUnit4 HRTARGETFreshserviceKoppelHetmapping · logging · monitoring
Out: Requester with name, work email and job · Company as location or custom field · Department and manager from the relations · Onboarding request with start date · Offboarding request with end date

What to watch for with Unit4 HR and Freshservice

  • In Unit4 a personId is only unique within one company. KoppelHet stores company and personId together in a custom field on the requester, so employees of different companies in one Freshservice account do not clash.
  • Department, cost centre and manager are attached to an employee in Unit4 as relations, each with a start and end date. KoppelHet only applies a relation that starts later on that date in Freshservice.
  • An employee can have more than one employment in Unit4. Only the employment marked as main position determines the job in Freshservice; a second position does not produce a second requester.
  • Changes in Unit4 can wait for approval in a workflow. KoppelHet only takes over an employee once the workflow is done, so Freshservice starts no onboarding for an appointment that is still rejected.
  • Besides the official first name, Unit4 has an alias name. Freshservice gets the alias as first name, so the service desk finds someone under the name colleagues use.
  • The manager from Unit4 becomes the requester's reporting manager in Freshservice. Approvals for a service catalog item therefore go to the manager HR recorded in Unit4, also after a transfer.
  • The Unit4 Identity Services token is valid for an hour. KoppelHet requests a new token per run with client credentials, so no user password is stored in the integration.

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

Does this also work with Unit4 on-premise (Agresso)?

This page assumes Unit4 ERPx in the cloud. For an on-premise version we look at which API is available during the intake.

Does financial or salary data go to Freshservice?

No. The integration only takes name, work email, job, department, manager, company and the employment dates.

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) with OAuth 2.0 client credentials through Unit4 Identity Services (scope u4erp, token 3600 seconds), incremental on lastUpdated. Fields include companyId, personId, nameInformation (firstName, surname, aliasName), contactPoints, workflowState, employments (isMainPosition, employmentStartDate, employmentEndDate) and relatedValues with dateFrom and dateTo.
  • Freshservice through the API v2: requesters (primary_email or a phone number required; department_ids, location_id, reporting_manager_id, custom_fields; deactivate), POST /api/v2/onboarding_requests and /api/v2/offboarding_requests with form fields such as cf_date_of_joining. Per-minute limits depending on the plan.

Which fields are transferred

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

Field in Unit4 HRField in FreshserviceNotes
companyId + personIdEigen aanvragersveld (custom_fields)personId is unique per company
nameInformation.firstName / aliasName, surnamefirst_name, last_name
Werkmail uit contactPointsprimary_email
Functie van het hoofddienstverband (isMainPosition)job_title
relatedValues: afdelingdepartment_idsOn dateFrom
relatedValues: leidinggevendereporting_manager_id
companyIdlocation_id of eigen veld
employmentStartDateOnboardingveld cf_date_of_joining
employmentEndDateOffboardingverzoek, daarna deactiveren

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.