Visma Peple logoServiceNow logo

HR to ITSM

Visma Peple ServiceNow integration: users and catalog requests from the Peple exports

With an integration between Visma Peple and ServiceNow, every employee from Peple is a user in ServiceNow, with organisation unit, job title and manager, and KoppelHet orders a request from the ServiceNow service catalog for every new or ended contract. KoppelHet reads Peple through the Reporting API with incremental exports, and sets the user to inactive after the end date.

What the integration does

Organisations that moved from Visma Raet to Peple and use ServiceNow as their service desk often miss the integration they had with the old system. New employees then only reach ServiceNow once their Active Directory account exists.

  1. KoppelHet starts exports of employees, contracts, organisation units and users in Peple, with only changes since the previous run.
  2. Once an export is ready, KoppelHet fetches the result with the job ID.
  3. Organisation units go to ServiceNow first, then the users on employee number.
  4. When a contract's start date falls within the agreed lead time, KoppelHet orders the onboarding item with the employee as requested for.
  5. An end date results in an offboarding request; after that date the user becomes inactive.
Visma Peple → KoppelHet → ServiceNowSOURCEVisma PepleTARGETServiceNowKoppelHetmapping · logging · monitoringVisma Peple → KoppelHet → ServiceNowSOURCEVisma PepleTARGETServiceNowKoppelHetmapping · logging · monitoring
Out: User with employee number · Organisation units as departments · Manager from the users export · Contract with start and end date · Onboarding and offboarding request (REQ/RITM)

What to watch for with Visma Peple and ServiceNow

  • Peple does not supply data directly but through an export that KoppelHet first starts and then fetches with a job ID. ServiceNow therefore receives the changes in batches per run, which fits the Import Set API with insertMultiple.
  • Per endpoint and per tenant Peple allows two full exports per 24 hours. KoppelHet only runs the full export at the start and incrementally with changeTimestampAfter after that, so there is room left for a recovery run.
  • The manager is held in Peple as a user ID and comes from the users export. KoppelHet translates that ID to the manager's employee number, so ServiceNow points the manager field to the right sys_user.
  • A change at company level in Peple can make all employees show up as changed in the incremental export. KoppelHet compares the values with the previous run and only sends real differences to ServiceNow.
  • An employee can have more than one contract in Peple, for example a temporary extension next to the permanent contract. We agree which contract sets department and job in ServiceNow, and a second contract does not produce a second onboarding request.
  • During maintenance Peple answers with a 503 and a Retry-After. KoppelHet waits that time and resumes the run, so ServiceNow does not receive half a set of users.
  • Access to Peple runs through Visma Connect with client credentials per tenant, and scopes per group of fields. KoppelHet only requests the scopes for employees, contracts, organisation units and users; salary fields stay out of reach.

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

How quickly does a change from Peple appear in ServiceNow?

In the next run, a few times a day. Peple works with exports and not with notifications per change.

What if an employee has two contracts?

Then the agreed main contract determines department and job. There is one user and one onboarding request.

How does KoppelHet get access to Peple?

Through Visma Connect, with its own client for your tenant and only the scopes this integration needs.

Technical details for IT

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

  • Peple through the Visma.net HRM & Payroll Reporting API with Visma Connect (client credentials, per tenant). Exports with POST /v1/command/nl/hrm/{employees, contracts, organization/units, users}, fetched with GET /v1/query/nl/hrm/.../{jobId}; incremental with changeTimestampAfter. Two full exports per endpoint per tenant per 24 hours; 503 with Retry-After during maintenance.
  • 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, then sys_user. insertMultiple only returns import set IDs; KoppelHet checks the transform results through them.
  • Requests through POST /api/sn_sc/servicecatalog/items/{sys_id}/order_now with variables and sysparm_requested_for. KoppelHet stores the RITM number per contract.

Which fields are transferred

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

Field in Visma PepleField in ServiceNowNotes
Personeelsnummeremployee_numberCoalesce
Voornaamfirst_name
Tussenvoegsel + achternaamlast_name
Zakelijk e-mailadresemail
Functie (contract)title
Organisatie-eenheid (contract)department (cmn_department)
Leidinggevende (via users)manager (sys_user)
Einddatum contractactive = false
Nieuw of beëindigd contractCatalogusitem voor onboarding of offboarding
Gesynchroniseerde gebruikersysparm_requested_for
Startdatum of einddatum contractVariabele startdatum of laatste werkdag

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.