
HR data to BI
Buddee to Power BI integration: headcount, contracts, absence and turnover from Buddee in one model
With an integration between BuddeeHR and Power BI, employees, job periods, FTE, contracts, absence and former employees from Buddee sit daily in a fixed model that Power BI refreshes. HR and management then see headcount, expiring contracts, absence and turnover per department and reference date, without Buddee exports in Excel.
What the integration does
Organisations that work in Buddee and report headcount, absence and turnover to management every month make exports, paste them into Excel and calculate FTE and absence rate themselves. Which temporary contracts end soon is tracked separately by someone.
- A separate Buddee account is created for the integration, with read access to the data that belongs in the reporting.
- Every day KoppelHet fetches employees, job periods, contract hours, contracts and absence, including former employees.
- The data goes into a fixed model with a table per subject and a date table, so every figure can be viewed at a reference date.
- After fetching, KoppelHet starts the refresh of the Power BI model.
- Managers open the report and only see the employees below them in the line.
What to watch for with BuddeeHR and Power BI
- Buddee records job, department, location, cost centre and manager per period with a start and end date. KoppelHet takes over all those periods, so Power BI shows per reference date who sat in which department, even after a reorganisation.
- FTE and contract hours sit in Buddee with the employment terms, with a start and end date per change. By default Buddee only returns the current terms; KoppelHet also fetches earlier periods, so last year's headcount in Power BI is not calculated with today's hours.
- Buddee numbers contracts within an employment and indicates which contract is the last in the sequence. In Power BI HR can therefore see which employees are in their third temporary contract and when it expires, without a separate list.
- Leavers are archived in Buddee and drop out of the list of active employees by default. Turnover needs exactly those people, so KoppelHet also fetches archived employees with their end date.
- Buddee has a direct and an indirect manager per job period. KoppelHet builds the line from these, so a role in Power BI shows a head of department only their own people and those of their team leaders. That applies to viewers of the workspace, not to admins.
- Absence is stored in Buddee as a registration with start and end date and hours. A sickness period that crosses a month boundary is split across the months by KoppelHet, so the absence rate per month matches the hours from the headcount.
- Buddee keeps salaries, wage components and bank details in the same environment. The model only gets FTE and hours from the employment terms, no amounts, IBAN or citizen service number.
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
Buddee has its own reports. Why Power BI?
For standard overviews within Buddee that is often enough. Power BI is needed when HR figures must sit next to financial or commercial figures, or when you want history per reference date that you can extend yourself.
Can payroll costs be added to the model later?
Yes, as an extension. They then preferably come from the payroll journal, not from Buddee, so the amounts match the accounts.
What about the GDPR?
You are the controller and KoppelHet is the processor, under a data processing agreement. Absence goes along without diagnosis or notes, and only managers with a role see names.
Technical details for IT
For those who want to know how it works under the hood: APIs, fields and sources used.
- Buddee is read through the REST API at api.buddee.nl with a JWT token after Basic Auth on /auth/token, pagination per 200. Resources employees (archived too, archived_at), employments, positions (job_id, department_id, location_id, manager_id, indirect_manager_id, cost_center_id, start_date, end_date), salaries (fte, parttime_hours, parttime_percentage, work_schedule_type, start_date, end_date), contracts (duration, sequence_number, is_last_in_sequence) and sick-leave-registrations (start_date, end_date, hours).
- Power BI semantic model in import mode, refreshed through the Power BI REST API. On shared capacity at most eight refreshes a day, API included. Row-level security with roles based on the manager line; RLS only applies to the Viewer role.
Which fields are transferred
The key fields. The full mapping is agreed per customer.
| Field in BuddeeHR | Field in Power BI | Notes |
|---|---|---|
employees.id en number | Tabel medewerkers | With archived_at as the archive date |
employments (start_date, end_date) | Tabel dienstverbanden | |
positions (job, department, location, manager, cost_center, start_date, end_date) | Tabel functieperiodes | |
salaries (fte, parttime_hours, work_schedule_type, start_date, end_date) | Tabel formatie | Without salary amounts |
contracts (duration, sequence_number, is_last_in_sequence, end_date) | Tabel contracten | |
sick-leave-registrations (start_date, end_date, hours) | Tabel verzuim | |
positions.manager_id en indirect_manager_id | Lijn voor beveiliging per leidinggevende | Basis for the roles in Power BI |
Related
BuddeeHR → Active Directory
BuddeeHR to Active Directory integration: domain account from employment and position in Buddee
BuddeeHR → AllSolutions
Buddee to AllSolutions integration: employees, positions and schedules from BuddeeHR in AllSolutions
BuddeeHR → Arbodienst (SIVI)
BuddeeHR to occupational health service via SIVI: verified sickness registrations from Buddee to the health service
BuddeeHR → Microsoft Entra ID
BuddeeHR to Entra ID integration: Microsoft 365 account from the employment in Buddee