
HR to ERP
Unit4 HR to Dynamics 365 integration: employees and leave status from Unit4 in Business Central
With an integration between Unit4 HR and Microsoft Dynamics 365 Business Central, every employee of a Unit4 company that posts in Business Central automatically becomes an employee there, with department and cost centre as default dimensions. An employee on leave becomes inactive and a terminated employee gets the status terminated, so Business Central has the same state as HR.
What the integration does
Organisations that run HR in Unit4 and have part of the group post in Business Central, for example after an acquisition, enter employees in Business Central by hand. Whoever goes on leave or leaves often simply stays active there.
- Every hour KoppelHet reads the updated employees from Unit4, only for the companies and personnel type that belong in Business Central.
- A new employee becomes an employee in the matching Business Central company.
- On the dateFrom of a new relation KoppelHet updates the dimension for department or cost centre.
- Status on leave becomes inactive, terminated becomes terminated with the end date.
- A code without a dimension value goes to finance as an alert.
What to watch for with Unit4 HR and Microsoft Dynamics 365
- Unit4 has the statuses active, terminated and on leave for an employee, and Business Central has active, inactive and terminated. KoppelHet translates leave to inactive and not to terminated, so someone returns after their leave without a new card and old expenses stay with the same employee.
- Relations in Unit4 have a start and end date, also in the future. Business Central only keeps the current dimension value. KoppelHet therefore checks every morning which relations take effect that day, and only puts the new department or cost centre into Business Central on that day.
- A cost centre relation in Unit4 can have a percentage, while a default dimension in Business Central carries one code. KoppelHet picks the cost centre with the largest share and reports a split to finance, who can adjust the dimension per line on deviating postings.
- Besides own employees Unit4 also holds other resources, distinguished by a personnel type. Business Central only needs own employees for hours and expenses. KoppelHet filters on personnel type, so external resources from Unit4 do not become employees in Business Central.
- Dimension values are read-only in the Business Central API. If the department code from Unit4 does not yet exist as a dimension value, KoppelHet creates the employee without that dimension and asks finance to add the value. The next run sets the dimension after all.
- Unit4 advises using ge on the time of the previous run when fetching changes, with a chance of duplicates. KoppelHet compares each employee with the card in Business Central and only writes when something differs, so the modification date in Business Central keeps its meaning.
- Each Unit4 company that posts in Business Central belongs to one company there, and the Business Central API works per company. Companies that post in Unit4 itself are skipped by KoppelHet.
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
Why not post everything in Unit4?
That is finance's choice, often after an acquisition. As long as both systems run, this integration keeps the employees in Business Central aligned with HR.
Does salary go to Business Central?
No. Only the data that hours, projects and expenses need. A payroll journal can be added 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.
- Unit4 ERPx through the ObjectAPI (GET /v1/objects/employees) with OAuth 2.0 client credentials, incremental with filter=lastUpdated/updatedAt ge, limit and offset; per employee GET /v1/employees/{personId} with includeRelatedValues. Fields including companyId, personnelType, status (Active, Terminated, On leave), relatedValues with percentage, dateFrom and dateTo. Tenant limit 500 requests per minute.
- Business Central API v2.0 per company with an app registration in Microsoft Entra ID - employees (POST, PATCH; number, givenName, surname, email, employmentDate, terminationDate, status Active, Inactive or Terminated, lastModifiedDateTime) and defaultDimensions with parentType Employee; dimensionValues GET only.
Which fields are transferred
The key fields. The full mapping is agreed per customer.
| Field in Unit4 HR | Field in Microsoft Dynamics 365 | Notes |
|---|---|---|
personId | number | |
nameInformation.firstName, surname | givenName, surname | |
contactPoints (e-mail) | email | |
companyId | Bedrijf in Business Central | Fixed table per company |
relatedValues afdeling (dateFrom) | defaultDimensions (afdeling) | |
relatedValues kostenplaats (dateFrom) | defaultDimensions (kostenplaats) | With a split the largest percentage |
employments.startDate | employmentDate | |
status On leave of Terminated | status Inactive of Terminated, terminationDate |
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