ADP Workforce Now logoFreshservice logo

HR to ITSM

ADP Workforce Now to Freshservice integration: requesters and onboarding and offboarding requests from ADP

With an integration between ADP Workforce Now and Freshservice, every employee from ADP becomes a requester in Freshservice, with department, location and manager, and a hire or termination in ADP sets up an onboarding or offboarding request. Freshworks has an ADP connector that is still in beta, with template recipes for these steps; KoppelHet comes in when employees hold several positions, when a departure is recorded ahead, or when you do not want to build on a beta.

What the integration does

Organisations with ADP Workforce Now for HR and payroll and Freshservice as service desk often receive hires and departures through an email or a shared list from HR. Requesters in Freshservice then lack the manager, and a departure HR processes weeks ahead only appears in Freshservice when someone remembers.

  1. Every night KoppelHet reads the workers from ADP and compares them with the previous state.
  2. New employees become requesters, with department, location and manager of the primary position; the manager first.
  3. An onboarding request is submitted on behalf of the manager, with start date and job title.
  4. A termination notification from ADP immediately produces an offboarding request with the end date.
  5. On the end date, when ADP sets the worker itself to terminated, KoppelHet deactivates the requester.
ADP Workforce Now → KoppelHet → FreshserviceSOURCEADP Workforce NowTARGETFreshserviceKoppelHetmapping · logging · monitoringADP Workforce Now → KoppelHet → FreshserviceSOURCEADP Workforce NowTARGETFreshserviceKoppelHetmapping · logging · monitoring
Out: Requester with name, work email, job title and employee number · Department and location of the primary position · Manager · Onboarding and offboarding request

What to watch for with ADP Workforce Now and Freshservice

  • According to its own documentation, Freshworks' ADP connector is a beta with limited functions and template recipes for onboarding, offboarding and updating requesters. It asks for a Client ID, Client Secret, SSL client certificate and key, only works on Pro and Enterprise and is billed per task.
  • If HR records a future termination, ADP sets the position to Terminated immediately, but the worker stays active until the end date. KoppelHet submits the offboarding request as soon as the position changes and only deactivates the requester when ADP also sets the worker to terminated.
  • Termination in ADP happens per position, and one employee can hold several. Freshservice has one requester per person, so KoppelHet takes department, location and manager from the primary position and only submits an offboarding request when the last position ends.
  • When a manager is terminated, ADP does not assign a new manager to their team. In Freshservice the team would then report to a deactivated requester; KoppelHet keeps the old manager until ADP has a new one and lists the employees concerned in the offboarding request.
  • ADP has an ID per employee that is unique across ADP, an employer employee number and a position ID that changes with a new position. KoppelHet uses the first as key in a custom requester field, so a new position does not produce a second requester.
  • In Freshservice the manager must already be a requester before an employee can refer to them. In the nightly comparison KoppelHet therefore puts new managers first, and submits the onboarding request on their behalf with initiator_id, which requires an administrator API key.
  • Both the beta connector and KoppelHet need an ADP client certificate, and it expires. KoppelHet monitors the expiry date and renews the certificate in time, so the flow to Freshservice does not stop on that day.

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 to register anything in ADP?

Yes. The integration is registered in ADP and gets a client ID, secret and certificate. KoppelHet guides that application.

Does pay data go to Freshservice?

No. KoppelHet only takes name, work email, position, department, location, manager and dates.

Technical details for IT

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

  • ADP Workforce Now through the Worker Management API (GET /hr/v2/workers with $top, $skip and $filter) and the worker.terminate event notification, with OAuth 2.0 client credentials and a client certificate per registered integration. On a future termination the work assignment is Terminated and the worker ACTIVE until the date.
  • Freshservice through the API v2. Requesters with department_ids, location_id, reporting_manager_id and custom_fields; deactivate with DELETE /api/v2/requesters/{id}. POST /api/v2/onboarding_requests and /api/v2/offboarding_requests with initiator_id (administrators only) and the fields from the onboarding form.

Which fields are transferred

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

Field in ADP Workforce NowField in FreshserviceNotes
associateOIDEigen aanvragersveldUnique within ADP, fixed key
workerIDPersoneelsnummer in een eigen veld
Naamfirst_name, last_name
Werkadresprimary_email
Functie van de hoofdpositiejob_title
Afdeling van de hoofdpositiedepartment_ids
Locatie van de hoofdpositielocation_id
Leidinggevende van de hoofdpositiereporting_manager_id

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.