AFAS Profit logoPower BI logo

HR data to BI

AFAS to Power BI integration: HR data from Profit in Power BI, with history and its own security

With an integration between AFAS Profit and Power BI, employees, employments, job history and absence from AFAS sit in a fixed Power BI model, per employer and across the whole organisation. AFAS itself supplies Power BI templates based on BI models; KoppelHet comes in when you want to keep history per reference date, combine AFAS with other sources or let managers see only their own department.

What the integration does

Anyone using AFAS has the absence dashboard that AFAS provides, but for a report on headcount and turnover a controller combines AFAS lists with the budget from another package. That is manual work every month, and last year's position cannot be seen because the lists only show the current state.

  1. AFAS refreshes the BI layer at the scheduled time. KoppelHet then reads only the tables the report needs.
  2. Every month KoppelHet records a snapshot of who worked in which job and department on that date.
  3. The data is combined with the budget in one model, with the employer as a fixed dimension.
  4. After loading, KoppelHet starts the refresh of the Power BI model.
  5. Managers open the report and see only the employees of their own department.
AFAS Profit → KoppelHet → Power BISOURCEAFAS ProfitTARGETPower BIKoppelHetmapping · logging · monitoringAFAS Profit → KoppelHet → Power BISOURCEAFAS ProfitTARGETPower BIKoppelHetmapping · logging · monitoring
Out: Employees and employments per employer · Job and department history · Absence · Organisational units and cost centres · Monthly snapshot of headcount

What to watch for with AFAS Profit and Power BI

  • AFAS fills the BI layer with a scheduled task at most twice a day. A Power BI refresh that starts earlier loads yesterday's position. KoppelHet only refreshes the Power BI model after AFAS has updated the BI layer.
  • Without filter authorisation everyone with access to an AFAS dashboard sees all data in it, according to AFAS itself. KoppelHet builds the security per department in the Power BI model from the organisational units in AFAS, so a new department is protected straight away.
  • AFAS recommends BI models for reporting and GetConnectors only when data must be refreshed more often than once every ten hours, at the risk of reaching the API's fair-use limit. KoppelHet therefore uses the BI models for the large tables and a narrow GetConnector only for what really needs to be more frequent.
  • The AFAS templates show the current position. Anyone who wants to know how many people worked in a department last March needs their own history. KoppelHet keeps a monthly snapshot outside AFAS, so that question can still be answered after a reorganisation.
  • One AFAS environment can contain several employers, with their own numbering per employer. In the model the employer is therefore part of the key, so figures per employer and for the group are both right.
  • With the action to prepare a limited set of rows, AFAS loads at most 1,000 rows per table into the BI layer. KoppelHet first tests a new field on that small set, before the full refresh in Power BI includes it.

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

Why not just use the AFAS Power BI templates?

For a single dashboard on the current position they are often enough. Choose custom work when you want to look back in time, combine AFAS with other sources or let security per department move with the organisation.

Can Power BI show new AFAS data more than twice a day?

Only for a small part of the data, through a dedicated GetConnector. AFAS advises against that for large volumes. For HR reporting a daily position is usually enough.

Do BSN and bank details end up in Power BI?

No. The BI model and the GetConnector contain only the fields the report needs. You are the controller and KoppelHet is the processor, under a data processing agreement.

Technical details for IT

For those who want to know how it works under the hood: APIs, fields and sources used.

  • AFAS Profit is read through the OData connector on the BI layer (BI models), with a user token. Where needed this is supplemented with a dedicated GetConnector through the AFAS Profit REST API. An AFAS Power BI template (.pbit) asks for the OData feed URL and the token when opened.
  • Power BI semantic model in import mode, refreshed through the Power BI REST API after the AFAS task. Row-level security with roles based on the organisational units; RLS only applies to viewers in the workspace.

Which fields are transferred

The key fields. The full mapping is agreed per customer.

Field in AFAS ProfitField in Power BINotes
Werkgever en medewerkernummerMedewerkersleutel
Dienstverband (begin, einde, soort, uren)Tabel dienstverbanden
Functie en organisatorische eenheid per ingangsdatumTabel functiehistorie
VerzuimmeldingenTabel verzuim
Organisatorische eenheden met bovenliggende eenheidDimensie organisatieAlso used for security per department
Stand op de laatste dag van de maandTabel momentopnamenBuilt by KoppelHet, not from AFAS

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.