BambooHR logoMicrosoft Entra ID logo

Identity and access management

BambooHR to Entra ID integration: Microsoft accounts from HR, blocked on departure

With an integration between BambooHR and Microsoft Entra ID, every new employee in BambooHR gets a Microsoft account with job title, department, manager and licence, and sign-in is blocked on the leaving date. The work email address goes back to BambooHR, so HR and IT use the same address.

What the integration does

Organisations that use BambooHR for HR and Microsoft 365 for mail and Teams often hear informally that someone is starting and create the account by hand. BambooHR only holds the personal address, and leavers are sometimes only spotted on the licence invoice.

  1. HR creates the new employee in BambooHR, with location, department, job title and manager.
  2. BambooHR reports the new employee straight away. KoppelHet fetches the current data and creates the Microsoft account according to your naming rules.
  3. The new work address is written to BambooHR, so notifications and the invitation for the first day go to the work address.
  4. When the job title, department or manager changes, the details and groups in Entra ID follow.
  5. On the termination date KoppelHet blocks sign-in and removes the employee from the groups. The licence is removed after the period you choose.
BambooHR → KoppelHet → Microsoft Entra IDSOURCEBambooHRTARGETMicrosoft Entra IDKoppelHetmapping · logging · monitoringBambooHR → KoppelHet → Microsoft Entra IDSOURCEBambooHRTARGETMicrosoft Entra IDKoppelHetmapping · logging · monitoring
Out: Microsoft account with employee number and name · Job title, department and division · Manager · Country of the location and Microsoft 365 licence · Work email back to BambooHR

What to watch for with BambooHR and Microsoft Entra ID

  • Microsoft has its own HR integrations in Entra ID for Workday and SuccessFactors, but not for BambooHR. For other HR systems Microsoft points to delivery through an API. KoppelHet takes care of that delivery, without you maintaining scripts of your own.
  • BambooHR returns the manager's email address with every employee. KoppelHet uses it to look up the manager's Microsoft account. If a new manager starts at the same time as their team, KoppelHet creates the manager's account first.
  • BambooHR only sends a notification for a changed employee for fields that the notification monitors. KoppelHet therefore has job title, department, division, location, manager and employment status monitored; other changes, such as a new home address, stay out of Entra ID.
  • BambooHR also has a notification for a deleted employee record. That is usually a record created by mistake, not a departure. KoppelHet then deletes no account, but puts it on a list for IT.
  • The termination date is kept in BambooHR in the employment status history and can be entered in advance. KoppelHet blocks on that date, not at the moment HR records the departure.
  • A Microsoft 365 licence requires a country on the user. BambooHR environments of international companies have locations in several countries; the location's country goes to Entra ID, and only employees at locations that belong to this Microsoft environment get an account.
  • If a notification fails, BambooHR retries five more times, the last time after forty minutes. After that the daily check on changed employees picks it up.

This integration is also part of joiner, mover, leaver.

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

How quickly does a new BambooHR employee appear in Entra ID?

Shortly after BambooHR reports the change, usually on the day HR saves it. The account is then ready, even if the first working day is a few weeks away.

Does the integration see salaries in BambooHR?

No. The integration uses a BambooHR user without access to compensation. Only personal and job data goes to Entra ID.

Do contractors in BambooHR get an account too?

That is up to you. The employment status from BambooHR is stored in Entra ID, so IT can give contractors different groups and access rules than permanent staff.

Does this also work with Active Directory in our own network?

Yes, through a small program in your network.

What can be traced afterwards for an audit?

Every action of the integration is recorded in the audit logging of the KoppelHet platform. KoppelHet works with an ISO 27001 certified management system.

Technical details for IT

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

  • BambooHR is read through event-based webhooks (employee.created, employee.updated with monitor fields, employee.deleted), signed with HMAC SHA-256 (X-BambooHR-Signature and X-BambooHR-Timestamp), and the changed employees endpoint on timestamp as a safety net. After a notification KoppelHet fetches the employee through get-employee.
  • Fields include employeeNumber, firstName, preferredName, lastName, workEmail, jobTitle, department, division, location, supervisorEmail (read only), employmentStatus, hireDate and terminationDate (read only, set through the employmentStatus table). The work address goes back through update-employee (workEmail).
  • Entra ID is written through Microsoft Graph (user) or through API-driven inbound provisioning (/bulkUpload with SCIM, at most 50 operations per call; requires Entra ID P1 or higher). Fields employeeId (at most 16 characters), companyName (at most 64 characters), usageLocation (required for licences), employeeType, employeeHireDate and accountEnabled = false on departure.
  • The BambooHR API key belongs to a separate user with read access to personal and job data and write access to workEmail; no access to compensation.

Which fields are transferred

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

Field in BambooHRField in Microsoft Entra IDNotes
employeeNumber (of het BambooHR-id)employeeIdFixed key; at most 16 characters in Entra ID
preferredName of firstNamegivenName en displayNamePreferred name when present
lastNamesurname
NaamgevingsregeluserPrincipalName en mailThen goes back to workEmail in BambooHR
jobTitlejobTitle
departmentdepartment
divisioncompanyNameAt most 64 characters
supervisorEmailmanagerLooked up as an existing account in Entra ID
location (land)usageLocation en officeLocation
employmentStatusemployeeTypeFor example Full-Time, Part-Time or Contractor
hireDateemployeeHireDate

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.