

Leave, absence and time
BambooHR to Quinyx integration: employees, approved time off and balances from BambooHR in the schedule
With an integration between BambooHR and Quinyx, employees of the locations scheduled in Quinyx reach the right unit automatically, and time off approved in BambooHR appears as an absence in Quinyx within fifteen minutes. If time off is changed, denied or cancelled in BambooHR, KoppelHet adjusts the absence in Quinyx, and the balance per time off type from BambooHR shows on the tracker in the Quinyx app.
What the integration does
Organisations that have time off requested and approved in BambooHR, but schedule in Quinyx, enter approved time off into the schedule by hand. If a request is later changed or cancelled, the old absence stays in Quinyx and someone looks unavailable who can actually work.
- HR records a new employee in BambooHR at a location scheduled in Quinyx.
- KoppelHet creates the employee in the Quinyx unit of that location, with an agreement based on the contract hours.
- A manager approves time off in BambooHR. In the next round KoppelHet sees the change and puts the absence in Quinyx.
- If the request is changed or cancelled, KoppelHet removes the old absence and books the new one where needed.
- At night KoppelHet puts the balance per time off type from BambooHR on the tracker in Quinyx.
What to watch for with BambooHR and Quinyx
- BambooHR sends webhooks for created, changed and deleted employees, but not for time off. KoppelHet therefore requests the time off requests updated since the previous round every fifteen minutes. According to BambooHR that timestamp moves on approve, deny, cancel, supersede and edit, so no change slips between rounds.
- If someone edits a request that is still open, BambooHR creates a new request with a new ID and marks the old one superceded. Quinyx only documents creating and deleting an absence. KoppelHet deletes the absence of the old ID and books the one for the new ID, with the shifts reassigned back to the employee.
- BambooHR gives an amount per day for each request, in hours or in days, depending on the time off type. A day with fewer hours than the company's standard working day becomes a partial absence with a percentage in Quinyx. A full day stays a regular absence.
- If the BambooHR user behind the API key lacks the right to see a colleague's time off, they get an empty list without an error. For the schedule that colleague then never seems to be off. At the start KoppelHet checks with known requests that the key sees every location in Quinyx.
- Quinyx refuses an absence if the time tracker has too little balance, or if the employee has no valid agreement. The time off is already approved in BambooHR, so retrying does not help. KoppelHet puts the balance from BambooHR on the tracker and reports a refusal to the planner with Quinyx's reason.
- For time off types without accrual, such as special leave, BambooHR reports a balance of zero while they can still be requested. KoppelHet only puts accruing types on a tracker in Quinyx, so employees do not see a zero in the app for leave they are entitled to.
- A webhook for a changed employee in BambooHR only fires for fields ticked in the webhook. KoppelHet has it monitor exactly the fields Quinyx uses, such as location, department and hours, so a new phone number does not cause a round to Quinyx.
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 every fifteen minutes and not instantly?
BambooHR gives no notification for time off. One request every fifteen minutes on the last change time is fast enough for planning and hardly loads BambooHR.
Can employees also request time off in Quinyx?
We recommend one place: BambooHR, because that is where the time off policy and balances live. Quinyx shows the time off and the balance.
Do worked hours go back to BambooHR?
Not in this integration. Hours usually go from Quinyx to payroll. 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 the API key of a user with rights to time off. Employees through event-based webhooks (employee.created, employee.updated with monitor fields, employee.deleted; retried up to five times on 5xx, not on 4xx). Time off through GET /api/v1/time_off/requests with updatedSince and status (approved, denied, superceded, requested, canceled); per request amount with unit hours or days and dates per day. Time off types and the default hours per day through /api/v1/meta/time_off/types; balances through Get Time Off Balance with policyType accruing or discretionary.
- Quinyx is written with employees through the Employees API v3 (POST /hr/v3/employees with badgeNumber, homeGroupId and employmentStartDate) and roles through /hr/v3/role-assignments. Absence through the v2 Absences API: POST /v2/schedule/groups/{groupId}/absences and /absences/part-time (absenceRate, absenceRateDirection, splitType), DELETE with reassignBackShifts. Refusals such as ACCRUAL_BALANCE_EXCEEDED and MISSING_AGREEMENT go to the planner. Agreements through wsdlUpdateAgreementsV2, balances through wsdlUpdateTimeTrackers.
Which fields are transferred
The key fields. The full mapping is agreed per customer.
| Field in BambooHR | Field in Quinyx | Notes |
|---|---|---|
employeeNumber | badgeNumber | Fixed key in Quinyx |
firstName, lastName | personalInformation.firstName, lastName | |
workEmail | email | |
location | employment.homeGroupId | Through a table from BambooHR locations to Quinyx units |
hireDate | employment.employmentStartDate | |
standardHoursPerWeek | Agreement (contracturen) | Whole hours per week |
Time off request (approved), type.id | Absence, absenceTypeId | One absence type per time off type |
dates (bedrag per dag) | Absence part-time (absenceRate) | For less than a full day |
Time off balance (accruing) | Time tracker |
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