Dayforce logoPower BI logo

HR data to BI

Dayforce to Power BI integration: headcount, turnover and absence with history in one model

With an integration between Dayforce and Power BI, employees, employments, org units and approved absence from Dayforce sit every day in a fixed data model that Power BI refreshes, with history per period. HR and management then report in Power BI on headcount, turnover and absence per country and unit, without exports from Dayforce.

What the integration does

Organisations that use Dayforce for HR and time in several countries and also report in Power BI often build the figures from separate Dayforce reports. History per month is then missing, and turnover or absence per unit differs depending on who runs the report.

  1. The customer creates an API user in Dayforce with read rights on only the data needed.
  2. For the initial load KoppelHet fetches all employees and their history, spread over several runs.
  3. After that KoppelHet fetches only employees with changed data every day, plus approved absence.
  4. The data model keeps every period, and KoppelHet then starts the refresh of the Power BI model.
  5. HR and management open the reports with only the units they are entitled to.
Dayforce → KoppelHet → Power BISOURCEDayforceTARGETPower BIKoppelHetmapping · logging · monitoringDayforce → KoppelHet → Power BISOURCEDayforceTARGETPower BIKoppelHetmapping · logging · monitoring
Out: Employees with employment status · Work assignments with job, position and org unit per period · Org units with their parent unit · Approved absence

What to watch for with Dayforce and Power BI

  • Dayforce returns employee data by default as it applies on one date. Subordinate data can also be requested over a date range. KoppelHet fetches that range, so Power BI shows per month which job and unit someone had at the time, even after a reorganisation.
  • When requesting changed employees Dayforce can filter on which parts were updated, such as status or assignment. KoppelHet only requests those parts every day, so a daily run stays short and the rest of the customer limit stays free.
  • Dayforce allows at most a hundred employee details per minute, shared by all the customer's integrations. With thousands of employees a full load therefore takes hours. KoppelHet spreads it over nights, so payroll and time integrations on Dayforce do not stall.
  • Dayforce groups employment statuses into three groups, active, inactive and terminated. An employee on long-term leave is often inactive. The model counts inactive separately, so long-term leave does not count as turnover in Power BI.
  • Absence in Dayforce has a status, such as approved, pending or cancelled, and customers can change those values themselves. KoppelHet only includes approved absence and records per customer which statuses count, so cancelled leave does not inflate the absence figure.
  • Dayforce can deliver reports through the API, but every report has a maximum number of rows and heavy requests have a lower limit. KoppelHet therefore builds the model from the employee data itself, and only uses a Dayforce report for data that cannot be obtained otherwise.
  • A Power BI refresh on shared capacity must finish within two hours. Because KoppelHet stages the Dayforce data in advance, Power BI only loads the model and the refresh stays well within that limit, even with several years of history.

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

Can Power BI not connect to Dayforce directly?

Technically a report can call an API, but then every refresh runs on Dayforce's rate limit and history is missing. A database in between keeps the history and relieves Dayforce.

Do payroll costs come along too?

Not in the first version. Headcount, turnover and absence come first. Payroll costs per unit can come later as an extension, from Dayforce or from the local payroll.

Do managers only see their own unit?

Yes. Per Dayforce org unit we record who sees which rows, and managers are viewers in the workspace.

Technical details for IT

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

  • Dayforce RESTful Web Services at https://www.dayforcehcm.com/api/{clientName}/V1. GET /Employees with FilterUpdatedStartDate, FilterUpdatedEndDate and filterUpdatedEntities (for example EmploymentStatuses,WorkAssignments), EmploymentStatusXRefCode and ContextDate; per XRefCode the subordinate entities with ContextDateRangeFrom and ContextDateRangeTo. Absence through /V1/Employees/{xRefCode}/TimeAwayFromWork with filterTAFWStartDate, filterTAFWEndDate and status. Reports through /V1/ReportMetadata (with MaxRows). Rate limit 10 per second or 100 per minute for employee details, per customer.
  • Power BI semantic model in import mode on a database KoppelHet fills, refreshed through the Power BI REST API after each run. Shared capacity - eight scheduled refreshes a day and at most two hours per refresh; Premium, PPU or Fabric - 48 a day. Row-level security per org unit.

Which fields are transferred

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

Field in DayforceField in Power BINotes
XRefCodeMedewerkersleutelDayforce's fixed key
EmploymentStatuses (Active, Inactive, Terminated)Tabel status per periode
WorkAssignments (functie, positie, locatie)Tabel toewijzingen per periode
OrgUnits met bovenliggende eenheidDimensie organisatie (hiërarchie)
TimeAwayFromWork met status APPROVEDTabel afwezigheid
Datum in en uit dienstVerloop per maandCalculated in the model

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.