HoorayHR logoServiceNow logo

HR to ITSM

HoorayHR to ServiceNow integration: users per entity and catalog requests for joiners and leavers

With an integration between HoorayHR and ServiceNow, every employee from HoorayHR is a user in ServiceNow, with entity, team and team lead, and KoppelHet orders a request from the service catalog for every new contract or end date. After the last working day the user becomes inactive in ServiceNow.

What the integration does

Organisations that use HoorayHR as their HR system and ServiceNow for IT or facilities only have people in ServiceNow who already have an account. An intern or new colleague only appears after the first working day, and the team lead who has to approve requests is often out of date.

  1. Every hour KoppelHet reads all employees, contracts, teams and entities from HoorayHR and compares them with the previous state.
  2. Entities and teams go to ServiceNow first as company and department, then the users with their team lead as manager.
  3. A contract with status future produces an onboarding request within the agreed lead time, with the employee as requested for.
  4. An end date produces an offboarding request; after that date the user becomes inactive.
HoorayHR → KoppelHet → ServiceNowSOURCEHoorayHRTARGETServiceNowKoppelHetmapping · logging · monitoringHoorayHR → KoppelHet → ServiceNowSOURCEHoorayHRTARGETServiceNowKoppelHetmapping · logging · monitoring
Out: User with display name, language and employee number · Entity as company · Team as department, team lead as manager · Onboarding request from a future contract · Offboarding request and inactive user

What to watch for with HoorayHR and ServiceNow

  • HoorayHR gives a contract the status active, future or inactive. A new colleague with a signed contract starting next month is therefore already listed as future in HoorayHR. KoppelHet orders the onboarding item at that point, so the workplace is ready for day one.
  • A contract in HoorayHR is fixed-term, permanent or internship. For interns you often choose a smaller catalog item in ServiceNow, without a dedicated laptop. KoppelHet orders the item you designate per contract type.
  • HoorayHR stores the partner's surname next to the own surname, with a choice of how the name is shown, and supplies a composed surname for it. KoppelHet puts that composed name in ServiceNow, so a colleague who uses her partner's name appears that way on every ticket.
  • The team lead of a team is held in HoorayHR's team information, and a team lead can have rights over themselves. KoppelHet never sets a team lead as their own manager in ServiceNow; for them we take the lead of a parent team or a fixed approver.
  • HoorayHR records a language per employee: Dutch, English or German. ServiceNow can show notifications and the portal in the user's language. KoppelHet takes over the language from HoorayHR, so a German colleague gets the onboarding request confirmed in their own language.
  • HoorayHR has no fixed cost centre field, but it has extra fields that the API only returns when you ask for them. KoppelHet requests the extra fields and fills the cost centre in ServiceNow from the extra field you use for it.
  • Employees in HoorayHR cannot be requested by change date, and ServiceNow only transforms an import after loading. KoppelHet therefore only sends the differences from the previous state as import rows, so the transform maps do not reprocess the whole organisation every hour.

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 approves the requests?

That is set by the catalog item's flow in ServiceNow. Usually it is the manager, who comes from the team lead in HoorayHR.

What happens when the API key expires?

The expiry date is fixed at creation. KoppelHet warns well in advance, so you create a new key in time.

Technical details for IT

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

  • HoorayHR through api.hoorayhr.io with a personal API key (pk_…, admin role, fixed scopes and expiry date) as Bearer token. GET /users?includeExtraFields=true (employeeNumber, firstName, nickName, formattedLastName, lastNameUsage, email, locale, entityId, teams, companyStartDate, companyEndDate, extraFields; filtering only $in on id), /contracts (status ACTIVE, FUTURE or INACTIVE; type 1 fixed-term, 2 permanent, 3 internship), /teams-information (teamLeadersIds, teamMembersIds) and /entities (always at least one). A 403 with INACTIVE_COMPANY or PAYMENT_OVERDUE stops the run.
  • ServiceNow is written through the Import Set API (POST /api/now/import/{stagingTableName}/insertMultiple, asynchronous by default) with transform maps and coalesce on employee_number; with run_after first core_company and cmn_department, then sys_user.
  • Requests through POST /api/sn_sc/servicecatalog/items/{sys_id}/order_now with sysparm_quantity, variables and sysparm_requested_for (depending on glide.sc.req_for.roles). KoppelHet stores the REQ number per employee per event.

Which fields are transferred

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

Field in HoorayHRField in ServiceNowNotes
employeeNumberemployee_number (coalesce)
firstName of nickNamefirst_name
formattedLastNamelast_nameFollows lastNameUsage, so own or partner name
emailemail
locale (nl, en, de)preferred_language
entityId (/entities)company (core_company)
Gekozen team (/teams-information)department (cmn_department)
teamLeadersIds van dat teammanager (sys_user)
Contract met status FUTURECatalogusitem onboarding, sysparm_requested_for
companyEndDateCatalogusitem offboarding, daarna active = false

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.