Personio logoFreshservice logo

HR to ITSM

Personio to Freshservice integration: onboarding request before the start date, offboarding on the last working day

With an integration between Personio and Freshservice, every employee from Personio becomes a requester in Freshservice with department, office and supervisor, and an onboarding request arrives well before the start date and an offboarding request before the last working day. Freshworks has its own Personio connector with recipes for updating requesters, onboarding and offboarding; KoppelHet comes in when the request must arrive during the onboarding phase, when externals follow a different path or when a change of legal entity must not become a departure.

What the integration does

Organisations with Personio for HR and Freshservice for IT and facilities that have switched on the Personio connector only receive the onboarding request on the first working day, when the laptop should already have been there. On a move to another entity the service desk creates an offboarding for someone who is simply staying.

  1. HR enters a new employee in Personio; they are in the onboarding phase until the start date.
  2. KoppelHet creates the requester and submits the onboarding request straight away, with start date, position, department and office.
  3. A new department, new office or new supervisor updates the requester in Freshservice.
  4. On a termination KoppelHet looks at the termination type and the last working day, and submits an offboarding request where needed.
  5. After the last working day the requester is deactivated; tickets are kept.
Personio → KoppelHet → FreshserviceSOURCEPersonioTARGETFreshserviceKoppelHetmapping · logging · monitoringPersonio → KoppelHet → FreshserviceSOURCEPersonioTARGETFreshserviceKoppelHetmapping · logging · monitoring
Out: Requester with name, work email and position · Department and office as department and location · Supervisor · Onboarding request with start date and employee type · Offboarding request with last working day and termination type

What to watch for with Personio and Freshservice

  • A new employee has the status onboarding in Personio until the start date. According to its own documentation, the Freshservice connector's onboarding recipe only creates a request when the status is active. KoppelHet submits the request during the onboarding phase, so IT has weeks to prepare.
  • Personio also has a change of legal entity as a termination type. For IT that is not a departure. KoppelHet then creates no offboarding request, but updates the requester and submits a request for what differs per entity, such as the email domain.
  • Personio keeps the last working day separately from the end date of employment. On garden leave it comes earlier. KoppelHet uses the last working day for the offboarding request, so laptop and access do not remain until the formal end date.
  • Externals are a separate employee type in Personio. KoppelHet passes this on in the onboarding request, so Freshservice selects only accounts from the onboarding kit and no laptop or phone.
  • Personio uses org units for both departments and teams. Freshservice can link a requester to several departments. If all units go across, every project team becomes a department in Freshservice. KoppelHet only takes the units of the department type.
  • The termination type from Personio, such as resignation, end of contract or retirement, goes into the offboarding request. On a dismissal by the employer Freshservice can therefore choose a different kit, for example with immediate blocking of accounts.
  • Not every change in Personio sends a notification. The periodic comparison picks up missed changes, within the limit the Freshservice plan sets per minute.

This integration is also part of joiner, mover, leaver.

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

What if a new hire does not turn up after all?

If the employee is deleted or terminated in Personio before the start, KoppelHet reports this to the service desk, so the open onboarding request is cancelled.

Does private data from Personio go to Freshservice?

No. Only name, work email, position, department, office and supervisor. Salary and home address stay in Personio.

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, Person.updated, Employment.updated) and the Personio API v2 (persons and employments). The employment contains status (ONBOARDING, ACTIVE, INACTIVE, LEAVE), type (INTERNAL, EXTERNAL), position, org_units with type, office, supervisor, legal_entity, employment_start_date and a termination object with termination_date, last_working_day and type (including QUIT, FIRED, CONTRACT_EXPIRED, RETIREMENT, SUB_COMPANY_SWITCH). The credential gets read-only rights.
  • Freshservice is written through the Freshservice API v2. Requesters with department_ids, location_id, reporting_manager_id and custom_fields; POST /api/v2/onboarding_requests and /api/v2/offboarding_requests with initiator_id and form fields. Freshservice selects the mandatory items from the onboarding kit based on the field values.

Which fields are transferred

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

Field in PersonioField in FreshserviceNotes
person.idEigen aanvragersveld (custom_fields)Fixed key across employments
Voornaam en achternaamfirst_name en last_name
Werkadresprimary_email
position.titlejob_title
org_units (type department)department_idsTeams are not used
office.idlocation_id
supervisor.idreporting_manager_id en initiator_id
employment_start_dateOnboardingverzoek (cf_date_of_joining)
type (INTERNAL of EXTERNAL)Formulierveld voor het onboardingpakket
termination.type en termination.last_working_dayOffboardingverzoek (cf_separation_type en laatste werkdag)

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.