HR to ITSM
Sage People ServiceNow integration: team members as users and requests for every employment record
With an integration between Sage People and ServiceNow, every team member from Sage People becomes a user in ServiceNow, with department, job title, manager and entity, and KoppelHet orders a request from the ServiceNow service catalog for every new or ended employment record. The request is in the employee's name, and after the employment end date the integration sets the user to inactive.
What the integration does
Organisations that use Sage People for several countries and run their service desk on ServiceNow often only see in ServiceNow what Active Directory passes on. An end date in Sage People then reaches the service desk through an email from the manager, or not at all.
- KoppelHet queries team members and employment records through the Salesforce API, on the modification date of both objects.
- Only team members of the entities that belong to this ServiceNow instance are passed on.
- Entities, departments and offices are loaded into ServiceNow first, then the users.
- ServiceNow updates the user on employee number or creates it.
- When the start date of an employment record falls within the agreed lead time, KoppelHet orders the onboarding item with the employee as requested for.
- An end date results in an offboarding request; after that date the user is set to inactive.
What to watch for with Sage People and ServiceNow
- Sage People keeps the person and the employment in two objects: fHCM2__Team_Member__c and fHCM2__Employment__c. KoppelHet queries both on modification date, because an end date only touches the employment record and would otherwise not produce an offboarding request in ServiceNow.
- Sage People runs on Salesforce. KoppelHet signs in through an External Client App with client credentials, running as an API user with a Salesforce Integration licence and read access only to the fields ServiceNow needs.
- An international Sage People org often also holds colleagues served by another service desk. KoppelHet filters on entity, so ServiceNow only receives users this service desk actually supports.
- Each Sage People entity becomes a company in core_company. A ServiceNow flow can then pick a different assignment group per country for laptop, phone and access.
- When someone moves to another entity, Sage People gives them a new employment record while the team member stays. KoppelHet treats that as a transfer: one change request and a different company on the same user, not an offboarding.
- When a former employee returns, Sage People has a new employment record on the existing team member. ServiceNow finds the inactive user again on employee number and reactivates it, with the earlier tickets still attached.
- Pay, reviews and absence sit in Sage People next to the basic data. They are not in the API user's permission set, so the integration cannot read them and they never reach ServiceNow.
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 a different service desk work per country?
Yes. The Sage People entity becomes the company in ServiceNow, and the catalog item's flow picks the assignment group based on it.
What if someone changes country within the group?
Then it stays one user in ServiceNow. The company changes and a change request is raised, not a departure and a new start.
Which data does KoppelHet read from Sage People?
Only the fields in the API user's permission set: name, employee number, email, job title, department, manager, entity and the employment dates.
Technical details for IT
For those who want to know how it works under the hood: APIs, fields and sources used.
- Sage People is read through the Salesforce REST API with SOQL on fHCM2__Team_Member__c and fHCM2__Employment__c, on modification date. Sign-in with OAuth 2.0 client credentials through an External Client App, Run As a user with the Minimum Access – API Only profile and a read-only permission set.
- ServiceNow is written through the Import Set API (insertMultiple) into staging tables with transform maps and coalesce on employee_number. insertMultiple transforms asynchronously by default; with run_after, core_company, cmn_department and cmn_location are processed before sys_user.
- Requests through POST /api/sn_sc/servicecatalog/items/{sys_id}/order_now with the variables and sysparm_requested_for. This creates a REQ with a RITM; the item's flow creates the tasks. KoppelHet stores the RITM number per employment record.
Which fields are transferred
The key fields. The full mapping is agreed per customer.
| Field in Sage People | Field in ServiceNow | Notes |
|---|---|---|
Employee Number (team member) | employee_number | Key for updating |
First Name | first_name | |
Last Name | last_name | |
E-mail (team member) | email | |
Job Title | title | |
Department | department (cmn_department) | |
Entiteit of company | company (core_company) | |
Kantoor | location (cmn_location) | |
Manager | manager (sys_user) | |
End Date (employment) | active = false | After the end date |
Nieuw of beëindigd employment record | Catalogusitem voor onboarding of offboarding | |
Gesynchroniseerde gebruiker | sysparm_requested_for | |
Start Date of End Date (employment) | Variabele startdatum of laatste werkdag |
Related
Sage People → Active Directory
Sage People to Active Directory integration: domain accounts for the Dutch office
Sage People → ADP iHCM
Sage People to ADP iHCM integration: salary records, bonuses and leavers of the Dutch payroll company to ADP
Sage People → AFAS Profit
Sage People to AFAS integration: Dutch employees and salaries from Sage People in AFAS Profit
Sage People → Arbodienst (SIVI)
Sage People to the occupational health service via SIVI: absence records as absence reports