HR to ERP
Personio to SAP S/4HANA integration: Personio employments as work agreements, with cost centre and working time
With an integration between Personio and SAP S/4HANA, every internal employment in Personio becomes a work agreement in SAP S/4HANA, with company code from the legal entity, one default cost centre and the working time percentage. A switch to another entity in Personio becomes a company code change in S/4HANA, not a departure.
What the integration does
Organisations with Personio for HR and SAP S/4HANA Cloud for finance often maintain employees in S/4HANA with a CSV import. Personio splits employees over several cost centres and has switches between entities, while S/4HANA expects one default cost centre and one company code per period.
- Personio reports a changed or terminated employment; KoppelHet fetches that person's employments.
- Internal employments are translated into company code, cost centre and working time; external ones stay out of the replication.
- KoppelHet sends the employee to S/4HANA through the replication API and follows the business partner step.
- An entity switch goes as a company code change; the old personnel number goes to finance.
- A termination closes the work agreement on the end date from Personio.
What to watch for with Personio and SAP S/4HANA
- Personio returns per employment the hours per week and the number of hours that counts as full time. S/4HANA wants both hours per week and a working time percentage, and accepts no empty value. KoppelHet calculates the percentage from those two numbers, so a part-timer of twenty-four hours with a forty-hour full time comes to sixty percent.
- Personio has a termination type for a switch to another company in the group. In S/4HANA that is not a departure but a different company code, with a new personnel number. KoppelHet recognises this termination type, does not close the work agreement as a departure and tells finance which old number needs cleaning up.
- An employment in Personio is internal or external. An external worker becomes a service performer in S/4HANA, which can only be created with a work order with supplier. Because Personio does not record a supplier, KoppelHet only replicates internal employments; external ones go to purchasing as a list.
- In Personio an employment is linked to one or more cost centres, each with a weight. S/4HANA rejects the whole employee if more than one default cost centre arrives for one period. KoppelHet sends the cost centre with the largest weight as default; with two equal weights the employee waits for a choice by finance.
- Personio distinguishes the last working day from the end date of the employment. For S/4HANA the end date counts: until that day someone can still submit expenses and costs are posted. KoppelHet therefore closes the work agreement on the end date, not on the last working day.
- An employee's external ID in S/4HANA may have at most twenty characters. KoppelHet uses the person's ID in Personio, not the name or email, and checks during the initial load whether employees already in S/4HANA through a CSV have the same ID.
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
Can the full cost split from Personio go along?
In the first version only the default cost centre goes along. The split as alternative cost assignment can be added later as an extension.
Is salary data sent?
No. S/4HANA does not need salary for expenses and purchasing.
Technical details for IT
For those who want to know how it works under the hood: APIs, fields and sources used.
- Personio through the v2 API for persons and employments (status, type INTERNAL or EXTERNAL, weekly_working_hours, full_time_weekly_working_hours, legal_entity, cost_centers with weight, employment_start_date, termination with termination_date, last_working_day and type, including SUB_COMPANY_SWITCH) and webhooks for employments.
- SAP S/4HANA Cloud Public Edition through the SOAP API WORKFORCEPERSONMASTERDATAREPLI (scope item 1FD, SAP_COM_0301). PersonExternalID at most 20 characters; WorkingTimePercentage and WeeklyWorkinghours not empty; more than one default cost centre per period is rejected; on a different company code two WorkAgreementJobInformation blocks and a new personnel number. PersonWorkAgreementType 3 requires a WorkOrder with Supplier.
Which fields are transferred
The key fields. The full mapping is agreed per customer.
| Field in Personio | Field in SAP S/4HANA | Notes |
|---|---|---|
person.id | PersonExternalID | |
first_name, last_name | Voornaam en achternaam | |
employment.legal_entity | Bedrijfscode | Lookup table |
employment_start_date | Begindatum werkovereenkomst | |
weekly_working_hours / full_time_weekly_working_hours | WorkingTimePercentage | |
weekly_working_hours | WeeklyWorkinghours | |
cost_centers (weight) | Standaardkostenplaats | Cost centre with the largest weight |
position.title | Functieomschrijving | |
termination.termination_date | Einddatum werkovereenkomst |
Related
Ashby → Personio
Ashby to Personio integration: hires with hours and entity as new employees in Personio
Bullhorn → Personio
Bullhorn to Personio integration: placements as a person with employment in Personio
Carerix → Personio
Carerix to Personio integration: successful placement as a new employee in Personio
Greenhouse → Personio
Greenhouse to Personio integration: hired candidates as employees in Personio