HR to ITSM
Simployer to ServiceNow integration: users with cost centre and catalogue requests on joining and leaving
With an integration between Simployer and ServiceNow, every employee from Simployer One becomes a user in ServiceNow, with office, department, cost centre and manager, and KoppelHet orders an onboarding item as soon as Simployer reports a new employee. When an offboarding date is set in Simployer, an offboarding item follows well in advance, and on that date KoppelHet sets the user inactive.
What the integration does
Organisations that use Simployer One as their HR system and ServiceNow for IT often order hardware for a new colleague without the right cost centre. A departure only reaches IT when someone has already left, because Simployer only reports the offboarding on the effective date itself.
- Simployer reports a new or changed employee; KoppelHet checks the signature and remembers the eventId.
- KoppelHet fetches the employee with office, department, cost centre and manager in one call.
- Through an import set KoppelHet updates location, department, cost centre and user in ServiceNow.
- For a new employee KoppelHet orders the onboarding item; on an offboarding date the offboarding item.
- When Simployer reports that the offboarding has taken effect, KoppelHet sets the user inactive.
What to watch for with Simployer and ServiceNow
- Simployer only reports an offboarding with its own event once the effective date has been reached. KoppelHet does not wait for that for the offboarding item in ServiceNow: as soon as a change contains an offboarding date, KoppelHet orders the item, and the event on the day itself only sets the user inactive.
- Besides an employee's own cost centre Simployer One also returns an effective cost centre. KoppelHet sets the effective one in ServiceNow, so the department's cost centre counts when the employee has none and an order in the catalogue is booked to the right place.
- A Simployer webhook contains only a few fields. KoppelHet then fetches the employee with office, department, cost centre and manager as relations in the same response, and uses a field selection to request only the fields ServiceNow needs, so personal ID number, bank account and home address are not fetched.
- Simployer signs a delivery with an HMAC-SHA256 over the raw body plus the timestamp, in Base64. KoppelHet checks it over the bytes as they arrive, because re-serialised JSON gives a different result; a notification that does not match therefore cannot set a user in ServiceNow inactive.
- Every Simployer event has an eventId that stays the same on a repeated delivery. KoppelHet keeps those IDs, so a second delivery of the same new employee does not order a second onboarding item in the catalogue.
- Simployer returns the country of employment per employee as a country code. Together with the office KoppelHet uses it to set the location in ServiceNow, so a colleague working from home in another country reaches that country's team.
- Simployer has its own sandbox environment with the same API. KoppelHet first tests the integration there against a ServiceNow sub-production instance, so no real employee gets an onboarding item during set-up.
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
Does ServiceNow have a Simployer integration?
We found none. Simployer offers SCIM for users in services such as Okta, but that does not order catalogue items in ServiceNow. KoppelHet builds on the APIs of both sides.
Why the effective cost centre?
Because it is also filled when the cost centre comes from the department. That way every user in ServiceNow has a cost centre for orders.
Technical details for IT
For those who want to know how it works under the hood: APIs, fields and sources used.
- Simployer One through the HRM One API (api.alexishr.com/v1, sandbox api.sandbox.alexishr.com/v1) with a bearer token: GET /employee/{id} with select (employeeNumber, firstName, lastName, workEmail, title, officeId, departmentId, effectiveCostCenterId, managerEmployeeId, employmentCountry, hireDate, endDate, offboardDate, active) and relations (office, department, effectiveCostCenter, managerEmployee). Webhooks employee.created, employee.updated, employee.onboarded and employee.offboarded (when the effective date is reached) with envelope eventId, eventType and timestamp; X-Simployer-Signature = Base64(HMAC-SHA256(secret, body + : + X-Simployer-Timestamp)).
- ServiceNow through the Import Set API (POST /api/now/import/{stagingTableName}/insertMultiple, run_after for cmn_location, cmn_department and cmn_cost_center before sys_user, coalesce on employee_number) and the Service Catalog API (order_now with sysparm_quantity, variables and sysparm_requested_for).
Which fields are transferred
The key fields. The full mapping is agreed per customer.
| Field in Simployer | Field in ServiceNow | Notes |
|---|---|---|
employeeNumber | employee_number | Coalesce key |
firstName en lastName | first_name en last_name | |
workEmail | email | |
title | title | |
officeId en employmentCountry | location (cmn_location) | |
departmentId | department (cmn_department) | |
effectiveCostCenterId | cost_center (cmn_cost_center) | |
managerEmployeeId | manager | |
offboardDate of endDate | Offboardingitem; employee.offboarded zet active op false |
Related
Recruitee → Simployer
Recruitee to Simployer integration: hired candidates with employment and salary in Simployer One
Simployer → Active Directory
Simployer to Active Directory integration: accounts in your own domain from Simployer
Simployer → ADP iHCM
Simployer to ADP iHCM integration: salary, bonuses and end of employment from Simployer One to ADP iHCM
Simployer → AFAS Profit
Simployer to AFAS integration: Dutch employees from Simployer One in AFAS payroll