HR data to BI
Personio to Power BI integration: employees, absence and pay costs from Personio in Power BI
With an integration between Personio and Power BI, employees, employments, absence per day and compensation per month from Personio sit in a fixed Power BI model, per legal entity and cost centre. HR and finance then report in Power BI on the same figures, without merging separate Personio exports.
What the integration does
Organisations with Personio for HR and absence want to see sickness absence and labour costs per cost centre in Power BI, next to their other figures. Without an integration HR makes an export every month, and absence in hours and in days is aligned by hand.
- Personio administration creates API credentials with read access only and releases the required attributes.
- Every day KoppelHet fetches changed persons, employments and absence.
- Absence is broken down per day, so days and hours come together in one measure.
- After the end of the month the compensation for that month is added, per cost centre.
- KoppelHet refreshes the Power BI model; site managers see only their own site.
What to watch for with Personio and Power BI
- Personio supplies compensation for at most one month per request. KoppelHet therefore builds a history of pay costs in Power BI month by month and keeps it, so a yearly overview does not have to be requested twelve times again on every refresh.
- The base salary in Personio's compensation data is without proration for part of a month. Someone who joins or leaves mid-month appears with the full monthly amount. KoppelHet flags those months in the model, so finance knows where the amount is an upper limit.
- Absence in Personio is tracked per type in days or in hours. Personio can break an absence down per day. KoppelHet uses that breakdown, so absence from the Netherlands and Germany counts the same way in Power BI and a period across a month boundary belongs to the right month.
- Legal entities, cost centres, departments, teams and workplaces are separate items in Personio with their own ID. KoppelHet turns them into separate dimensions in Power BI, so a renamed department does not appear as a new department in the reports.
- In the older Personio API only attributes released as readable in advance come along. An attribute added later stays empty in Power BI until someone releases it. KoppelHet reports an empty column instead of showing an empty report.
- Personio has its own report builder, and saved reports can be retrieved through the API. If HR already reports on a Personio report, KoppelHet can use it as a source, so the figures in Personio and Power BI stay the same.
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
Is there no ready-made Power BI connector for Personio?
There are third-party connectors. Personio itself does not supply one. KoppelHet builds the model on the Personio API, with history and security per site.
Does Personio handle Dutch payroll?
No. If pay comes from a Dutch payroll package, KoppelHet can put those pay costs next to the Personio data in the same model.
What about the GDPR?
You are the controller and KoppelHet is the processor, under a data processing agreement. The reason for absence stays outside the model; only the absence type is included.
Technical details for IT
For those who want to know how it works under the hood: APIs, fields and sources used.
- Personio API v2 with OAuth 2.0 client credentials and read-only scopes. Employments through /v2/persons/{person_id}/employments with a filter on updated_at; absence through /v2/absence-periods and /v2/absence-periods/{id}/breakdowns; compensation through /v2/compensations with start_date and end_date (at most one month per request). Dimensions through legal entities, cost centers, org units (type department or team) and workplaces.
- Saved reports through the Reporting Engine Service (/v2/reports/{id}) with cursor pagination. Power BI semantic model in import mode, refreshed through the Power BI REST API, with row-level security on workplace or entity.
Which fields are transferred
The key fields. The full mapping is agreed per customer.
| Field in Personio | Field in Power BI | Notes |
|---|---|---|
Person ID | Persoonsleutel | |
Employments (met updated_at) | Tabel dienstverbanden | Most recent employment first |
Absence periods en daily breakdowns | Tabel afwezigheid per dag | |
Compensations (start_date tot end_date, maximaal één maand) | Tabel vergoedingen per maand | |
Legal entities en cost centers | Dimensie entiteit en kostenplaats | |
Org units (type department of team) | Dimensie afdeling en team |
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