Cezanne HR logoServiceNow logo

HR to ITSM

Cezanne HR ServiceNow integration: users with company, cost centre and location, requests on start and departure

With an integration between Cezanne HR and ServiceNow, every employee from Cezanne HR becomes a user in ServiceNow, with company, department, job, location and cost centre, and KoppelHet orders an onboarding request for a new employment and an offboarding request for a real end date. KoppelHet reads Cezanne HR through the OData API v2 and writes to ServiceNow through the Import Set API and the Service Catalog API.

What the integration does

Organisations with Cezanne HR for several employers and ServiceNow as their service desk often see a cost centre or location in ServiceNow that lags months behind HR. Approvals and recharging in ServiceNow are then no longer right.

  1. Every hour KoppelHet reads the people and their current primary employment from Cezanne HR, with the assignments of job, org unit, location and cost centre.
  2. The business email comes from the communications table.
  3. ServiceNow first receives companies, departments, locations and cost centres, then the users on employee number.
  4. A new employment produces an onboarding request with the start date.
  5. When an employment gets a real end date, an offboarding request follows; after that date the user is set to inactive.
Cezanne HR → KoppelHet → ServiceNowSOURCECezanne HRTARGETServiceNowKoppelHetmapping · logging · monitoringCezanne HR → KoppelHet → ServiceNowSOURCECezanne HRTARGETServiceNowKoppelHetmapping · logging · monitoring
Out: User with employee number and work email · Company from the employment · Department, location and cost centre · Onboarding request for a new employment · Offboarding request for an end date

What to watch for with Cezanne HR and ServiceNow

  • Cezanne HR gives an employment without an end an end date of 31-12-2999. KoppelHet treats that value as empty; only a real date produces an offboarding request in ServiceNow.
  • Each employment in Cezanne HR belongs to a company code. That becomes the company in core_company, so ServiceNow can use its own assignment group or catalog per employer.
  • Cezanne HR records cost centres as a separate assignment to a person. KoppelHet puts it in the user's cost centre field, so recharging hardware and licences in ServiceNow uses the same cost centre as HR.
  • Job, org unit and location are assignments with an effective date in Cezanne HR. KoppelHet only applies a future transfer in ServiceNow on that date, with a change request beforehand.
  • Webhooks are part of People PLUS+. Without that package KoppelHet reads hourly; with People PLUS+ a webhook starts the run straight away, and the hourly run stays as a safety net.
  • The business email is not stored on the person itself in Cezanne HR, but in a separate communications table. KoppelHet joins the two before the user goes to ServiceNow.
  • Access to the Cezanne HR API goes through the Customer Success contact, and the integration only sees what the integration user's permissions allow. Pay data falls outside that by default.

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

Do we need People PLUS+?

No. Without webhooks KoppelHet reads hourly. With People PLUS+ changes come through faster.

What if someone has two employments?

KoppelHet uses the current primary employment from Cezanne HR for company and job. The second employment does not create a second user.

How do we get API access for Cezanne HR?

Through your Customer Success contact at Cezanne. We then create an integration user together with only the permissions needed.

Technical details for IT

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

  • Cezanne HR API v2 (OData, dataservice.svc, JSON) with OAuth 2.0. Tables People, PeopleToEmploymentCurrentPrimary, Employments (CompanyCode, TerminationDate), JobDeployments, OrgUnitPositionDeployments, LocationDeployments, CostCentreDeployments and Communications. Webhooks with People PLUS+.
  • ServiceNow is written through the Import Set API (insertMultiple) with transform maps and coalesce on employee_number; with run_after first core_company, cmn_department, cmn_location and cmn_cost_center, then sys_user. Requests through POST /api/sn_sc/servicecatalog/items/{sys_id}/order_now with sysparm_requested_for.

Which fields are transferred

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

Field in Cezanne HRField in ServiceNowNotes
People: personeelsnummeremployee_numberCoalesce field
People: voornaam en achternaamfirst_name, last_name
Communications: zakelijk e-mailadresemail
Employments: CompanyCodecompany (core_company)
JobDeploymentstitle
OrgUnitPositionDeploymentsdepartment (cmn_department)
LocationDeploymentslocation (cmn_location)
CostCentreDeploymentscost_center (cmn_cost_center)
Employments: TerminationDateOffboardingitem en active = falseOnly a real date, not 2999-12-31

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.