Import additional attributes from BambooHR (Custom API Connector)

A custom API integration can be used to import and update attributes that are not currently available to sync using the JumpCloud app in BambooHR, e.g., manager, alternate email, and employee type, to create more complete user profiles and use those attributes for access and permission control and automation.

The current BambooHR integration is configured in BambooHR using the JumpCloud app. It is a one-way sync. The employee data is sent from BambooHR to JumpCloud in real-time or on a configured schedule.

This integration is configured in JumpCloud and should be considered as a complement to an existing BambooHR SCIM integration, not a replacement.

Prerequisites

  • A JumpCloud administrator account
  • JumpCloud SSO Package or higher or SSO à la carte option
  • A BambooHR user account with full administrator permissions
  • An existing BambooHR integration:

Considerations

  • The /report endpoint generates a custom report and can manage the user lifecycle.
  • Configuring JumpCloud SSO for BambooHR is recommended, but not required.

Configuring the BambooHR API Authentication

Note:

Per the Authentication section of the BambooHR Getting Started with the API, "the API key is sent over HTTP Basic Authentication. Use the secret key as the username and any random string for the password".

To generate the BambooHR API token

  1. Sign in to your BambooHR instance with administrator permissions.
  2. On the Home page, navigate to Account API Keys > Add New Key.
  3. Enter a name for the API key in the API Key Name field and click Generate Key.
  4. Click COPY KEY to copy the key to your clipboard.
  5. Click Done.

Warning:

Copy the API Key to a secure location, like the JumpCloud Password Manager, for future reference.

To encode the BambooHR credentials

  1. Access the API Key.
  2. Use a tool or commands to base64 encode the credentials:
    • Command in a mac terminal:
      base64 <<< 1208934bba29wa123492879873:x
    • <BambooHR API key>:<random string with 1 or more characters>
      • Example: 1208934bba29wa123492879873:x
  3. Securely store the encoded credentials, like in the JumpCloud Password Manager.

Configuring Custom Settings for /report endpoint

If you want to manage the lifecycle and avoid creating inactive users, use this option, use the /report endpoint, specifically the GET /report/<id> request.

To create a custom report in BambooHR

Create a custom report in BambooHR with the attributes you want for the integration, including status and supervisor email. You will need the report id found in the URL shown when viewing the report in BambooHR. 

  1. Log in to BambooHR.
  2. Click the Reports tab from the top navigation bar.
  3. Click New Custom Reports.

Important:

If you skip this step, a legacy report will be created.

  1. Click the +New Report and then the pencil icon to enter a name.
  2. Add the attributes you want to sync to JumpCloud:
    • Be sure to include status
    • If you want to import manager, be sure to include supervisor email
  3. Under Filters, for status select all to include both active and inactive records.
  4. Click Save.
  5. Note the id from the URL once the report loads.

To configure the Custom API integration in JumpCloud

To learn more about the JumpCloud Custom API integration connector, see Import Users with a Custom API Integration.

  1. From the Identity Management tab of your BambooHR application connector (either prebuilt or custom), select or enter the following under Service Provider Configuration:
    • API Type - Custom API Import
    • Authentication method - API key
    • Base URL - https://api.bamboohr.com/api/gateway.php/<your BambooHR company subdomain>/v1/reports
    • Header name - Authorization
    • Header value - Basic <base64 encoded “API key:random-string”>
  1. Select or enter the following in the Endpoint Configuration section:
    • Resource Location - data
    • Endpoint path - /<report id from section above>
    • Pagination - Page-Based
    • Page parameter - page
    • Page size parameter - page_size
    • Total Count
      • Response Parameter Location - Body
      • Response Body JSON Path - pagination.total_pages
  1. Click Test Connection to verify the credentials and configuration.
  2. If successful, enter the following in the User Schema Attribute Mapping section:
    • Unique ID - eeid
    • User Status - status

Note:

You must include this value in your report if you want to manage the lifecycle and avoid creating inactive users.

  • Inactive Status Values - Inactive

Note:

This value is case sensitive, so the “I” must be capitalized.

  1. Complete all required and desired optional mappings.

Important:

If you only want this integration for populating manager, the only optional mapping that will need to be included is the one for Manager Email. All others can be deleted.

  1. Click Preview Mappings.

Warning:

Do not click Save before clicking Activate in the next step. You will lose all of your configuration settings.

  1. If the attributes are mapping correctly, click Activate.
  2. If successful, you will receive a message saying the Identity Management has been successfully verified.
  3. Perform your initial manual import.
  4. If the initial import is correct, enable a scheduled sync.

Using Expressions

Some expressions that may be useful are:

Preferred Name

Syncs preferred name if it is populated in BambooHR. If it isn’t populated, it syncs the user’s legal first name. 

{{or .preferredName .firstName}}

Display Name

Creates a display name that uses the user’s preferred name, if it is populated, as the first name and the last name. If preferred name is not populated, the display name will be the user’s legal first and last name.

{{or .preferredName .firstName}} {{.lastName}}

See Use Expressions with Identity Management for more information.

Back to Top

Still Have Questions?

If you cannot find an answer to your question in our FAQ, you can always contact us.

Submit a Case