Leave, absence and time
Personio to Deputy integration: employees and approved absences from Personio in Deputy, worked time back as attendance
With an integration between Personio and Deputy, every employee marked for shift planning in Personio appears automatically in Deputy, at the right location. Approved absences from Personio arrive in Deputy as approved leave, and timesheets approved for payroll in Deputy go back to Personio as attendance.
What the integration does
Organisations that do HR and payroll preparation in Personio and schedule their floor staff in Deputy retype new starters and track absences in two places. Worked time sits in Deputy, while Personio needs it for the payslip.
- HR marks an employee in Personio for shift planning, with office and start date.
- KoppelHet creates the employee in Deputy at the location that belongs to the office.
- Approved absence is entered per day as approved leave in Deputy; a deleted absence is withdrawn there.
- Timesheets approved for payroll in Deputy go to Personio as work and break periods, without a second approval.
- After the last working day KoppelHet terminates the employee in Deputy.
Back: Work and break periods from timesheets approved for payroll
What to watch for with Personio and Deputy
- Personio advises shift planning integrations to take over only the employees switched on for it. KoppelHet only takes people with that marker to Deputy, so office staff without shifts do not appear in the list of schedulable employees. If the marker is switched on later, the employee follows with the next notification.
- For absences Personio only sends notifications for creation, a changed time range and deletion, not for an approval. Deputy should receive the leave as approved. KoppelHet therefore requests the changed absences every few minutes and only enters leave with status approved in Deputy after approval.
- Deputy wants a start and end time for leave, even for a full day. Personio gives a per-day breakdown of what is deducted from the balance for each absence, and whether the first or last day is a half day. KoppelHet builds the times per day from those day parts, so a half day in Deputy also covers half a day.
- Personio advises sending approved worked time from the planning system to Personio, so time is not recorded twice. Deputy has an approval for time and one for payroll. KoppelHet only sends timesheets with that second approval, and writes them to Personio without an extra approval step.
- Personio can generate breaks itself based on the customer's break rules. If KoppelHet also sends the breaks from Deputy, a break appears twice in Personio. At the start we choose one source for breaks: the Deputy breaks, or the rules in Personio.
- Personio accepts start and end time of worked time without a time zone, and attributes a night shift to one date. Deputy gives times with the location's time zone. KoppelHet converts the times to the office's local time and lets a shift across midnight belong to its start date.
- Personio limits how often one day's worked time may be changed. Deputy can still change a timesheet after approval. KoppelHet only sends a day once all of that day's timesheets are approved for payroll, and a later correction as one change, so the limit is not reached.
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 employees request leave in Deputy?
They can, but Personio advises keeping Personio leading for absences. This integration follows that advice.
Do premiums from Deputy also go to Personio?
No, only work and break time. Premiums are calculated by payroll. Pay components from Deputy can be added later as an extension.
What if an absence type has no leave rule in Deputy?
Then the leave is not entered and an alert appears. HR links a leave rule or confirms the type is not needed in the schedule.
Technical details for IT
For those who want to know how it works under the hood: APIs, fields and sources used.
- Personio through the API v2 with client credentials. Persons and employments (office, termination.last_working_day) through webhooks and requests. Absences through GET /v2/absence-periods with updated_at and approval.status, and GET /v2/absence-periods/{id}/breakdowns per day; webhooks absence-period.created, absence-period.updated.timerange and absence-period.deleted. Worked time through POST /v2/attendance-periods (person, type WORK or BREAK, start and end without time zone) with skip_approval; 403 when the day limit is exceeded.
- Deputy through POST /api/management/v2/employees (firstName, lastName, primaryLocation, workplaces[].agreement.payrollId, externalId, startDate) and POST /api/v1/supervise/employee/{employeeid}/terminate. Leave through POST /api/v1/resource/Leave (Employee, LeaveRule, Company, DateStart, DateEnd, Start, End, Status 1). Timesheets through POST /api/v1/resource/Timesheet/QUERY (500 records by default) with TimeApproved and PayRuleApproved.
Which fields are transferred
The key fields. The full mapping is agreed per customer.
| Field in Personio | Field in Deputy | Notes |
|---|---|---|
Person ID (Personio) | externalId en workplaces[].agreement.payrollId | |
first_name, last_name, email | firstName, lastName, contact.email1 | |
office (employment) | primaryLocation | Through a table of offices to locations |
Absence period (APPROVED) met breakdowns | Leave met Status 1, Start en End per dag | |
termination.last_working_day | terminate na die datum | |
Timesheet (PayRuleApproved), StartTime, EndTime | Attendance period type WORK | Local time without time zone |
Pauzes op de timesheet | Attendance period type BREAK |
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