Leave, absence and time
Personio to Protime integration: employees and working hours to Protime, absence back in Personio
With an integration between Personio and Protime, every new employee from Personio appears in Protime automatically, with weekly working hours, legal entity, office and department, so time registration is right from the first working day. Absence approved in Protime comes back into Personio, half days included, so the absence overview in Personio stays complete.
What the integration does
Employers that run HR in Personio and have staff clock in Protime enter every new hire into Protime a second time. Leave and sickness are in Protime, while the time-off overview in Personio stays empty and balances end up in a spreadsheet.
- HR creates the employee in Personio with legal entity, office, department and weekly working hours.
- Personio reports the change. KoppelHet retrieves the employee and the employment and creates the person and contract in Protime.
- The employee clocks in Protime and requests leave there. The manager approves in Protime.
- KoppelHet adds the approved absence as an absence period in Personio, with the right type and a half day where relevant.
- On a termination in Personio the person gets the last working day as end date in Protime.
Back: Approved absence as absence period
What to watch for with Personio and Protime
- Personio holds both working hours and full-time hours per week per employment, and Protime asks for exactly those two values on every contract. The part-time factor therefore carries over unchanged, without anyone converting a percentage.
- Absence can only be read in the Protime API, so leave from Personio cannot be written into Protime. This integration therefore has leave requested and approved in Protime, and fills Personio with the result.
- Personio allows its own approval to be skipped when an absence is created. KoppelHet uses that, because the manager has already approved in Protime. That way no second approval request appears in Personio.
- For a half day of absence Protime indicates whether it is the first or second part of the day. Personio uses the same split for the start and end of a period. A half afternoon off therefore also arrives as a half day in Personio.
- Personio refuses an absence that overlaps an existing period. If leave is extended in Protime later, KoppelHet adjusts the existing period in Personio instead of adding a second one.
- On a termination Personio provides both the contract end date and the last working day. Protime receives the last working day, so an employee with remaining leave after the last working day can no longer clock.
- Personio expects a notification to be acknowledged within three seconds. KoppelHet acknowledges immediately and processes the employee afterwards, so a slow request to Protime does not trigger repeated notifications.
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 keep requesting leave in Personio?
Not if it must also be in Protime, because Protime does not accept absence through the API. We therefore choose one place for requests. When clocking happens in Protime, that is usually Protime.
Is salary data from Personio sent to Protime?
No. Name, employment, working hours and organisation are enough for time registration. Salary and compensation stay in Personio.
What if an absence type is missing in Personio?
Then the period is not created and an alert appears in the platform. HR creates the type in Personio or confirms the Protime code does not need to be in Personio.
Technical details for IT
For those who want to know how it works under the hood: APIs, fields and sources used.
- Personio through webhooks (person.created, employment.created, employment.updated, employment.started, employment.terminated), signed with HMAC-SHA256, and API v2 for persons and employments (weekly_working_hours, full_time_weekly_working_hours, legal_entity, office, org_units, termination with last_working_day). Absence back with POST /v2/absence-periods (person, absence_type, starts_from, ends_at with FIRST_HALF or SECOND_HALF, skip_approval); 409 on overlap.
- Protime through the Protime API (v1) with OAuth 2.0 client credentials. POST people with externalReferenceIdentifier, POST contracts and historical fields for employer, department and work-location. Absence is read through webhooks on absences (dayPart, approvalLevel), signed with HMAC-SHA256; absences have no write scope.
Which fields are transferred
The key fields. The full mapping is agreed per customer.
| Field in Personio | Field in Protime | Notes |
|---|---|---|
Personeelsnummer (attribuut) | employeeNumber en externalReferenceIdentifier | Fixed key in Protime |
employment_start_date | inServiceDate | |
termination.last_working_day | outOfServiceDate | |
weekly_working_hours | contractHoursInMinutes | Converted to minutes |
full_time_weekly_working_hours | fullTimeEquivalentInMinutes | |
legal_entity | employer-history | |
office | work-location-history | |
org_units (afdeling) | department-history | |
Absence definition en dayPart (terug) | absence_type en starts_from.type / ends_at.type | First and Second become FIRST_HALF and SECOND_HALF |
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