

HR to ERP
Deel to Unit4 integration: own employees, EOR and contractors from Deel in Unit4 ERP, per legal entity
With an integration between Deel and Unit4 ERP, every contract in Deel becomes an employee in the Unit4 company of the related legal entity, with department, job and the type of employment from Deel. A completed termination in Deel terminates the employee in Unit4; a termination still in progress or cancelled changes nothing.
What the integration does
Organisations that hire people in several countries through Deel, as own employee, through EOR or as contractor, and use Unit4 ERP for projects and time entry add everyone to Unit4 by hand. Contractors and EOR workers then land in the wrong company or with the wrong type, and cancelled terminations are processed anyway.
- Deel reports a new or changed contract; KoppelHet fetches the person with only the fields Unit4 needs.
- Per contract KoppelHet picks the Unit4 company from the legal entity and the personnel type from the type of hire.
- After Unit4's validation beforehand the employee is created or updated, with department and manager.
- Once a termination in Deel is completed, the employment gets the last day and the employee is terminated.
What to watch for with Deel and Unit4 ERP
- One person can have several contracts in Deel, each at its own legal entity of the customer. Unit4 only accepts new employees for one company per call. KoppelHet creates an employee per contract in the Unit4 company of that entity and always processes a batch per company.
- Deel records the type of hire per contract: own employee, EOR, PEO or contractor. In Unit4 the personnel type determines what someone may book and how costs run. KoppelHet converts the type of hire with a table into the personnel type finance uses in Unit4, so a contractor does not appear as own employee in reports.
- A termination in Deel goes through statuses from pending to completed, and can be cancelled or fail. Unit4 only knows terminating, which gives someone the terminated status straight away. KoppelHet only terminates at the completed status, with the last working day from the contract; a cancelled termination leaves the employee active in Unit4.
- Deel returns the department as a name, with the name of the parent department, not as a code. Unit4 expects an existing relation value and reports an unknown value in the validation beforehand. KoppelHet translates name and parent department together into the Unit4 code, so two teams with the same name under different departments do not get mixed up.
- Deel's people list lets you choose which fields come back, down to a field within a contract. KoppelHet only requests name, contracts, entity, department, manager and termination. Payment details and salary from Deel therefore never even reach the integration.
- If a contract's start date in Deel moves later, for example because of a visa that comes later, Unit4 does not allow the employment start date to be set later. KoppelHet then removes the employment row and sets it again with the new date, provided no hours have been booked on it yet.
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 EOR workers and contractors also go to Unit4?
Yes, if they book hours or costs. At the start we agree which types of hire go along and with which personnel type.
Do contractor invoices from Deel go to Unit4?
Not in this integration. It keeps employees current; invoices or payroll costs from Deel to Unit4 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.
- Deel through webhooks and the REST API - GET /rest/people with fields (including employments[0].client_legal_entity, employments[0].hiring_type, employments[0].termination_last_day), hiring_types filter, department with name and parent, direct_manager with work_email, active_worker_termination_status (PENDING, CONTRACT_TERMINATION_DATA_COLLECTED, IN_PROGRESS, COMPLETED, FAILED, CANCELED).
- Unit4 ERPx through the Employees API - POST /v1/employees/validate, POST /v1/employees/batch (at most 200, one companyId; 403 on different companyIds), personnelType, PATCH with AddOrReplaceById and RemoveById on employments (positionId, startDate, endDate) and relatedValues, DELETE /v1/employees/{personId} as Terminate.
Which fields are transferred
The key fields. The full mapping is agreed per customer.
| Field in Deel | Field in Unit4 ERP | Notes |
|---|---|---|
employments[].id | personId (per contract) | Or the contract's employee number, per customer |
first_name, last_name | Voornaam en achternaam | |
employments[].client_legal_entity | companyId | Lookup table |
employments[].hiring_type | personnelType | Types agreed per customer |
department.name en department.parent | relatedValues afdeling | By name, through a lookup table |
employments[].job_title | employments (positionId) | |
direct_manager.work_email | Relatie leidinggevende | |
employments[].start_date | Begindatum dienstverband | |
termination_last_day (COMPLETED) | Einddatum en status Terminate |
Related
Ashby → Deel
Ashby to Deel integration: hires at the own entity as direct employee in Deel
Bullhorn → Deel
Bullhorn to Deel integration: first placement as a direct employee with a contract in Deel
Carerix → Deel
Carerix to Deel integration: successful placement as a person or contract in Deel
Deel → 4PS Construct
Deel to 4PS Construct integration: own employees of the construction entity in 4PS, with department and cost centre as dimensions