HR to ITSM
Personio ServiceNow integration: employees and onboarding tickets
With an integration between Personio and ServiceNow, employees from Personio are users in ServiceNow, with department, office, cost centre and supervisor, and KoppelHet creates a request in the ServiceNow service catalog for every new hire, job change or departure. The onboarding request is in the name of the new employee, with start date, job, manager and location, so IT has laptop and accounts ready for day one.
What the integration does
Organisations with Personio for HR and ServiceNow for IT and facilities often email new colleagues to the service desk, which creates a request itself, sometimes only in the week of the start. Anyone recharging laptops and phones per cost centre sees the cost centres in ServiceNow lag behind Personio.
- Personio reports a new or changed employee; KoppelHet fetches the person and the most recent employment.
- New departments, offices and cost centres go to ServiceNow first, then the user.
- The user gets department, location, cost centre and supervisor as references.
- A change Personio does not report is picked up by the periodic comparison.
- After the contract end date KoppelHet sets the user to inactive.
- When the start date falls within the agreed lead time, four weeks by default, KoppelHet orders the onboarding item in the service catalog in the name of the new user.
- That item's flow assigns tasks to the teams for laptop, accounts and access.
- A new job or department results in a change request; an end date in an offboarding request one week before the last working day.
What to watch for with Personio and ServiceNow
- Personio puts someone who has yet to start on the status onboarding. KoppelHet uses that status plus the start date: the request only arrives within the agreed lead time before the start, not already at a signed contract three months out.
- An extension creates a new employment in Personio while the old end date remains. KoppelHet looks at the newest employment and creates no offboarding request in ServiceNow for an extension.
- Which laptop, phone or access badge someone needs is often recorded in custom attributes in Personio. KoppelHet fills the catalog item variables with them, so the flow only creates the tasks that are needed.
- An employee can be split over several cost centres in Personio, with a share per cost centre. ServiceNow has one cost centre per user, so KoppelHet takes the one with the largest share, so hardware cross-charging is right.
- Not every change in Personio sends a notification. Alongside the direct notifications KoppelHet compares periodically, so a new cost centre, for example, still reaches ServiceNow.
- Personio mixes departments and teams. Only departments become a department in ServiceNow, so assignment and reporting do not fragment over dozens of teams.
- ServiceNow can run an import only after an earlier one is finished. KoppelHet loads departments, locations and cost centres first, so a new cost centre exists before the first user refers to it.
- Someone can have several employments in Personio, for example after an extension. KoppelHet uses the most recent employment, so an extension does not set the user to inactive.
- Personio distinguishes own employees and externals. Whether externals get a ServiceNow user and with which role is agreed per customer; the type is stored on the user.
- If ServiceNow already takes users from Active Directory, KoppelHet updates them on employee number or email address. No second user is created, and the existing user gets the department and cost centre AD does not know.
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 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 we also have tickets created for onboarding and offboarding?
Yes. By default KoppelHet orders the onboarding item from your service catalog four weeks before the start date, in the name of the new employee, and the offboarding item one week before the last working day. Which tasks follow and for which team is set up by you in ServiceNow.
How does the cost centre reach ServiceNow if someone is split over several?
The cost centre with the largest share counts. If you want a different rule, we record it at the start.
We already take users from Active Directory. What now?
KoppelHet then updates those users, without duplicates. The AD import can keep running for the login name.
Does the integration see salaries in Personio?
No. The integration only reads the person and employment data the service desk needs.
We already have an integration platform. Does this fit alongside it?
Yes. This integration runs on the KoppelHet platform and asks nothing of your existing integration platform. Every action is in the audit logging, so operations and audit know what happened.
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; not every attribute change sends Person.updated) and the Personio API v2 (persons and employments, most recent first), with a periodic comparison. Fields include position.title, org_units, office, supervisor, cost_centers and employment_end_date.
- ServiceNow is written through the Import Set API (insertMultiple) to staging tables with transform maps and coalesce on employee_number, with run_after to process cmn_department, cmn_location and cmn_cost_center before sys_user. Integration user with only the roles for these tables.
- Tickets through the Service Catalog API: POST /api/sn_sc/servicecatalog/items/{sys_id}/order_now with the catalog variables in variables and the user in sysparm_requested_for. This creates a request (REQ) with a requested item (RITM); the catalog item's flow creates the catalog tasks (sc_task) per assignment group. A note on an open request goes through the Table API on sc_req_item. KoppelHet stores the RITM number per employee per event.
Which fields are transferred
The key fields. The full mapping is agreed per customer.
| Field in Personio | Field in ServiceNow | Notes |
|---|---|---|
Personio-id of personeelsnummer | employee_number | Coalesce key |
Voornaam en achternaam | first_name en last_name | |
Zakelijk e-mailadres | email | |
position.title | title | |
org_units (type afdeling) | department (cmn_department) | |
office | location (cmn_location) | |
cost_centers (hoogste aandeel) | cost_center (cmn_cost_center) | |
supervisor | manager (sys_user) | |
employment_end_date | active = false | |
Indiensttreding, wijziging of vertrek | Catalogusitem voor onboarding, wijziging of offboarding | A separate item per event, chosen at the start |
Gesynchroniseerde gebruiker | sysparm_requested_for | The request is in the name of the new employee |
employment_start_date of employment_end_date | Variabele startdatum of laatste werkdag | |
supervisor | Variabele manager (verwijzing naar sys_user) | |
office | Variabele locatie (cmn_location) | |
position.title | Variabele functie | |
Afdeling of team | Toewijzingsgroep van de catalog tasks | Through the catalog item flow |
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