Personio logoZenegy logo

Payroll integration

Personio to Zenegy integration: Danish employees as a payroll profile in Zenegy, with time off and leavers

With an integration between Personio and Zenegy, Danish employees from Personio reach Zenegy as a full payroll profile, and approved time off as absence. KoppelHet also records the departure as soon as Personio has the end date, so payroll no longer retypes anything.

What the integration does

Organisations with HR in Personio and a Danish entity paid in Zenegy record new colleagues, time off and leavers in Personio. Payroll then puts the same data into Zenegy again, often just before the run.

  1. A Zenegy system administrator gives KoppelHet OAuth access with only the required resources.
  2. Every hour KoppelHet reads the changed employees of the Danish entity in Personio.
  3. A new employee becomes a payroll profile in Zenegy with the agreed global value set.
  4. Approved time off goes to Zenegy as approved absence, one registration per day.
  5. For a leaver KoppelHet records the resignation; Zenegy deactivates the profile after the run covering the last working day.
Personio → KoppelHet → ZenegySOURCEPersonioTARGETZenegyKoppelHetmapping · logging · monitoringPersonio → KoppelHet → ZenegySOURCEPersonioTARGETZenegyKoppelHetmapping · logging · monitoring
Out: Payroll profile with Base, Employment and Salary Data · CPR number, address, employment date and seniority date · Approved absence per day · Resignation with last working day

What to watch for with Personio and Zenegy

  • Zenegy asks for CPR number, name, address, postcode, city, employment date and seniority date for every new profile. Personio has no standard field for the CPR number and no separate seniority date; KoppelHet reads a custom attribute and uses the start date as seniority date, unless HR records another date.
  • Values that apply to many employees are handled in Zenegy with global values and sets. Changing a global value through the API does not change the profile and returns no error either. KoppelHet therefore only picks an existing set when creating a profile and leaves set management in Zenegy.
  • A profile can only be deleted in Zenegy while it has not been in any payroll run, and deleted data cannot be restored. If a new employee withdraws in Personio, KoppelHet only deletes the profile before the first run; after that it becomes a resignation.
  • Zenegy only deactivates a leaver once a run covering the last working day has been processed, and Zenegy advises against starting runs on odd dates for that. KoppelHet records the resignation as soon as Personio has the end date and follows through isProcessed when it is complete.
  • Absence only counts in Zenegy if the registration is Approved, and only users with an elevated role may set that. Because the time off is already approved in Personio, KoppelHet writes with such a role, and never two registrations on the same day.
  • Zenegy wants the CPR number as ten characters. In a custom attribute in Personio it is often stored with a hyphen, such as 010199-1212. KoppelHet removes the hyphen and checks the length before the profile goes to Zenegy.

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

Does this also work for Swedish employees?

Zenegy has a separate API per country. Sweden can follow later as an extension, with its own fields.

What if someone drops out before the start?

Before the first run KoppelHet deletes the profile. After that it becomes a resignation, because Zenegy no longer allows a profile with a run to be deleted.

Technical details for IT

For those who want to know how it works under the hood: APIs, fields and sources used.

  • Personio through API v2 (GET /v2/persons with updated_at.gt, scope personio:persons:read) and the employments and absences of the Danish entity.
  • Zenegy through the dev portal API with OAuth, access granted by a system administrator with READ or FULL per resource; employees (create and PATCH with only changed fields), resignations with isProcessed, absence with status Approved.

Which fields are transferred

The key fields. The full mapping is agreed per customer.

Field in PersonioField in ZenegyNotes
Eigen attribuut CPR in PersonioCPRWithout an employee number Zenegy derives it from the CPR
first_name, last_nameNaam in Base
Adres in PersonioAdres, postcode en plaats
Startdatum dienstverbandIndiensttredingsdatum en anciënniteitsdatum
Verloftype vakantieAbsence type Vacation (ferie) of VacationFreeDay (feriefri)Each type has its own balance in Zenegy
Einddatum dienstverbandResignation met laatste werkdag

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.