
HR to ERP
BuddeeHR to Dynamics 365 integration: employees and dimensions from Buddee in Business Central
With an integration between BuddeeHR and Microsoft Dynamics 365 Business Central, every employee from Buddee becomes an employee in the right Business Central company, with the name they use, job title, hire date and department, cost centre and cost unit as default dimensions. When the employment ends in Buddee, the employee in Business Central gets the status terminated, so no more hours or expenses are posted to it.
What the integration does
Organisations that run HR and payroll in Buddee and finance, projects or expenses in Business Central enter every new employee twice. Buddee itself offers no integration with Business Central, and a move to another team often still shows the old department in Business Central.
- HR records an employee in Buddee, with position period, department, cost centre and possibly cost unit.
- KoppelHet determines the Business Central company for the Buddee company and looks up the employee by number.
- A new employee is created with the composed last name the employee uses.
- Department, cost centre and cost unit from the position period that applies today become the default dimensions.
- After the employment end date KoppelHet sets the termination date and the status terminated.
What to watch for with BuddeeHR and Microsoft Dynamics 365
- Buddee records which surname someone uses, own name, partner's name or a combination, and supplies the composed name with prefix. Business Central shows the name on documents and in overviews. KoppelHet uses the composed name, so an expense claim carries a name the employee recognises.
- Business Central has a field for a middle name, but it is not meant for a Dutch name prefix. KoppelHet therefore puts the prefix from Buddee in front of the surname, and leaves the middle name field empty.
- Every position period in Buddee has a start and end date, but an employee in Business Central has default dimensions without a date. KoppelHet sets the dimensions of the period that applies today, and changes them on the day a new period starts, not earlier.
- In Buddee a cost unit can only exist together with a cost centre. In Business Central they become two separate dimensions. Dimension values can only be read through the standard API; if a value is missing, KoppelHet creates the employee without that dimension and finance gets an alert.
- Business Central has inactive next to active and terminated. An archived employee without an end date in Buddee is not terminated; KoppelHet sets it to inactive and reports it to HR, because postings may already be linked to the employee.
- Business Central can store an IBAN per employee, and Buddee has the employee's account number. KoppelHet only sends the IBAN along if finance pays expense claims to employees from Business Central; otherwise it stays in Buddee.
- Buddee offers Microsoft integrations for sign-in and calendar, but none for Business Central. The Business Central API works per company, just like the companies in Buddee. Every Buddee company belongs to one Business Central company, so an employee does not end up in the wrong books.
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
Does this also work with Dynamics 365 Finance and Operations?
This page describes Business Central. Finance and Operations has different APIs; we look at that separately.
Does salary go to Business Central?
No. The integration does not read salary data from Buddee. A payroll run journal entry can be added later as an extension.
What if finance does not have a cost centre as dimension value yet?
Then the employee arrives in Business Central without that dimension and finance gets an alert with the value. Once it exists, the next round adds the dimension.
Technical details for IT
For those who want to know how it works under the hood: APIs, fields and sources used.
- Buddee through the REST API on api.buddee.nl with a dedicated Buddee user (JWT through /auth/token). employees (number, company_id, first_name, last_name_composition, composed_last_name, composed_last_name_prefix, work_email, employment_date, bank_account_iban, archived_at), positions (job_id, department_id, cost_center_id, cost_unit_id, start_date, end_date) and employments (start_date, end_date), up to 200 per page.
- Business Central through API v2.0 per company - employees (GET, POST, PATCH; number, givenName, middleName, surname, displayName, jobTitle, email, employmentDate, terminationDate, status Active, Inactive or Terminated, iban) and defaultDimensions with parentType Employee; dimensionValues GET only. OAuth 2.0 with an Entra ID app.
Which fields are transferred
The key fields. The full mapping is agreed per customer.
| Field in BuddeeHR | Field in Microsoft Dynamics 365 | Notes |
|---|---|---|
number | number | Code field; Business Central stores it in upper case |
company_id | Business Central-bedrijf | Fixed table per Buddee company |
first_name | givenName | |
composed_last_name_prefix + composed_last_name | surname en displayName | Name use according to last_name_composition |
work_email | email | |
positions.job_id (functienaam) | jobTitle | |
employment_date | employmentDate | |
employments.end_date | terminationDate en status Terminated | |
positions.department_id, cost_center_id, cost_unit_id | defaultDimensions (parentType Employee) | |
bank_account_iban | iban | Only if Business Central pays out expense claims |
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