Sage People logoFreshservice logo

HR to ITSM

Sage People Freshservice integration: team members as requesters, onboarding and offboarding per employment record

With an integration between Sage People and Freshservice, every team member from Sage People becomes a requester in Freshservice, with department, location, job title and manager, and KoppelHet submits an onboarding or offboarding request for every new or ended employment record. Freshservice has no connector for Sage People, so KoppelHet reads Sage People through the Salesforce API and writes to the Freshservice API v2.

What the integration does

Organisations with Sage People as the HR system for several countries and Freshservice as IT service desk often fill in the Freshservice onboarding form by hand, based on what is already in Sage People. A departure reaches IT as a separate email, sometimes only after the last working day.

  1. Every hour KoppelHet queries the team members and employment records in Sage People that changed since the previous run.
  2. Only entities that Freshservice serves are passed on; the rest stays outside the integration.
  3. A new employment record produces an onboarding request, with the manager as initiator.
  4. As soon as the work email is known, KoppelHet creates or updates the requester, with department, location and manager.
  5. An end date on the employment record gives an offboarding request; after that day KoppelHet deactivates the requester.
Sage People → KoppelHet → FreshserviceSOURCESage PeopleTARGETFreshserviceKoppelHetmapping · logging · monitoringSage People → KoppelHet → FreshserviceSOURCESage PeopleTARGETFreshserviceKoppelHetmapping · logging · monitoring
Out: Requester with name, work email and job title · Department and manager · Entity as a custom requester field and as location · Onboarding request with start date · Offboarding request with last working day

What to watch for with Sage People and Freshservice

  • Sage People stores the end date on the employment record and not on the team member. KoppelHet therefore watches the modification date of both objects; otherwise a departure stays invisible to Freshservice as long as nobody touches the personal data.
  • Freshservice lets an API key with admin rights submit an onboarding request on behalf of someone else, through initiator_id. KoppelHet fills in the manager from Sage People there, so the manager sees the request in their own portal and can answer IT's questions.
  • A requester in Freshservice cannot exist without an email address or phone number. New colleagues often have no work email in Sage People yet, so the onboarding request goes in first and the requester only follows once the address is in Sage People.
  • The Sage People entity is sent as a field value in the onboarding form. Freshservice picks the items from the onboarding kit based on such values, so a colleague in Germany gets a different keyboard and different software than someone in the Netherlands.
  • When someone changes entity within the group, Sage People creates a second employment record on the same team member. KoppelHet only adjusts the location and entity field of the existing requester and submits no offboarding for the old record.
  • Freshservice limits listing all requesters separately, at 40 to 140 per minute depending on the plan. KoppelHet keeps its own record of which team member belongs to which requester, so it does not need to walk the list every run.
  • When a former employee returns, Freshservice still has the deactivated requester. KoppelHet reactivates that requester instead of creating a new one, because the email address is already taken in Freshservice.

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

Who sees the onboarding request in Freshservice?

The service desk, and the manager from Sage People as initiator. The manager can answer IT's questions in the portal.

Does KoppelHet read salary data from Sage People?

No. The API user only gets read access to name, work 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 through the Salesforce REST API with SOQL on fHCM2__Team_Member__c and fHCM2__Employment__c, filtered on LastModifiedDate. Sign-in with OAuth 2.0 client credentials through an External Client App running as an API user with a Salesforce Integration licence, the Minimum Access – API Only profile and a permission set with read-only access to the required fields.
  • Freshservice through the API v2: requesters (primary_email or a phone number required; department_ids, location_id, reporting_manager_id, custom_fields; deactivate and reactivate), POST /api/v2/onboarding_requests and /api/v2/offboarding_requests with initiator_id and form fields. Per-minute limits per plan, for listing requesters 40 (Starter) to 140 (Enterprise).

Which fields are transferred

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

Field in Sage PeopleField in FreshserviceNotes
Team member IdEigen aanvragersveld (custom_fields)Key; stays the same on return
First Name, Last Namefirst_name, last_name
E-mail (team member)primary_email
Job Titlejob_title
Departmentdepartment_ids
Entiteitlocation_id en eigen veldDetermines the onboarding kit per country
Managerreporting_manager_id en initiator_id
Start Date (employment)Onboardingveld cf_date_of_joining
End Date (employment)Offboardingverzoek, daarna deactiveren

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.