Personio logoProtime logo

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.

  1. HR creates the employee in Personio with legal entity, office, department and weekly working hours.
  2. Personio reports the change. KoppelHet retrieves the employee and the employment and creates the person and contract in Protime.
  3. The employee clocks in Protime and requests leave there. The manager approves in Protime.
  4. KoppelHet adds the approved absence as an absence period in Personio, with the right type and a half day where relevant.
  5. On a termination in Personio the person gets the last working day as end date in Protime.
Personio → KoppelHet → ProtimeSOURCEPersonioTARGETProtimeKoppelHetmapping · logging · monitoringPersonio → KoppelHet → ProtimeSOURCEPersonioTARGETProtimeKoppelHetmapping · logging · monitoring
Out: Person with name, employee number and start date · Contract with working hours and full-time hours per week · Legal entity as employer · Office and department
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, 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 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 PersonioField in ProtimeNotes
Personeelsnummer (attribuut)employeeNumber en externalReferenceIdentifierFixed key in Protime
employment_start_dateinServiceDate
termination.last_working_dayoutOfServiceDate
weekly_working_hourscontractHoursInMinutesConverted to minutes
full_time_weekly_working_hoursfullTimeEquivalentInMinutes
legal_entityemployer-history
officework-location-history
org_units (afdeling)department-history
Absence definition en dayPart (terug)absence_type en starts_from.type / ends_at.typeFirst and Second become FIRST_HALF and SECOND_HALF

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.