
Leave, absence and time
SuccessFactors to Planday integration: employees, monthly hours and approved time off from Employee Central in Planday
With an integration between SAP SuccessFactors and Planday, every employee from Employee Central appears automatically in the right Planday portal, department and employee group and with their hours per month. Time off approved in SuccessFactors arrives in Planday as approved absence, and a termination sets the last active day in Planday.
What the integration does
Organisations that run HR in SAP SuccessFactors and schedule restaurants, stores or branches in Planday create every employee again per site. The planner does not see time off approved in SuccessFactors, and a departed employee keeps their future shifts in Planday.
- HR records a hire or job change in Employee Central, with company, location, job and standard hours.
- Based on company and location, KoppelHet picks the Planday portal and department and creates the employee there.
- The job determines the employee group; the weekly hours become hours per month and a matching contract rule.
- Approved time off from SuccessFactors is submitted in Planday and approved straight away. KoppelHet withdraws cancelled time off in Planday again.
- On a termination Planday receives the last active day, and shifts after it become unassigned.
What to watch for with SAP SuccessFactors and Planday
- Planday records an employee's working hours per month, while Employee Central has standard hours per week. KoppelHet converts weekly hours into monthly hours and also picks an existing contract rule of the portal, because a contract rule in Planday can only be assigned through the API, not created.
- Creating an absence in Planday takes three steps. First Planday calculates a draft with the days and the leave account, then the request is submitted, and then approved. On that approval KoppelHet chooses what happens to shifts already planned and whether open shifts are created as cover, as the site prefers.
- When time off is cancelled in SuccessFactors after it reached Planday, KoppelHet withdraws the request in Planday. Without that step the employee stays marked as off in the schedule for leave that no longer exists.
- Planday deactivates an employee on the last active day you provide, and can unassign shifts after that day. If the portal requires a termination type, Planday refuses the deactivation without one. KoppelHet translates the leaving reason from SuccessFactors into a Planday termination type, so the departure does not get stuck.
- If the organisation runs a Planday portal per country or legal entity, the company in Employee Central determines the portal. Each portal grants permission to the integration separately. When an employee moves to another company, KoppelHet deactivates them in the old portal and creates them in the new one, with the same SuccessFactors ID as salary identifier.
- Balances sit on time accounts per time type in SuccessFactors. Planday does not take over a fixed balance, but it does accept an adjustment with an effective date and its own reference on an accrued account. KoppelHet books only the difference between the two balances and puts the SuccessFactors account in that reference, so an adjustment can be traced.
- Planday returns employees in pages of at most 50 per request and allows 750 requests per minute per portal. On the first load from Employee Central, KoppelHet first matches all existing Planday employees by email, so anyone created manually is not duplicated.
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
Do worked hours from Planday go back to SuccessFactors?
Usually not; they go to local payroll per country through Planday's Payroll API. That can be added later as an extension.
What if a job has no employee group in Planday yet?
Then the employee is not created and an alert appears in the platform. After the table is extended, the next round creates the employee.
Does the employee get a notification of the leave in Planday?
Not by default; SuccessFactors has already informed the employee. This can be set differently per customer.
Technical details for IT
For those who want to know how it works under the hood: APIs, fields and sources used.
- SuccessFactors through the OData API v2 with OAuth 2.0 (SAML bearer assertion) on lastModifiedDateTime. Entities PerPersonal, PerEmail, EmpJob (company, location, jobCode, standardHours, fte) and EmpEmploymentTermination. Time off from EmployeeTime (approvalStatus APPROVED or CANCELLED, timeType, startDate, endDate) and balances from EmpTimeAccountBalance.
- Planday through the Open API with OAuth 2.0 per portal. HR API POST /hr/v1.0/employees (firstName, lastName, departments required; employeeGroups, workHours per month, contractRulesRuleId, salaryIdentifier), GET /hr/v1.0/employees with modifiedFrom and limit 50, PUT /hr/v1.0/employees/deactivate/{employeeId} (date, keepShifts, terminationTypeId). Contract rule through PUT /contractrules/v1.0/employees/{employeeId}.
- Time off through the Absence API, GET /absence/v1.0/absencerequests/draft, POST /absence/v1.0/absencerequests and PUT /absencerequests/{id}/approve (existingShifts NoAction, Delete or ChangeShiftType; coverShifts DoNotCreate or CreateOpen) or /cancel. Balances through POST /absence/v1.0/accounts/{accountId}/adjustments (value, effectiveDate, comment, externalReference). Limit 750 requests per minute per portal.
Which fields are transferred
The key fields. The full mapping is agreed per customer.
| Field in SAP SuccessFactors | Field in Planday | Notes |
|---|---|---|
userId / personIdExternal | salaryIdentifier | KoppelHet keeps the Planday ID per portal |
PerPersonal firstName, lastName | firstName, lastName | |
PerEmail (zakelijk) | userName en email | |
EmpJob company | Planday-portaal | Each portal grants permission separately |
EmpJob location | departments en primaryDepartmentId | |
EmpJob jobCode | employeeGroups | |
EmpJob standardHours | workHours (per maand) en contractRulesRuleId | |
EmployeeTime (approvalStatus APPROVED) | Absence request, daarna approve | |
EmpTimeAccountBalance | Adjustment op de verlofrekening | |
EmpEmploymentTermination endDate | deactivate met date en terminationTypeId |
Related
Ashby → SAP SuccessFactors
Ashby to SAP SuccessFactors integration: hire as a new employee in Employee Central
Bullhorn → SAP SuccessFactors
Bullhorn to SAP SuccessFactors integration: placements as employees or contingent workers in Employee Central
Carerix → SAP SuccessFactors
Carerix to SAP SuccessFactors integration: successful placement as a new employee in Employee Central
Greenhouse → SAP SuccessFactors
Greenhouse to SAP SuccessFactors integration: a hire as a new employee in Employee Central