
HR to ITSM
Exact HR to Freshservice integration: requesters per division and onboarding from Exact Online payroll
With an integration between Exact HR (Exact Online payroll) and Freshservice, every employee from Exact is a requester in Freshservice, with department, location and manager, and a new or ended employment in Exact produces an onboarding or offboarding request in Freshservice. When someone leaves, the requester is deactivated after the last working day and their tickets are kept.
What the integration does
Organisations that process payroll in Exact Online and use Freshservice for IT only get a new colleague as a requester once they send an email themselves. HR fills in the onboarding form by hand, with data that is already in Exact.
- KoppelHet fetches the new and changed employees and employments per division from Exact Online.
- Departments from Exact become departments in Freshservice; then the employee follows as requester, with the manager as reporting manager.
- Within the agreed lead time before the start date, KoppelHet raises an onboarding request, with the fields of your onboarding form.
- An end date produces an offboarding request, with the reason for leaving from Exact.
- After the last working day KoppelHet deactivates the requester.
What to watch for with Exact HR and Freshservice
- Exact Online returns a language code per employee. Freshservice sends notifications and the portal in the requester's language. KoppelHet sets the language from Exact on the requester, so an English-speaking colleague does not get the confirmation of their first ticket in Dutch.
- A department in Exact has a cost centre. Departments in Freshservice have custom fields and a department head. KoppelHet records the cost centre from Exact in a field on the department, so the service desk sees which cost centre a laptop request should be booked to.
- Exact records a reason with a description when an employment ends. The Freshservice offboarding form has fields you choose yourselves, such as the type of separation. KoppelHet puts the reason from Exact in that field, so IT acts differently on a summary dismissal than on retirement.
- In Exact the manager must be in the same division as the employee. In Freshservice the reporting manager is a requester themselves. KoppelHet first creates the manager and then the employee; if the manager belongs to another division, we record which division supplies them.
- The Exact sync endpoints work with a timestamp that restarts when Exact moves a division to another database. KoppelHet checks the DivisionMoveDate and reads everything again after a move, so no new employee is missing in Freshservice.
- Freshservice limits calls per minute per plan, with a separate, lower limit for listing all requesters. KoppelHet keeps its own record of which Exact employee belongs to which requester, so it does not need to list all requesters on every run.
- Exact only returns fields such as private address and citizen service number if the integration user has the role for them. KoppelHet asks for an Exact user without those roles, so they never reach the integration at all; Freshservice does not need them.
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
Can we connect several divisions?
Yes. KoppelHet reads every division you designate, and the employee number gets the division as a prefix.
What if a colleague has no work email yet?
Then KoppelHet still raises the onboarding request, and the requester only follows once the work email is in Exact. Freshservice needs an email address or phone number to create a requester.
Technical details for IT
For those who want to know how it works under the hood: APIs, fields and sources used.
- Exact Online through the REST API with OAuth 2.0 (app in the Exact App Center), per division and GET only. /api/v1/{division}/sync/Payroll/Employees (Timestamp, from 1 on the first run; FirstName, MiddleName, LastName, BusinessEmail, BusinessPhone, BusinessMobile, Language, LocationDescription, Manager, EndDate), /payroll/Employments (StartDate, EndDate, ReasonEnd, ReasonEndDescription), /payroll/EmploymentOrganizations (DepartmentCode, JobTitleDescription, CostCenter) and /hrm/Departments (Code, Description, Costcenter). DivisionMoveDate through /system/Divisions.
- Freshservice API v2: POST and PUT /api/v2/requesters (first_name, last_name, primary_email, work_phone_number, mobile_phone_number, department_ids, reporting_manager_id, location_id, language, custom_fields), DELETE /api/v2/requesters/{id} to deactivate, /api/v2/departments with custom_fields and head_user_id. Limit per minute per plan, with a sublimit for List All Requesters.
- Requests through GET /api/v2/onboarding_requests/form and POST /api/v2/onboarding_requests, and POST /api/v2/offboarding_requests (fields and initiator_id; raising on behalf of someone else requires an admin). KoppelHet stores per employee which request has been raised per event.
Which fields are transferred
The key fields. The full mapping is agreed per customer.
| Field in Exact HR | Field in Freshservice | Notes |
|---|---|---|
Division + EmployeeHID | Requester custom field personeelsnummer | Numbers run per division |
FirstName, MiddleName + LastName | first_name, last_name | |
BusinessEmail | primary_email | |
BusinessPhone en BusinessMobile | work_phone_number en mobile_phone_number | |
Language | language | |
hrm/Departments (Code, Description, Costcenter) | department_ids | Cost centre as a custom department field |
Manager | reporting_manager_id | |
LocationDescription | location_id | |
StartDate dienstverband | Onboarding request (cf-velden) | |
EndDate en ReasonEndDescription | Offboarding request, daarna deactivate |
Related
Exact HR → 4PS Construct
Exact HR to 4PS Construct integration: payroll costs from Exact Online payroll as a journal in 4PS, with cost centre and project as dimensions
Exact HR → Active Directory
Exact HR to Active Directory integration: accounts from payroll in Exact Online
Exact HR → AllSolutions
Exact HR to AllSolutions integration: payroll costs from Exact Online payroll as a journal posting in AllSolutions
Exact HR → Arbodienst (SIVI)
Exact to occupational health service via SIVI: sick and recovery notifications from Exact Online payroll to the health service