

HR to ERP
BuddeeHR to Unit4 integration: Buddee position periods as dated relations in Unit4
With an integration between BuddeeHR and Unit4 ERP, every employee from Buddee lands in the right Unit4 company, and department, cost centre and cost unit from each Buddee position period become relations with the same start and end date in Unit4. Unit4 then posts hours and costs, even retroactively, to the department that applied on that day.
What the integration does
Organisations with HR in Buddee and finance and projects in Unit4 ERP do update a retroactive team change in Buddee, but in Unit4 the employee is still on the old cost centre. Finance then corrects the hours with journal entries.
- HR records an employee or a new position period in Buddee, with department, cost centre, cost unit and effective date.
- KoppelHet compares Buddee with Unit4 and first lets Unit4 validate a new employee without saving.
- If everything is complete, the employee is created in the Unit4 company that belongs to their Buddee company.
- Every position period becomes a set of relations with the same start and end date; a retroactive period lands on the right dates.
- After the end date of the employment KoppelHet terminates the employee in Unit4.
What to watch for with BuddeeHR and Unit4 ERP
- Buddee records every position as a period with a start and end date, and Unit4 also records an employee's relations with a start and end date. KoppelHet copies each Buddee period one to one, so Unit4 knows which department someone belonged to even for a past date.
- In Buddee company, first name, last name and hire date are enough to create an employee. Unit4 usually asks for more, such as department and cost centre. KoppelHet first lets Unit4 validate without saving, and tells HR which data is still missing in Buddee.
- Buddee keeps cost centre and cost unit separately per position period. In Unit4 they become two separate relations, each with its own dates, so a change of cost unit without a new department is also right in Unit4.
- One Buddee environment can contain several companies, and Unit4 works with companies that each have their own accounts. Every Buddee company belongs to one Unit4 company. When someone transfers to the other company, KoppelHet terminates them in one and creates them in the other.
- Unit4 rejects an employee number that already exists in the same company. Because the Buddee employee number is the key, a repeated request after an outage can never produce a second employee.
- If a start date in Buddee is moved later, Unit4 does not let the start date of the employment be set later. The integration then removes the employment and puts it back with the new date.
- KoppelHet does not terminate an archived employee without an end date in Buddee in Unit4. Only an end date on the employment leads to a termination; archiving without an end date goes to HR as an alert.
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 salary and bank account go to Unit4?
No. The integration only sends what Unit4 needs for time entry, projects and approval. If Unit4 pays expense claims to employees, the bank account can be added later as an extension.
What if a department from Buddee does not exist in Unit4?
Then Unit4 rejects the relation and finance gets an alert with the code. Once it exists in Unit4, the integration adds the relation with the right dates.
Does this also work with an approval workflow in Unit4?
Yes. A new employee then first waits for approval in Unit4, and KoppelHet shows them as pending until approved.
Technical details for IT
For those who want to know how it works under the hood: APIs, fields and sources used.
- Buddee through the REST API on api.buddee.nl - employees (number, company_id, work_email, archived_at), positions (department_id, cost_center_id, cost_unit_id, start_date, end_date) and employments (start_date, end_date), with pagination up to 200 per page. A dedicated Buddee user for the integration; JWT through /auth/token with refresh token.
- Unit4 ERPx through the Employees API - POST /v1/employees/validate, POST /v1/employees (409 for an existing personId), PATCH /v1/employees/batch with AddOrReplaceById and RemoveById on relatedValues (relationId, dateFrom, dateTo) and employments (positionId, startDate, endDate), DELETE /v1/employees/{personId} for termination. Client ID and client secret.
Which fields are transferred
The key fields. The full mapping is agreed per customer.
| Field in BuddeeHR | Field in Unit4 ERP | Notes |
|---|---|---|
number | personId | Buddee employee number as fixed key; automatic numbering in Unit4 off |
company_id | companyId | Fixed table per Buddee company |
first_name, last_name_prefix, last_name | nameInformation.firstName, surname | |
work_email | contactPoints (e-mail) | |
employments.start_date, end_date | employments (startDate, endDate) | |
positions.department_id | relatedValues (afdeling, dateFrom, dateTo) | |
positions.cost_center_id | relatedValues (kostenplaats, dateFrom, dateTo) | Which relationId differs per Unit4 setup |
positions.cost_unit_id | relatedValues (kostendrager, dateFrom, dateTo) |
Related
BuddeeHR → Active Directory
BuddeeHR to Active Directory integration: domain account from employment and position in Buddee
BuddeeHR → AllSolutions
Buddee to AllSolutions integration: employees, positions and schedules from BuddeeHR in AllSolutions
BuddeeHR → Arbodienst (SIVI)
BuddeeHR to occupational health service via SIVI: verified sickness registrations from Buddee to the health service
BuddeeHR → Microsoft Entra ID
BuddeeHR to Entra ID integration: Microsoft 365 account from the employment in Buddee