BambooHR logoHa

HR to ITSM

BambooHR to HaloITSM integration: users per site from BambooHR and tickets for joiners and leavers

With an integration between BambooHR and HaloITSM, every employee from BambooHR becomes a user in Halo, at the site that matches their BambooHR location, and KoppelHet creates a ticket of the right ticket type for every hire or end date. A departed employee becomes inactive in Halo, not deleted, so their ticket history stays.

What the integration does

Organisations that use BambooHR for HR and HaloITSM for IT, with offices in several countries, often create users in Halo through the directory or with the first ticket. Site and job title are then wrong, and a colleague who returns after leaving is sometimes listed twice.

  1. BambooHR reports a new employee or a change to a monitored field; KoppelHet fetches the employee.
  2. KoppelHet looks up the user in Halo, including inactive ones, and updates them with their Halo ID.
  3. If there is no user, KoppelHet creates one at the site of their location.
  4. Within the onboarding lead time a ticket of the onboarding type follows.
  5. An end date produces an offboarding ticket; after the last working day the user becomes inactive.
BambooHR → KoppelHet → HaloITSMSOURCEBambooHRTARGETHaloITSMHaloITSMKoppelHetmapping · logging · monitoringBambooHR → KoppelHet → HaloITSMSOURCEBambooHRTARGETHaloITSMHaloITSMKoppelHetmapping · logging · monitoring
Out: User with name, work email, job title and department · Site per BambooHR location · Onboarding ticket with start date · Offboarding ticket with end date

What to watch for with BambooHR and HaloITSM

  • A POST to Halo without an ID always creates a new user. KoppelHet therefore keeps the Halo ID per BambooHR employee number and, when in doubt, also searches among inactive users, so a returning employee gets their old user and ticket history back.
  • BambooHR works with locations, Halo with sites that each have their own time zone. KoppelHet translates each BambooHR location to one site, so the target date of an onboarding ticket for a colleague at an office abroad falls in the right time zone.
  • If HR deletes an employee in BambooHR, BambooHR sends a separate notification. KoppelHet does not delete the user in Halo, because a delete in Halo also removes related data, but sets them to inactive and reports it to IT.
  • BambooHR can bundle several employees in one webhook, for example after an import of new colleagues. Halo allows seven hundred calls per five minutes; KoppelHet spreads a large bundle over time instead of running into a 429 error.
  • Fields in custom BambooHR tables are not included in webhooks. If, for example, the contract type is in a custom table, KoppelHet reads it separately on each notification and stores it in a custom field of the Halo user.
  • Halo picks a ticket's form and workflow through the ticket type. KoppelHet uses its own type for onboarding and for offboarding, and puts the start or end date from BambooHR in the details, so the service desk gets the right checklist.

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

Does Halo have a BambooHR integration?

We found none from Halo or BambooHR themselves, only templates from iPaaS vendors. KoppelHet uses the APIs of both sides.

Do new colleagues also get access to the Halo portal?

We set this per customer. Arranging portal access through the integration can be added later as an extension.

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 (employee.created, employee.updated with monitor fields and changedFields, employee.deleted), signed with SHA-256 HMAC, and GET /api/v1/employees/changed?since= as a safety net. Then the employee record with employeeNumber, workEmail, jobTitle, department, location and terminationDate.
  • Halo through the REST API with an API application (client credentials). GET /Users with search and includeinactive; POST /Users with id to update, without id to create, with site_id, department, title, customfields and inactive. POST /Tickets with tickettype_id, user_id, site_id, summary and details. We do not use DELETE /Users/{id}. Rate limit 700 calls per 300 seconds per tenant, above that HTTP 429.

Which fields are transferred

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

Field in BambooHRField in HaloITSMNotes
employeeNumberEigen veld (customfields)Fixed key
firstName en lastNameNaam van de gebruiker
workEmailE-mailadres
locationsite_id
departmentdepartment
jobTitletitle
terminationDateOffboardingticket en daarna inactive

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.