

HR to ERP
BambooHR to Unit4 integration: employees from BambooHR in Unit4 ERP, with department, job and end date
With an integration between BambooHR and Unit4 ERP, every new employee in BambooHR becomes an employee in Unit4, with department and job from the date in BambooHR's job history. A departure in BambooHR terminates the employee in Unit4 without deleting anything, so hours and expenses stay linked.
What the integration does
Organisations with BambooHR for HR and Unit4 ERP for finance, projects and time entry often add new employees to Unit4 by hand. Transfers then only arrive once someone has booked hours on the wrong department, and leavers stay active in Unit4.
- BambooHR reports a new or changed employee; KoppelHet fetches the job and status history.
- KoppelHet first validates the employee with Unit4 and then creates it in the right Unit4 company.
- Department and job go to Unit4 with their date; the previous department closes on the day before.
- The manager is set as a relation through their email address.
- A terminated status in BambooHR terminates the employee in Unit4 as of the end date.
What to watch for with BambooHR and Unit4 ERP
- BambooHR's webhook for a changed employee only fires on fields you choose to monitor, and returns the names of changed fields without the new values. KoppelHet only monitors department, job, status and manager and then fetches the values, so a new address causes no call to Unit4.
- Department and job are the current value in BambooHR, unless you request the job history; there every row has a date. Unit4 stores relations with a date from and to. KoppelHet builds the relations from the job history, so a transfer as of the first of next month only starts then.
- The termination date in BambooHR is read-only and follows from the employment status table. Unit4 does not delete an employee but sets the status to terminated. KoppelHet only terminates on a status row with terminated, and not on a deleted record in BambooHR; that becomes an alert.
- The employee number in BambooHR is assigned by the organisation itself. Unit4 refuses a second employee with the same number within a company. KoppelHet uses the BambooHR number with Unit4's auto-numbering off, and checks during the initial load which numbers already exist in Unit4.
- BambooHR has no standard field for the legal entity; organisations usually use division or location for it. Unit4 only accepts new employees for one company per call, at most two hundred at a time. KoppelHet derives the company from the agreed field and processes the initial load per company.
- A new job title creates a new row in BambooHR's job history. In Unit4 the start date of an existing employment cannot be moved later. On a new job KoppelHet adds an employment row with the new date and leaves the old row untouched.
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
Does salary data from BambooHR go to Unit4?
No. Finance manages hourly cost rates in Unit4. The API user in BambooHR gets no access to compensation fields.
What if a department from BambooHR does not exist in Unit4?
Unit4's validation beforehand reports it, and KoppelHet then does not create the employee halfway. After a row in the lookup table it goes through.
Technical details for IT
For those who want to know how it works under the hood: APIs, fields and sources used.
- BambooHR through the REST API with an API key of a separate user. Event-based webhooks (employee.created, employee.updated with monitor fields and changedFields, employee.deleted), changed table data for jobInfo (date, department, division, location, jobTitle) and employmentStatus. terminationDate, employmentHistoryStatus and supervisorEmail are read-only.
- Unit4 ERPx through the Employees API with client ID and client secret - POST /v1/employees/validate, POST /v1/employees/batch (at most 200, one companyId), PATCH /v1/employees/batch with AddOrReplaceById on relatedValues (relationId, dateFrom, dateTo) and employments (positionId, startDate, endDate), 409 on an existing personId, DELETE /v1/employees/{personId} sets the status to Terminate.
Which fields are transferred
The key fields. The full mapping is agreed per customer.
| Field in BambooHR | Field in Unit4 ERP | Notes |
|---|---|---|
employeeNumber | personId | Auto-numbering in Unit4 off |
firstName, lastName | Voornaam en achternaam | |
Divisie of locatie (per klant) | companyId | Lookup table to the Unit4 company |
jobInfo: date, department | relatedValues afdeling (dateFrom, dateTo) | |
jobInfo: date, jobTitle | employments (positionId, startDate) | |
supervisorEmail | Relatie leidinggevende | Read-only in BambooHR; looked up by email |
hireDate | Begindatum dienstverband | |
employmentStatus (Terminated, date) | Einddatum en status Terminate |
Related
Ashby → BambooHR
Ashby to BambooHR integration: hire, changed start date and employment status in BambooHR
BambooHR → 4PS Construct
BambooHR to 4PS Construct integration: employees from BambooHR in the 4PS company of their location
BambooHR → Active Directory
BambooHR to Active Directory integration: accounts in your own domain from HR
BambooHR → ADP iHCM
BambooHR to ADP iHCM integration: salary, bonuses and commissions to Dutch payroll