Leave, absence and time
ADP iHCM to Planday integration: employees, department and contract hours from ADP in Planday
With an integration between ADP iHCM and Planday, new employees from ADP arrive in Planday automatically, in the department of their work location, with the contract rule that fits their hours and the ADP employee number as salary identifier. A departure in ADP sets the deactivation date in Planday, so shifts after the last working day are released.
What the integration does
Organisations with ADP iHCM as HR and payroll system that schedule in Planday enter new employees and hour changes in Planday by hand. Planday's ADP integration sends approved hours to ADP, but does not fetch employees from ADP.
- ADP reports a hire; as soon as the worker is visible through the API, KoppelHet fetches them with their work assignment.
- KoppelHet creates the employee in the Planday portal of their country, with department, employee group and the ADP number as salary identifier.
- The contract hours from ADP determine which existing contract rule the employee gets.
- On a changed work assignment KoppelHet updates department, group or contract rule.
- On departure KoppelHet sets the deactivation date and termination type; if HR changes the date, KoppelHet follows.
What to watch for with ADP iHCM and Planday
- In ADP iHCM a new employee first has stop external processing set. As long as that flag is on, the worker API does not return them. KoppelHet puts the employee into Planday as soon as payroll has completed the hire, and shows planners through the platform who is still waiting at ADP.
- Planday can create an employee without an email address, as a draft that is invited later. If a new employee in ADP has no business email yet, KoppelHet creates a draft and sends the invitation once the address is in ADP.
- Contract rules in Planday can only be read and assigned through the API, not created. ADP gives the contract hours with a unit, such as per week. KoppelHet looks for the existing rule with those hours and alerts the planner if none fits, instead of inventing a rule.
- Planday sets a leaver to inactive as of the date you pass, and can release shifts after that date. A portal can also make a termination type mandatory. KoppelHet passes both from ADP. If ADP sends the termination again with another date, KoppelHet sets the new date.
- The salary identifier in Planday is generated automatically by default, but can be changed. KoppelHet puts the ADP employee number in it. Planner and payroll then see the same number, and an hours export to ADP can match on that number instead of on a number only Planday knows.
- ADP iHCM sends leave requests to the manager recorded as reports to. In Planday the supervisor field is only available on request. KoppelHet therefore arranges approval through department and employee group, and makes the reports-to manager a planner on their team's department.
- Only the portal is globally unique in Planday; an employee ID can recur in another portal. ADP iHCM holds workers from several countries. KoppelHet picks the portal from the country of the work location in ADP and keeps the combination of portal and ID per employee.
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 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.
Frequently asked questions
Does the hourly rate from ADP go to Planday?
Not in the first version. ADP iHCM has an hourly rate field for the Netherlands, and Planday links pay to employee groups. Hourly rates for the labour cost estimate can be added later as an extension.
What happens when someone returns after leaving?
ADP sends a hire notification again on a rehire. KoppelHet then reactivates the existing employee in Planday instead of creating a new one.
Technical details for IT
For those who want to know how it works under the hood: APIs, fields and sources used.
- ADP iHCM through the Worker Management API: GET /hr/v2/workers with $top (at most 100) and $skip; per worker workAssignments (primaryIndicator, hireDate, payrollFileNumber, jobCode, homeWorkLocation, homeOrganizationalUnits, standardHours with hoursQuantity and unitCode, terminationDate, reportsTo with reportsToRelationshipCode). Workers with stop external processing are not returned. Notifications worker.hire, worker.workAssignment.modify and worker.terminate (sent again on a changed date or reason). Filters do not work on all WorkAssignment fields.
- Planday Open API with OAuth 2.0 per portal - HR API (POST /hr/v1.0/employees, also as a draft without email; PUT /hr/v1.0/employees/{employeeId}; PUT /hr/v1.0/employees/deactivate/{employeeId} with date, terminationTypeId and keepShifts; PUT /hr/v1.0/employees/reactivate/{employeeId}; POST .../invite) and Contract Rules API (GET contractrules, PUT /contractrules/v1.0/employees/{employeeId}). Limit 20 requests per second and 750 per minute per portal.
Which fields are transferred
The key fields. The full mapping is agreed per customer.
| Field in ADP iHCM | Field in Planday | Notes |
|---|---|---|
workAssignments.payrollFileNumber | salaryIdentifier | Same number as in ADP |
person.legalName | firstName, lastName | |
businessCommunication (e-mail) | email en userName | Without email a draft employee |
homeWorkLocation.nameCode | departments | Table per location |
jobCode | employeeGroups | Table per job |
standardHours.hoursQuantity en unitCode | Contractregel (PUT contractrules) | Pick an existing rule |
hireDate | hiredFrom | |
terminationDate | deactivate: date en terminationTypeId |
Related
ADP iHCM → Active Directory
ADP iHCM to Active Directory integration: network accounts per country, with an expiry date for temporary contracts
ADP iHCM → Coupa
ADP iHCM to Coupa integration: approved Coupa expenses as a variable pay field in ADP iHCM NL
ADP iHCM → Dyflexis
ADP iHCM to Dyflexis integration: employees and contracts in scheduling, hours back to ADP
ADP iHCM → Microsoft Entra ID
ADP iHCM to Entra ID integration: accounts from ADP payroll, with the right licence in every European country