SAP SuccessFactors logoPlanday logo

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.

  1. HR records a hire or job change in Employee Central, with company, location, job and standard hours.
  2. Based on company and location, KoppelHet picks the Planday portal and department and creates the employee there.
  3. The job determines the employee group; the weekly hours become hours per month and a matching contract rule.
  4. Approved time off from SuccessFactors is submitted in Planday and approved straight away. KoppelHet withdraws cancelled time off in Planday again.
  5. On a termination Planday receives the last active day, and shifts after it become unassigned.
SAP SuccessFactors → KoppelHet → PlandaySOURCESAP SuccessFactorsTARGETPlandayKoppelHetmapping · logging · monitoringSAP SuccessFactors → KoppelHet → PlandaySOURCESAP SuccessFactorsTARGETPlandayKoppelHetmapping · logging · monitoring
Out: Employee with name, email and employee number as salary identifier · Portal, department and employee group · Hours per month and contract rule · Approved absence and balance adjustments

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, 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 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 SuccessFactorsField in PlandayNotes
userId / personIdExternalsalaryIdentifierKoppelHet keeps the Planday ID per portal
PerPersonal firstName, lastNamefirstName, lastName
PerEmail (zakelijk)userName en email
EmpJob companyPlanday-portaalEach portal grants permission separately
EmpJob locationdepartments en primaryDepartmentId
EmpJob jobCodeemployeeGroups
EmpJob standardHoursworkHours (per maand) en contractRulesRuleId
EmployeeTime (approvalStatus APPROVED)Absence request, daarna approve
EmpTimeAccountBalanceAdjustment op de verlofrekening
EmpEmploymentTermination endDatedeactivate met date en terminationTypeId

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.