BambooHR logoSalesforce logo

Accounts in applications

BambooHR to Salesforce integration: Salesforce users with division, department and manager from BambooHR

With an integration between BambooHR and Salesforce, every new sales or support employee in BambooHR automatically gets a Salesforce user with division, department, profile, role and manager. On the termination date in BambooHR the user is deactivated, even if HR entered the departure weeks earlier.

What the integration does

Organisations that use BambooHR for HR and Salesforce for sales and support fill in the division on Salesforce users by hand. After an internal move it is often wrong, so reports per division are off, and leavers are deactivated when someone remembers.

  1. HR creates the new employee in BambooHR, with division, department, job title, location and manager.
  2. BambooHR reports the new employee; KoppelHet checks the signature and retrieves the data.
  3. If the job belongs in Salesforce, KoppelHet creates the user with division, department, profile, role and manager.
  4. A move to another division or department updates the user in Salesforce, so reports per division are right.
  5. On the termination date the user is deactivated; a deleted record does not lead to deactivation but to an alert.
BambooHR → KoppelHet → SalesforceSOURCEBambooHRTARGETSalesforceKoppelHetmapping · logging · monitoringBambooHR → KoppelHet → SalesforceSOURCEBambooHRTARGETSalesforceKoppelHetmapping · logging · monitoring
Out: Salesforce user with name, work email and employee number · Division, department and job title · Profile and role · Manager · Active or deactivated

What to watch for with BambooHR and Salesforce

  • BambooHR and Salesforce both have a division on the employee. The integration copies it one to one, so reports and dashboards per division in Salesforce follow the same split as HR, also after a move.
  • BambooHR gives the manager as an email address, and in Salesforce a user's email is not unique. KoppelHet therefore looks up the manager through the Salesforce user the integration itself created for that work address, not through a free search.
  • BambooHR only sends a changed-employee notification for fields the webhook monitors. KoppelHet has job title, department, division, location, manager and status monitored, so a new home address does not cause an update in Salesforce.
  • The termination date is in the employment status history in BambooHR and can be entered in advance. KoppelHet deactivates in Salesforce on that date, so an account manager can hand over their accounts until their last day.
  • A deleted record in BambooHR is usually a mistake. Because a Salesforce user cannot be deleted, KoppelHet then deactivates nothing, but reports it to the Salesforce administrator.
  • The location in BambooHR is a list each company fills itself, while Salesforce expects fixed codes for time zone and locale. A table per location converts them; a new location without a rule holds the user back instead of giving them the wrong time zone.
  • If Salesforce is briefly unreachable, for example during release maintenance, BambooHR gives up after its last retry at about forty minutes. A departure could then be left behind. That is why KoppelHet compares all employees changed in BambooHR with the Salesforce users every day.

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 you use Salesforce divisions or our own field?

The standard Division field on the user. If you use the Divisions feature in Salesforce to partition records, we align the names with it.

What if a manager does not use Salesforce?

KoppelHet then looks at that person's manager in BambooHR, until there is someone with a Salesforce user. That keeps approvals and team reports right.

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, and the changed-employees endpoint as a safety net. terminationDate and supervisorEmail are read-only. The API key belongs to a separate user without access to compensation.
  • Salesforce is written through the REST API on the User object with a connected app (OAuth 2.0) and an integration user with Manage Users. Required on create include Username (unique across all Salesforce environments), Alias (at most 8 characters), Email, LastName, ProfileId, TimeZoneSidKey, LocaleSidKey, LanguageLocaleKey and EmailEncodingKey. Division and Department are standard fields on User.
  • On departure IsActive = false; if Salesforce refuses, UserLogin.IsFrozen = true and an alert to the administrator.

Which fields are transferred

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

Field in BambooHRField in SalesforceNotes
employeeNumberEmployeeNumber
preferredName of firstNameFirstName
lastNameLastName
workEmailEmail, Username en FederationIdentifier
Naam (ingekort)Alias
jobTitleTitle en ProfileId
departmentDepartment en UserRoleId
divisionDivision
locationTimeZoneSidKey, LocaleSidKey en LanguageLocaleKeyThrough a table per location
supervisorEmailManagerIdLooked up through the Salesforce user with that work email
terminationDateIsActive

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.