HiBob logoZenegy logo

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.

  1. KoppelHet receives Bob's webhook for a new employee of the Danish entity.
  2. KoppelHet determines the global value set from job and employee type and creates the profile in Zenegy.
  3. Approved time off goes to Zenegy as an Approved registration; a second type on the same day goes on the difference list.
  4. KoppelHet prepares a leaver as a resignation; Zenegy completes it after the run covering the last working day.
HiBob → KoppelHet → ZenegySOURCEHiBobTARGETZenegyKoppelHetmapping · logging · monitoringHiBob → KoppelHet → ZenegySOURCEHiBobTARGETZenegyKoppelHetmapping · logging · monitoring
Out: Payroll profile with CPR, address and seniority date · Global value set per type of employee · Approved time off as absence registration

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, architecture and compliance

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.

Price indication · Complex

Leave your work email and you see the price indication right away.

We only use your address to follow up on your question about this integration.

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 HiBobField in ZenegyNotes
HiBob employee idemployeeNumberOtherwise Zenegy builds a number from the CPR
CPR (payrollveld)cpr
root.displayNamename
address (thuisadres)address, postalNumber, city
work.startDateemploymentDate en seniorityDate
work.title en employment-typeGlobalValueSetUidLookup table with UIDs from Zenegy
Time off policy typeabsence type (0 Vacation, 1 Illness, 3 CareDay)
Lifecycle-regel TerminatedlastWorkDay en dateOfResignation

Related

Which systems do you want to connect?

Tell us which systems you use and what should happen automatically. Together we define the smallest working solution, with a clear design and a quote before building.