Organisation and access

HR data in Power BI: security per department and privacy

HR data in Power BI is secure when managers only see their own department through row-level security and the model only holds the fields the report needs. KoppelHet builds that security from the organisation in AFAS, Nmbrs or BuddeeHR and leaves social security number, address, bank account and reason for absence out of the model.

What it is

An HR dashboard holds names, absence and sometimes salaries. Without security, anyone with access to the report sees everything. AFAS says so itself about its dashboards without filter authorisation.

On top of that, more ends up in the model than needed. An export from the HR system includes social security number, address and bank account, while no report needs them.

How the integration handles it

  • KoppelHet builds the security per department from the organisational units in AFAS, so a new department is shielded straight away.
  • Row-level security in Power BI only applies to viewers, not to admins and members of a workspace. The HR model therefore sits in its own workspace where managers are viewers only.
  • BuddeeHR has a direct and an indirect manager per job period. From that KoppelHet builds the line, so a head of department sees their own people and those of their team leads.
  • In the YouForce Data API the customer chooses per configuration which columns are included. Social security number, addresses and private contact details are switched off there, so they never leave YouForce.
  • Absence goes along without diagnosis or notes, and with Personio only the type of absence, not the reason.
  • Salaries per person are only visible to roles allowed to see them; managers see totals. Often a salary band is enough instead of the amount.

Edge cases we handle

  • HiBob silently omits fields the service user has no right to. Workday does the same with fields outside the security group. KoppelHet compares requested and received fields on every run and reports the difference.
  • In BambooHR what the API returns depends on the rights behind the API key, and datasets need extra rights. KoppelHet checks them at setup, so the first report is not empty.
  • In the older Personio API only attributes released as readable come along. An attribute added later stays empty until someone releases it; KoppelHet reports an empty column.

What KoppelHet does

You are the controller and KoppelHet is the processor, under a data processing agreement. KoppelHet only requests read access in the HR system to the fields the report needs, agrees upfront who sees which rows and reports when an expected column arrives empty.

Common integrations

Frequently asked questions

Which data ends up in the report?

Only what the report needs. We leave out social security number, address and bank account unless there is a reason to include them.

Do managers only see their own people?

Yes, if they are viewers in the workspace. Per company or department we define who sees which rows.

Why is a column in Power BI suddenly empty?

Usually it is a permissions issue in the HR system, not a data error. KoppelHet checks on every run whether all expected columns are filled and reports the difference.

More on HR data to BI

HR data to BI: the overview

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.