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.
- HR creates the employee and employment in Personio, with office, hours and start date.
- Personio reports the new employee; KoppelHet fetches the employment and sends it to Dyflexis.
- An administrator links the employee once in Dyflexis, well before the first working day.
- Changes to hours, office or cost centre in Personio update the contract in Dyflexis.
- On termination KoppelHet sets the last working day as the end date in Dyflexis.
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 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
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 Personio | Field in Dyflexis | Notes |
|---|---|---|
person.id | employeeReference | Fixed key |
employment.id | contractReference | |
Voornaam, achternaam en werkadres | firstName, lastName, email | |
employment_start_date | employmentStart en contract start | |
termination.last_working_day | employmentEnd en contract end | Not the legal termination date |
office.id | office | Through a translation table |
legal_entity.id | employerReferenceId | |
weekly_working_hours | hours | |
cost_centers (id en weight) | costCenter | The cost centre with the highest weight |
position.title | jobDescription |
Related
Ashby → Personio
Ashby to Personio integration: hires with hours and entity as new employees in Personio
Bullhorn → Personio
Bullhorn to Personio integration: placements as a person with employment in Personio
Carerix → Personio
Carerix to Personio integration: successful placement as a new employee in Personio
Greenhouse → Personio
Greenhouse to Personio integration: hired candidates as employees in Personio