Sage People logoServiceNow logo

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.

  1. KoppelHet queries team members and employment records through the Salesforce API, on the modification date of both objects.
  2. Only team members of the entities that belong to this ServiceNow instance are passed on.
  3. Entities, departments and offices are loaded into ServiceNow first, then the users.
  4. ServiceNow updates the user on employee number or creates it.
  5. 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.
  6. An end date results in an offboarding request; after that date the user is set to inactive.
Sage People → KoppelHet → ServiceNowSOURCESage PeopleTARGETServiceNowKoppelHetmapping · logging · monitoringSage People → KoppelHet → ServiceNowSOURCESage PeopleTARGETServiceNowKoppelHetmapping · logging · monitoring
Out: User with employee number and email · Entity as company · Department and office as location · Job title and manager · Onboarding request (REQ/RITM) in the employee's name · Offboarding request for an end date

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, 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 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 PeopleField in ServiceNowNotes
Employee Number (team member)employee_numberKey for updating
First Namefirst_name
Last Namelast_name
E-mail (team member)email
Job Titletitle
Departmentdepartment (cmn_department)
Entiteit of companycompany (core_company)
Kantoorlocation (cmn_location)
Managermanager (sys_user)
End Date (employment)active = falseAfter the end date
Nieuw of beëindigd employment recordCatalogusitem voor onboarding of offboarding
Gesynchroniseerde gebruikersysparm_requested_for
Start Date of End Date (employment)Variabele startdatum of 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.