

HR to ERP
BambooHR to 4PS Construct integration: employees from BambooHR in the 4PS company of their location
With an integration between BambooHR and 4PS Construct, every employee of a location that works in 4PS automatically reaches the matching 4PS company, with name prefix, job, work email, start date and cost centre. A termination from BambooHR sets the end date in 4PS, and a rehire gets their existing 4PS card back instead of a second one.
What the integration does
Organisations that run HR in BambooHR and have their construction, installation or maintenance companies work in 4PS Construct retype technicians and site managers into 4PS. When a former employee returns, someone creates a second card in 4PS, and their old and new hours are split over two numbers.
- HR records a new employee or change in BambooHR, at a location that works in 4PS.
- BambooHR reports the change; KoppelHet fetches the employee.
- KoppelHet creates the employee in the 4PS company of the location, or updates the existing card.
- The cost centre from BambooHR goes on the employee as a default dimension, if it exists in 4PS.
- On a termination KoppelHet sets the end date; after the last working day the status changes to terminated.
What to watch for with BambooHR and 4PS Construct
- BambooHR has no separate field for a name prefix, while the employee card under 4PS has a middle name field. KoppelHet takes a known prefix such as van or de out of the last name and puts it in that field, if you want, so sorting and searching in 4PS on the last name works.
- When a former employee returns, BambooHR keeps the original hire date next to the new one. KoppelHet recognises them by employee number, sets the existing 4PS card back to active with the new start date and clears the end date, so all hours stay under one number.
- BambooHR reports it when an employee is deleted, for example because they were created twice by mistake. The API under 4PS can delete an employee. KoppelHet only does so if there are no time registrations on the card; otherwise it sets the card to inactive and alerts HR.
- BambooHR has no cost centre field by default; it lives in a custom field or a custom table. BambooHR sends no webhook for custom tables. KoppelHet fetches the changed table data daily, and puts a cost centre that exists as a dimension value in 4PS on the employee.
- Dimension values are read-only in the standard API under 4PS. KoppelHet therefore does not create a new cost centre from BambooHR itself. The employee arrives without that dimension and finance sees in the platform which code still needs to be created.
- A BambooHR webhook is retried up to five times on a server error, and not on any other error. KoppelHet acknowledges every notification immediately and processes the employee afterwards, so a temporary outage on the 4PS side does not lose notifications. The daily check catches the rest.
- Only employees of locations that work in 4PS are included. BambooHR gives the location in the job info with an effective date. If a technician moves to a location with a different 4PS company, KoppelHet sets an end date in the old company and creates them in the new one on the effective date.
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
Where is the cost centre in BambooHR?
BambooHR has no fixed field for it. We agree on a custom field or table, or derive it from the department, before the integration goes live.
Do hours from 4PS go back to BambooHR?
Not in this integration. That 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.
- BambooHR through the REST API with a user's API key. Event-based webhooks (employee.created, employee.updated with monitor fields, employee.deleted; retried up to five times on 5xx, not on 4xx) and the endpoint for changed table data. Fields employeeNumber, firstName, lastName, jobTitle, workEmail, location, hireDate, originalHireDate and terminationDate.
- To 4PS through the Business Central API v2.0 per company: employees (POST, PATCH and DELETE with If-Match; number, givenName, middleName, surname, jobTitle, email, employmentDate, terminationDate with 0001-01-01 as empty date, status Active, Inactive or Terminated), timeRegistrationEntries per employee and defaultDimensions with parentType Employee. dimensionValues is read-only.
Which fields are transferred
The key fields. The full mapping is agreed per customer.
| Field in BambooHR | Field in 4PS Construct | Notes |
|---|---|---|
employeeNumber | number | |
firstName | givenName | |
lastName | middleName en surname | Name prefix separate, if you want |
jobTitle | jobTitle | |
workEmail | email | |
location | 4PS-administratie (company) | Through a table |
hireDate en terminationDate | employmentDate, terminationDate en status | |
Eigen veld of tabel kostenplaats | defaultDimensions | Existing dimension values only |
Related
Ashby → BambooHR
Ashby to BambooHR integration: hire, changed start date and employment status in BambooHR
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
BambooHR → AFAS Profit
BambooHR to AFAS integration: contract and salary straight to payroll