Personio logoDy

Leave, absence and time

Personio to Dyflexis integration: new employees and contract hours straight into scheduling

With an integration between Personio and Dyflexis, a new employee from Personio appears in Dyflexis automatically as soon as HR creates the employment, with office, employer, contract hours and cost centre. On departure the last working day from Personio is the end date in scheduling, so nobody is rostered after their last shift.

What the integration does

Organisations with Personio for HR and Dyflexis for rosters often have the location manager add new colleagues to Dyflexis, sometimes only on their first day. A leaver taking their remaining leave then stays in the schedule until the official end date.

  1. HR creates the employee and employment in Personio, with office, hours and start date.
  2. Personio reports the new employee; KoppelHet fetches the employment and sends it to Dyflexis.
  3. An administrator links the employee once in Dyflexis, well before the first working day.
  4. Changes to hours, office or cost centre in Personio update the contract in Dyflexis.
  5. On termination KoppelHet sets the last working day as the end date in Dyflexis.
Personio → KoppelHet → DyflexisSOURCEPersonioTARGETDyflexisDyflexisKoppelHetmapping · logging · monitoringPersonio → KoppelHet → DyflexisSOURCEPersonioTARGETDyflexisDyflexisKoppelHetmapping · logging · monitoring
Out: Employee with name and work email · Office and legal entity · Contract hours per week · Cost centre · Start date and last working day

What to watch for with Personio and Dyflexis

  • On termination Personio records both the employment end date and the last working day. Dyflexis uses the end date to decide until when someone can be scheduled. KoppelHet takes the last working day, so someone taking their remaining leave no longer appears in the roster.
  • Personio only reports the start of an employment on the start date itself, at midnight UTC. That is too late for scheduling. KoppelHet responds as soon as the employment is created, so the new colleague is in Dyflexis weeks ahead.
  • An employment in Personio can be split over several cost centres, each with a weight. Dyflexis has one cost centre per employee. KoppelHet passes the cost centre with the highest weight; with equal shares a fixed rule agreed in advance decides.
  • Dyflexis calls everyone who arrives through the API an external employee, while Personio uses external for hired-in people. By default KoppelHet only sends internal employments. Whether freelancers should also be in the roster is agreed per organisation.
  • Personio records per employment the hours per week and what counts as full time for that employment. Dyflexis asks for hours and average days per week. KoppelHet takes over the hours and derives the days with a table per office, because a location with long shifts needs fewer days for the same hours.
  • Personio only sends the person's ID in a notification and expects an acknowledgement within three seconds. KoppelHet acknowledges immediately and fetches the data afterwards, so Personio does not resend the notification and scheduling still gets the current state.

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

Can approved absence from Personio reach Dyflexis?

Personio reports changes to absence periods, but the public Dyflexis API has no entry point for supplying time off. That is why absence is not part of this integration. We check with Dyflexis whether it is possible and add it later if so.

Do worked hours go back to Personio?

Personio does not run Dutch payroll. The hours from Dyflexis belong in the payroll system of the Dutch entity; that integration can be added later as an extension.

Is salary data sent to Dyflexis?

No. Dyflexis can store an hourly wage per contract, but the integration leaves it empty. If scheduling wants to see labour cost, 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 webhooks (person.created, employment.created, employment.updated, employment.updated.cost-centers, employment.terminated; payload with IDs only, signed with HMAC-SHA256, 2xx within 3 seconds) and the Personio API v2 (GET /v2/persons/{person_id}/employments with weekly_working_hours, full_time_weekly_working_hours, office, legal_entity, cost_centers with weight, type INTERNAL or EXTERNAL and termination with last_working_day). Client credentials per integration.
  • Dyflexis is written through POST /api2/external-employees/{employeeReference} and POST /api2/external-employees/{employeeReference}/contracts (contractReference, office, type, start, end, hours, days). Both are upserts; scope external_employees.

Which fields are transferred

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

Field in PersonioField in DyflexisNotes
person.idemployeeReferenceFixed key
employment.idcontractReference
Voornaam, achternaam en werkadresfirstName, lastName, email
employment_start_dateemploymentStart en contract start
termination.last_working_dayemploymentEnd en contract endNot the legal termination date
office.idofficeThrough a translation table
legal_entity.idemployerReferenceId
weekly_working_hourshours
cost_centers (id en weight)costCenterThe cost centre with the highest weight
position.titlejobDescription

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.