BambooHR logoMicrosoft Dynamics 365 logo

HR to ERP

BambooHR to Dynamics 365 integration: BambooHR job info as employee and dimensions in Business Central

With an integration between BambooHR and Microsoft Dynamics 365, every employee from BambooHR appears automatically in Business Central, with job title, department and division as dimensions and the manager as time sheet approver. Job info changes go through on their own date and a termination in BambooHR ends the employee in Business Central.

What the integration does

Organisations that use BambooHR for all employees and keep accounts and project hours in Business Central enter new colleagues there by hand, with a number of their own. After an internal move the department in Business Central often stays the old one.

  1. HR creates an employee in BambooHR or adds a job info row, with an effective date.
  2. BambooHR reports the change; KoppelHet reads the job info and picks the row that applies today.
  3. Only employees with a location that belongs to a Business Central company go through.
  4. KoppelHet creates or updates the employee, with department and division as dimensions and the manager as approver.
  5. On termination KoppelHet sets the end date and the status terminated.
BambooHR → KoppelHet → Microsoft Dynamics 365SOURCEBambooHRTARGETMicrosoft Dynamics 365KoppelHetmapping · logging · monitoringBambooHR → KoppelHet → Microsoft Dynamics 365SOURCEBambooHRTARGETMicrosoft Dynamics 365KoppelHetmapping · logging · monitoring
Out: Employee with number, name and job title · Department and division as dimensions · Location for the company · Manager as approver · Status active, inactive or terminated

What to watch for with BambooHR and Microsoft Dynamics 365

  • In BambooHR job info is a table with a row per change, each with a date. An employee in Business Central has one department without a date. KoppelHet always picks the row that applies on that day, so a move HR enters in advance does not show in Business Central too early.
  • BambooHR has separate fields for division, department and location. Business Central has global and additional dimensions. Department and division each become a dimension; we use the location to choose the company, because a US and a Dutch office each book in their own company.
  • The employee number is free text in BambooHR. Business Central converts an employee number to upper case and allows at most twenty characters. KoppelHet therefore compares numbers without regard to case and reports a number that is too long.
  • BambooHR gives the manager as an email address. In Business Central a time sheet approver is a user, and the time sheet belongs to a resource. KoppelHet links the employee to a resource and looks up the manager's user by email address.
  • Business Central has the status inactive besides active and terminated. Employment statuses in BambooHR are configurable per organisation. At the start we agree which status, for example long leave, becomes inactive in Business Central.
  • A deleted record in BambooHR does not lead to deletion in Business Central, because the employee may already have postings. KoppelHet reports it to finance and keeps the card.

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

There are BambooHR connectors in AppSource. Why custom work?

Those apps come from third parties, not from BambooHR or Microsoft. They can be enough for a simple import. Choose custom work when locations must be split over companies, the approver must be included or job info must take effect by date.

What if finance does not have a department as dimension value yet?

Then KoppelHet creates the employee without that dimension and finance gets a notice. The Business Central standard API does not allow creating dimension values.

Does salary go to Business Central?

No. The compensation table stays in BambooHR; the API user gets no access to it.

Technical details for IT

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

  • BambooHR through event-based webhooks and the endpoints for changed employees and changed table data (jobInfo with date, location, division, department, jobTitle). supervisorEmail and terminationDate are read-only. API key of a separate user with read access to the required fields.
  • Business Central through API v2.0 per company - employees (number is a Code field, so upper case; status Active, Inactive or Terminated) and defaultDimensions with parentType Employee; dimensionValues GET only. Time sheets through the resource with Time Sheet Approver User ID.

Which fields are transferred

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

Field in BambooHRField in Microsoft Dynamics 365Notes
employeeNumbernumberBusiness Central stores it in upper case
firstName, lastNamegivenName, surname
jobInfo.jobTitlejobTitle
workEmailemail
jobInfo.departmentdefaultDimensions (afdeling)
jobInfo.divisiondefaultDimensions (divisie)
jobInfo.locationCompanyThrough a table per location
supervisorEmailTime Sheet Approver User ID
hireDateemploymentDate
employmentStatus en terminationDatestatus en terminationDate

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.