BambooHR
  • 11 Sep 2024
  • 2 Minutes to read
  • Dark
    Light
  • PDF

BambooHR

  • Dark
    Light
  • PDF

Article summary

BambooHR API

API Documentation Link


Configuration Parameters

Any instance where an entry in the below configuration has a leading $ represents a parameter that needs to be replaced with a static value.

Parameters in this document:

  • $endpoint - The Endpoint represents the data that you would like to ingest into Panoply. Details of the value that should be used here can be found in the API Resources section below.
  • $sub_domain - Per BambooHR API documentation, "If you access BambooHR at https://mycompany.bamboohr.com, then the sub_domain is mycompany".
  • $base_url - The Base URL will follow the below format:
    • https://api.bamboohr.com/api/gateway.php/$sub_domain/$endpoint
  • $api_key - The API Key will provide access to the BambooHR API. Per BambooHR API documentation here, to generate an API key, users should log in and click their name in the upper right-hand corner of any page to get to the user context menu. If you have sufficient permissions, there will be an API Keys option in that menu to go to the page.
  • $resource_name - The Resource Name represents the name of the resource to be appended and used as part of the Destination Table name. Details of the value that should be used here can be found in the API Resources section below.
  • $data_key - The Data Key represents the location of the data in the API response from the BambooHR API.
  • $report_id - This parameter only applies to the Reports API Resource, and represents the id of the report that is being ingested into Panoply. This ID can be found in the URL of the report on the BambooHR platform.

API Resources

Complete API Resources

$resource_name$endpoint$data_key
Aggregate Goal Infov1/performance/employees/{identifier}/goals/aggregategoals
Applicationsv1/applicant_tracking/applicationsapplications
Benefit Deduction Typesv1/benefits/settings/deduction_typles_all
Company Locationsv1/applicant_tracking/locationslocation
Employee Dependentsv1/employeedependentsEmployee Dependents
Employee Directoryv1/employees/directoryemployees
Employee Goalsv1/performance/employees/{identifier}/goalsgoals
Goal Status Countsv1_1/performance/employees/{identifier}/goals/filtersfilters
Job Summariesv1/applicant_tracking/jobs
Reportsv1/reports/$report_idwill vary by report
Statusesv1/applicant_tracking/statuses
Time Off Typesv1/meta/time_off/typestimeOffTypes
Time Off Policiesv1/meta/time_off/policies
Time Off Requestsv1/meta/time_off/requestsrequests

For the Aggregate Goal Info, Employee Files and Categories, Employee Goals, Employee Trainings, and Goal Status Counts resources listed above, you will need to include the Fetch List configuration (see below).


Connector configuration

  • Base url: $base_url
  • Method: GET
  • Headers: {"Accept": "application/json"}
  • Destination: bamboohr_$resource_name

Destination Table naming convention is ultimately up to you as the data owner. A common structure used for this API is to utilize the resource name within the table name. It is suggested to switch spaces with _ in the destination configuraiton. For example, if collecting the Applications resource, using a name like bamboohr_applications.

Authorization

  • Authorization: Basic Auth
  • Username: $api_key
Password

Per BambooHR documentation, "Use the secret key as the username and any random string for the password." Per this statement, you can put any string as the password as part of this configuration. Within the BambooHR documentation, they use a value of x, though any string will work.

Fetch list

Only applicable for the Aggregate Goal Info, Employee Files and Categories, Employee Goals, Employee Trainings, and Goal Status Counts resources

  • Enable: Checkbox.png
  • Fetch List From: API
  • Fetch url: https://api.bamboohr.com/api/gateway.php/$sub_domain/v1/employees/directory
  • Method: GET
  • Headers: {"Accept": "application/json"}
  • Data key: employees
  • Data identifier key: id
  • Use identifiers: As single value

Advanced Settings

  • Data key: $data_key
Primary Key

For the Reports resource, a Primary Key may need to be defined, depending on the data within the given report. For example, if the unique identifier for a given Report is a combination of "Date" and "EmployeeID", the Primary Key will need to be set to {date}-{employeeid}.


Was this article helpful?