BambooHR logoJumpCloud logo

Identity and access management

BambooHR to JumpCloud integration: JumpCloud users and groups from BambooHR

With an integration between BambooHR and JumpCloud, every new employee in BambooHR gets a staged JumpCloud user with job title, department, location and manager, and that user is suspended as soon as BambooHR reports the departure. KoppelHet also manages the groups per department and location, follows job changes on their effective date and creates a work email for anyone who does not have one yet.

What the integration does

Organisations with BambooHR and JumpCloud often maintain groups per department, the manager and accounts for new colleagues by hand. A new colleague whose work email is not yet in BambooHR has no account on day one.

  1. BambooHR gets an API key on a user who may only see the required fields, and a webhook on the monitored fields.
  2. In JumpCloud the administrator creates a separate admin account for KoppelHet with an API key on it.
  3. A new employee becomes a staged JumpCloud user, with a work email following the naming rule and the relation to the manager.
  4. On the start date KoppelHet activates the user and adds them to the groups of their department and location.
  5. On the leaving date KoppelHet suspends the user; deletion only happens after the retention period.
BambooHR → KoppelHet → JumpCloudSOURCEBambooHRTARGETJumpCloudKoppelHetmapping · logging · monitoringBambooHR → KoppelHet → JumpCloudSOURCEBambooHRTARGETJumpCloudKoppelHetmapping · logging · monitoring
Out: JumpCloud user with the BambooHR ID as employeeIdentifier · Job title, department, division and location · Manager as a relation between users · User group membership · State staged, activated or suspended

What to watch for with BambooHR and JumpCloud

  • A new colleague whose work email HR has not filled in yet cannot get a user by email in JumpCloud. KoppelHet creates the address with your naming rule, writes it back to BambooHR and only then creates the JumpCloud user.
  • IT can suspend a user in JumpCloud while they are still active in BambooHR. KoppelHet keeps a list of blocks set by IT and does not reactivate those users without approval.
  • JumpCloud stores the manager as a reference to another user. KoppelHet looks up the right JumpCloud user for the supervisorEId from BambooHR and sets that reference.
  • JumpCloud only knows the staged state at creation; an update can only make a user active or suspended. When a former employee returns, KoppelHet recognises them by the original hire date in BambooHR, keeps the existing user suspended until the new start date and then activates them.
  • Job title, department and location are stored in BambooHR in the jobInfo table, with an effective date per row. KoppelHet only sets the row that is valid today, so a transfer next month does not already give different groups and devices now.
  • In JumpCloud user groups decide which apps, devices and policies someone gets. KoppelHet manages membership of groups per department, division and location, and removes someone from the old group when jobInfo gets a new row.
  • A BambooHR webhook only contains the employee's ID and the names of the changed fields. After each notification KoppelHet fetches the current fields and only sends what matters to JumpCloud, so a new phone number does not cause an unnecessary update.

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

Is a leaver deleted from JumpCloud?

No, suspended first. Deleting after the retention period is a separate step, so devices and history stay visible.

Does the integration see pay data in BambooHR?

No. The user behind the API key may only see the fields needed for accounts.

Technical details for IT

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

  • KoppelHet reads BambooHR through event-based webhooks (employee.created, employee.updated with monitor fields, employee.deleted; payload with employeeId and changedFields) and the REST API (fields, tables jobInfo and employmentStatus, writing workEmail back with update employee). Basic authentication with an API key that has the rights of its user.
  • To JumpCloud through API v1 /systemusers (header x-api-key): employeeIdentifier unique per user, manager as a relation, state STAGED only on creation and then ACTIVATED or SUSPENDED. Group membership through API 2.0 usergroups.

Which fields are transferred

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

Field in BambooHRField in JumpCloudNotes
idemployeeIdentifier
firstName en lastNamefirstname en lastname
workEmail of naamgevingsregelemail en username
jobInfo.jobTitlejobTitleRow valid today
jobInfo.department en jobInfo.divisiondepartment en gebruikersgroepen
jobInfo.locationlocation
supervisorEIdmanagerJumpCloud ID of the manager
employmentStatusemployeeType
hireDate en terminationDatestate (STAGED, ACTIVATED, SUSPENDED)

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.