HR to ERP
Personio to SAP Concur integration: Personio employments as Concur users with approver and cost centre
With an integration between Personio and SAP Concur, every employee from Personio becomes a Concur user, with employee number, cost centre, the entity's reimbursement currency and the supervisor as approver. A new cost split or supervisor in Personio changes Concur, and after the last working day the user becomes inactive.
What the integration does
Organisations that use Personio as their HR system and SAP Concur for travel and expenses often maintain Concur profiles by hand or with a periodic file. Cost centres and approvers in Concur then lag behind Personio, and a colleague who has already left is still active.
- Personio reports a change; KoppelHet acknowledges immediately and fetches the employment.
- KoppelHet determines the Concur values: cost centre, currency and country per entity, and the approver.
- The changes of the past half hour go to Concur as one bulk request.
- KoppelHet follows the processing and reports rejected operations per employee.
- After the last working day the user is set to inactive.
What to watch for with Personio and SAP Concur
- Personio sends only an ID per webhook and wants a response within three seconds. Concur processes provisioning in the background and can take up to two hours. KoppelHet decouples the two: every notification is acknowledged at once, and the changes go to Concur together every half hour.
- An employment in Personio can have several cost centres with a weight. Concur stores one cost centre in the profile, and according to SAP it is separate from the field with the same name in Expense. KoppelHet puts the cost centre with the largest weight in the profile and in the list field of the expense form.
- A Concur user's company is fixed at creation. If someone in Personio moves to another entity through a company switch, it stays the same Concur user. KoppelHet then changes currency, country and cost centre, but leaves the Concur company as it is; if the new entity belongs to another Concur environment, KoppelHet reports that to the administrator.
- Personio distinguishes the end date of the employment and the last working day. Concur has an end date in the profile and, separately, the active status. KoppelHet fills the end date with the date from the employment and sets the user to inactive after the last working day, so expenses from the final week can still be submitted.
- In Concur someone can only be an approver if they have the matching role, and only expense reports and requests allow a second approver alongside. KoppelHet sets the supervisor from Personio as primary expense approver and first checks that they have the role.
- Personio can contain external employments, such as freelancers maintained in Personio. Whether they may submit expenses differs per organisation. At the start KoppelHet records which employment types get a Concur profile, and skips the others instead of creating everyone from Personio.
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 travel profiles go along too?
No, only what is needed to submit expenses. Travel data can be added later as an extension.
Do approved expenses go back to Personio or payroll?
Not in this integration. That can be added later as an extension.
Technical details for IT
For those who want to know how it works under the hood: APIs, fields and sources used.
- Personio through webhooks (employment.created, employment.updated, employment.updated.cost-centers, employment.terminated; IDs only, 2xx within 3 seconds) and GET /v2/persons/{person_id}/employments (type INTERNAL or EXTERNAL, legal_entity, supervisor, cost_centers with weight, termination with termination_date, last_working_day and type SUB_COMPANY_SWITCH).
- SAP Concur through User Provisioning v4 - POST /profile/v4/Bulk/ (100 operations or 400 KB), PATCH /profile/v4/Users/{id} for single changes, status request per provisionId (timeout 120 minutes). Enterprise with companyId (immutable), employeeNumber, costCenter, terminationDate (1900-01-01 to 2079-06-06); spend with reimbursementCurrency, budgetCountryCode, customData and approvers (only report and request with non-primary approver).
Which fields are transferred
The key fields. The full mapping is agreed per customer.
| Field in Personio | Field in SAP Concur | Notes |
|---|---|---|
Werkmail van de persoon | userName en emails | |
Personeelsnummer (attribuut in Personio) | enterprise.employeeNumber | |
legal_entity.id | spend.reimbursementCurrency en budgetCountryCode | Table per entity |
cost_centers (hoogste weight) | enterprise.costCenter en lijstveld op het formulier | |
supervisor.id | Goedkeurder declaraties (report) | |
termination.termination_date | enterprise.terminationDate | |
termination.last_working_day | active = false |
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