KeServiceNow logo

HR to ITSM

Keka ServiceNow integration: employees as users and requests the moment an exit is approved

With an integration between Keka and ServiceNow, every employee from Keka becomes a user in ServiceNow, with job title, department, location and manager, and KoppelHet orders a catalog item for onboarding when a new employee is added and for offboarding as soon as Keka approves an exit. Keka signals those moments with a webhook, and ServiceNow receives the data through the Import Set API and the Service Catalog API.

What the integration does

Organisations that use Keka for HR and ServiceNow for IT often only hear about an approved exit in Keka when the employee comes to hand in their laptop. New colleagues only appear in ServiceNow after the first directory sync.

  1. In Keka, HR sets a webhook action under Event Triggers on employee added, exit approved and exit cancelled.
  2. KoppelHet checks the secret header, fetches the employee through the Keka API and puts them in the ServiceNow staging table.
  3. The transform map creates or updates the user on employee number, with department, location and manager.
  4. For a new employee KoppelHet orders the onboarding item; for an approved exit the offboarding item with the exit date.
  5. Every hour KoppelHet also fetches everything that changed in Keka since the previous run, for changes without an event.
Keka → KoppelHet → ServiceNowSOURCEKekaKekaTARGETServiceNowKoppelHetmapping · logging · monitoringKeka → KoppelHet → ServiceNowSOURCEKekaKekaTARGETServiceNowKoppelHetmapping · logging · monitoring
Out: User with employee number, work email and job title · Department and location from the Keka groups · Manager · Onboarding request (REQ/RITM) for a new employee · Offboarding request with the exit date

What to watch for with Keka and ServiceNow

  • Besides the direct manager, Keka also knows an L2 manager and a dotted-line manager. The manager field of a user in ServiceNow takes one; KoppelHet puts reportsTo there, so catalog approvals land with the direct manager.
  • The offboarding item is ordered on the event of an approved exit, which is usually weeks before the exit date. The service desk then has the whole notice period to plan collecting equipment and handing over mailboxes.
  • HR can still cancel an approved exit in Keka. On that event KoppelHet adds a work note to the open offboarding RITM and notifies the assignment group, so accounts are not switched off anyway.
  • Keka records whether someone is on the regular payroll or a contingent worker. For contingent workers KoppelHet orders a lighter catalog item, without a laptop and with an end date on the access.
  • Keka sends an identifier and the event type in the webhook, without a signature. KoppelHet has Keka send a custom secret header and only puts data in ServiceNow that it then fetched itself from the Keka API.
  • Keka has no office as a separate field, only a city and a country code. At the start we record which combination belongs to which cmn_location; the transform map looks up the location on that.
  • The Keka API allows fifty calls per minute and returns at most 200 employees per page. The hourly run only asks for changes through lastModified, so even an organisation with thousands of employees stays within that limit.

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

What if someone leaves without the exit being approved in Keka?

Then the hourly run catches it: an exit date or the status Relieved in Keka still produces an offboarding request.

Does salary or personal data go to ServiceNow?

No. Keka does supply those fields, but the transform map only takes name, work email, job title, group, city, manager and the dates.

Technical details for IT

For those who want to know how it works under the hood: APIs, fields and sources used.

  • Keka API (https://{company}.keka.com/api/v1) with an OAuth token from login.keka.com (scope kekaapi). GET /hris/employees with lastModified, employmentStatus (Working, Relieved), inNoticePeriod and pageSize (at most 200); fields employeeNumber, email, jobTitle, groups, reportsTo, l2Manager, dottedLineManager, city, countryCode, workerType, contingentType, joiningDate, exitDate and exitReason. Webhooks through Settings > Communications > Event Triggers with optional custom headers. Limit of fifty requests per minute.
  • ServiceNow is written through the Import Set API (POST /api/now/import/{stagingTableName}/insertMultiple) with transform maps and coalesce on employee_number; with run_after first cmn_department and cmn_location, then sys_user. Requests through POST /api/sn_sc/servicecatalog/items/{sys_id}/order_now with variables and sysparm_requested_for; work notes on the RITM through the Table API.

Which fields are transferred

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

Field in KekaField in ServiceNowNotes
employeeNumberemployee_numberCoalesce field
firstName, lastName, displayNamefirst_name, last_name
emailemail
jobTitletitle
groups (afdeling)department (cmn_department)
city + countryCodelocation (cmn_location)
reportsTomanager (sys_user)
joiningDateVariabele startdatum op het onboardingitem
exitDate en exitReasonVariabelen op het offboardingitem
workerType / contingentTypeKeuze van het catalogusitem

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.