
Payroll integration
HiBob to Zenegy integration: Danish starters, time off and leavers from Bob in Zenegy
KoppelHet builds an integration between HiBob and Zenegy that creates a new employee of the Danish entity in Zenegy with the right global value set, passes approved time off on as an Approved registration and prepares a leaver as a resignation. Payroll then no longer retypes Danish starters, time off and leavers from Bob.
What the integration does
Organisations that do HR in Bob and run Danish pay in Zenegy often record a Danish starter, time off and a leaver twice. Those who want the global value set decided per job, or have time off types that do not map one-to-one to Zenegy, finish some of those starters by hand.
- KoppelHet receives Bob's webhook for a new employee of the Danish entity.
- KoppelHet determines the global value set from job and employee type and creates the profile in Zenegy.
- Approved time off goes to Zenegy as an Approved registration; a second type on the same day goes on the difference list.
- KoppelHet prepares a leaver as a resignation; Zenegy completes it after the run covering the last working day.
What to watch for with HiBob and Zenegy
- Zenegy only counts time off when the registration has status Approved, and only users with an elevated role may approve. Time off in Bob is already approved before it produces a webhook; the API connection in Zenegy therefore gets a role that may write Approved.
- In Zenegy only the absence types vacation, illness, vacation free day, care day and child sick day have a balance calculation. A Bob time off type that does not fall under those, such as training, lands on a type without calculation; KoppelHet agrees that per Bob policy with payroll.
- After the payroll run Zenegy sets absence to Archived and the status can no longer change. If an employee withdraws time off in Bob for a period already paid, KoppelHet reports it to payroll instead of trying to change the registration.
- Bob reports a leaver at midnight after the effective date, and Zenegy only deactivates after a run covering the last working day. KoppelHet reads the future lifecycle entry as soon as HR records the leaver, so the resignation is ready in Zenegy before that run.
- Zenegy wants a CPR number of exactly ten characters, and without an employee number it builds one from that CPR itself. Bob has no standard field for the CPR; it sits in a custom field, sometimes with a hyphen after the date of birth. KoppelHet removes the hyphen, checks the length and always sends its own employee number.
- Zenegy can only assign a different global value set when a profile is reactivated. If a former employee returns in Bob, KoppelHet reactivates the Zenegy profile with the set from the lookup table. If the type changes for an active employee, that goes to payroll as a notification.
- Zenegy does not allow two absences on the same day. In Bob someone can request vacation in the morning and a care day in the afternoon. KoppelHet then sends the first registration and puts the second on the difference list, instead of letting the whole day be rejected.
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
Technical details for IT
For those who want to know how it works under the hood: APIs, fields and sources used.
- KoppelHet reads HiBob through signed webhooks (employee.joined, table.entry.created for work, salary and lifecycle, time off events) and the People API with a service user, and writes to the Zenegy Payroll API (OAuth 2.0 with refresh token; Post employee with GlobalValueSetUid, Create Absence with status Approved, Resign employee).
Which fields are transferred
The key fields. The full mapping is agreed per customer.
| Field in HiBob | Field in Zenegy | Notes |
|---|---|---|
HiBob employee id | employeeNumber | Otherwise Zenegy builds a number from the CPR |
CPR (payrollveld) | cpr | |
root.displayName | name | |
address (thuisadres) | address, postalNumber, city | |
work.startDate | employmentDate en seniorityDate | |
work.title en employment-type | GlobalValueSetUid | Lookup table with UIDs from Zenegy |
Time off policy type | absence type (0 Vacation, 1 Illness, 3 CareDay) | |
Lifecycle-regel Terminated | lastWorkDay en dateOfResignation |
Related
Ashby → HiBob
Ashby to HiBob integration: a hire from Ashby straight in as an employee in Bob
Bullhorn → HiBob
Bullhorn to HiBob integration: an approved placement as a new employee in Bob
Carerix → HiBob
Carerix to HiBob integration: successful match becomes a new employee in Bob
Greenhouse → HiBob
Greenhouse to HiBob integration: from a hire in Greenhouse to a new employee in Bob