BambooHR logoFreshservice logo

HR to ITSM

BambooHR to Freshservice integration: requesters and onboarding and offboarding requests

With an integration between BambooHR and Freshservice, every employee from BambooHR becomes a requester in Freshservice, with department, location and manager, and KoppelHet submits an onboarding request for a new employee and an offboarding request on an end date. KoppelHet works with a BambooHR user without admin rights and also carries over data from custom tables.

What the integration does

Organisations that use BambooHR as their personnel system and Freshservice as service desk often only hear about a departure from the manager, and a requester stays active until someone remembers to deactivate them.

  1. BambooHR sends a webhook on a new employee or a change in the monitored fields.
  2. KoppelHet checks the signature and creates or updates the requester in Freshservice.
  3. Within the onboarding lead time KoppelHet submits the onboarding request on behalf of the manager.
  4. An end date produces an offboarding request; after that date KoppelHet deactivates the requester.
  5. Every hour KoppelHet asks which employees changed since the previous check, as a safety net.
BambooHR → KoppelHet → FreshserviceSOURCEBambooHRTARGETFreshserviceKoppelHetmapping · logging · monitoringBambooHR → KoppelHet → FreshserviceSOURCEBambooHRTARGETFreshserviceKoppelHetmapping · logging · monitoring
Out: Requester with work email, job, department and location · Manager as reporting manager and initiator · Onboarding request with start date · Offboarding request, and deactivation after the end date

What to watch for with BambooHR and Freshservice

  • On an end date in BambooHR KoppelHet submits an offboarding request in Freshservice and deactivates the requester after that date.
  • KoppelHet works with a separate BambooHR user without access to salary and national ID; a webhook created through the API can then only monitor the fields that user may see.
  • For an onboarding request Freshservice selects the mandatory items from the onboarding kit based on the fields filled in. KoppelHet fills in department and location from BambooHR, so a new employee at another location automatically gets that location's kit.
  • Submitting an onboarding or offboarding request on behalf of someone else is only possible with admin privileges in Freshservice. KoppelHet sets the manager from BambooHR as initiator, so the service desk's questions about the request reach them and not the integration account.
  • Fields in custom tables of BambooHR are not included in webhooks. If for example the desired hardware is in such a table, the hourly check takes it along to the onboarding request.
  • If an end date in BambooHR is reversed, KoppelHet reactivates a deactivated requester in Freshservice instead of creating a new one. Earlier tickets and assigned assets thus stay with the same person.
  • Freshservice has a lower limit for listing all requesters than for other calls. For the first comparison KoppelHet therefore searches with a filter per employee, instead of fetching the whole list over and over.

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

Do salary or national ID go to Freshservice?

No. The integration's BambooHR user has no access to them, so the webhook cannot even monitor those fields.

Technical details for IT

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

  • BambooHR through a permissioned webhook (created through the API, HTTPS only, SHA-256 HMAC in X-BambooHR-Signature with X-BambooHR-Timestamp, up to five retries up to 40 minutes, several employees per message) and GET /api/v1/employees/changed?since= as safety net. Fields in custom tables are not in webhooks.
  • Freshservice through the API v2: POST /api/v2/requesters (department_ids, location_id, reporting_manager_id, time_zone, language, custom_fields), filtering with a query of at most 512 characters, deactivation with DELETE /api/v2/requesters/{id} and reactivation with PUT /api/v2/requesters/{id}/reactivate. Requests through POST /api/v2/onboarding_requests and /api/v2/offboarding_requests with initiator_id and fields.

Which fields are transferred

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

Field in BambooHRField in FreshserviceNotes
employeeNumberEigen aanvragersveld (custom_fields)Fixed key
firstName, preferredName en lastNamefirst_name en last_name
workEmailprimary_email
jobTitlejob_title
departmentdepartment_ids
locationlocation_id en time_zone
supervisorIdreporting_manager_id en initiator_id
hireDateOnboardingverzoek (startdatum)
terminationDateOffboardingverzoek, daarna deactiveren

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.