Personio logoQuinyx logo

Leave, absence and time

Personio to Quinyx integration: employees and approved absences from Personio in the schedule

With an integration between Personio and Quinyx, new employees, changes, departures and approved absences from Personio reach Quinyx automatically, so planning schedules with the current staffing. KoppelHet puts approved time off in the schedule the same day and translates offices and contracts into units and agreements in Quinyx.

What the integration does

Organisations that manage time off in Personio and schedules in Quinyx often see approved leave in the schedule late. Leave approved in the morning for the same afternoon then only reaches the planner the next day, and someone is scheduled while on leave.

  1. HR records a new employee in Personio, with office, department and weekly hours. KoppelHet places the employee with an agreement in the right Quinyx unit.
  2. An employee requests time off in Personio and the manager approves it.
  3. KoppelHet sees the approval at the next check and puts the absence in Quinyx, in whole or half days or in hours.
  4. If the absence is moved or removed in Personio, KoppelHet adjusts the schedule right away.
  5. On departure KoppelHet sets the last working day in Quinyx.
Personio → KoppelHet → QuinyxSOURCEPersonioTARGETQuinyxKoppelHetmapping · logging · monitoringPersonio → KoppelHet → QuinyxSOURCEPersonioTARGETQuinyxKoppelHetmapping · logging · monitoring
Out: Employee with office, department and weekly hours · Approved absence in days or hours · Moved and deleted absences · Balance per absence type · Termination date

What to watch for with Personio and Quinyx

  • KoppelHet checks several times a day, so an afternoon off approved in the morning is in the schedule that same morning.
  • Personio sends a notification when an absence is created, moved or deleted, but deliberately not on approval. Relying on notifications alone therefore misses the moment time off becomes final. KoppelHet therefore requests the absences changed since the previous round on a fixed interval and checks the approval status.
  • Personio stores a time zone with every absence, while Quinyx returns times in UTC by default. For time off in hours KoppelHet converts the times, so a morning off at a German location does not shift by an hour.
  • Absences in Personio are tracked in days or in hours, with half days at the start or end. Quinyx has a full absence and a partial absence from the start or the end of the shift. KoppelHet chooses the matching form per absence.
  • Personio itself recommends keeping Personio as the source of truth for absences. KoppelHet therefore writes nothing back to Personio, so a change in the schedule does not overwrite the time off record.
  • Personio also tracks attendance itself. If employees clock in Quinyx, attendance in Personio stays empty or is duplicated. KoppelHet keeps time recording in Quinyx and does not create attendance in Personio, unless you want that later as an extension.
  • Personio calls a location an office, Quinyx works with units. An employee who helps out at a second location stays at their own office in Personio; in Quinyx they get an extra role there, so they can be scheduled in both.

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 · Basic

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

Do worked hours go back to Personio?

Not in this integration. The hours usually go to payroll per country. 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.

  • Personio is read through the Personio API v2 with client credentials. Absences through GET /v2/absence-periods with updated_at.gte and approval.status; days per period through /v2/absence-periods/{id}/breakdowns. Webhooks absence-period.created, absence-period.updated.timerange and absence-period.deleted; an approval does not trigger a webhook.
  • Quinyx is written with employees through the Employees API v3 and roles through /hr/v3/role-assignments, agreements through wsdlUpdateAgreementsV2. Absences through the v2 Absences API (full or part-time with absenceRate and absenceRateDirection); Quinyx returns dates and times in UTC by default, with the Prefer header for another time zone.

Which fields are transferred

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

Field in PersonioField in QuinyxNotes
Person idbadgeNumber
Voornaam en achternaampersonalInformation.firstName, lastName
E-mailemail
officeemployment.homeGroupIdThrough a table from Personio offices to Quinyx units
weekly_working_hoursContracturen (agreement)
Startdatum dienstverbandemployment.employmentStartDate
Einddatum dienstverbandleaveDate
Absence period (approval.status APPROVED)AbsenceOne Quinyx type per absence type
starts_from en ends_at (met timezone_id)Begin en einde van de absence

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.