Skip to content

Source Connector: BambooHR ​

Description ​

The BambooHR source connector allows you to retrieve comprehensive employee data from the BambooHR HR platform. It supports multiple dataset types including personal information, compensation, job details, time-off requests, and custom fields.

This connector integrates with BambooHR's REST API to fetch various types of employee and organizational data.

Configuration ​

Required Parameters ​

Set the connector attribute to bamboohr.

apikey_secret (string)

Alias of the secret containing your BambooHR API key.

subdomain (string)

Your BambooHR subdomain (e.g., "acme" for acme.bamboohr.com).

datasets (array)

List of datasets to retrieve.

Optional Parameters ​

exclude_inactive_employees (boolean)

Whether to exclude inactive employees.

Default: false

time_off_requests (object)

Configuration for time-off request data.

Default: null

table_since_datetime (string)

ISO datetime for custom table data retrieval.

Default: null

Available Datasets ​

Employee Datasets ​

employee_personal

Basic employee information (name, email, address, etc.)

employee_calculated

Computed employee fields

employee_compensation

Salary and compensation information

employee_default_status

Employee status and employment details

employee_education

Educational background and qualifications

employee_employment_status

Current employment status

employee_job_information

Job-related details and history

employee_job

Current job information

employee_custom

Custom employee fields

employee_employee_settings

Employee-specific settings

Organizational Datasets ​

time_off_requests

Time-off and leave requests

lists

Reference data (departments, locations, etc.)

time_off_types

Types of time-off available

Custom Table Datasets ​

table_*

Custom tables (requires table_since_datetime configuration)

Configuration Examples ​

Basic Configuration ​

json
{
  "connector": "bamboohr",
  "configuration": {
    "apikey_secret": "bamboohr-apikey",
    "subdomain": "acme",
    "datasets": [
      "employee_personal",
      "employee_compensation",
      "employee_job_information"
    ]
  }
}

Advanced Configuration with Time-Off Requests ​

json
{
  "connector": "bamboohr",
  "configuration": {
    "apikey_secret": "bamboohr-apikey",
    "subdomain": "acme",
    "datasets": [
      "employee_personal",
      "employee_compensation",
      "time_off_requests",
      "time_off_types",
      "lists"
    ],
    "exclude_inactive_employees": true,
    "time_off_requests": {
      "depth_years_backwards": 2,
      "depth_years_forward": 1
    }
  }
}

Configuration with Custom Tables ​

json
{
  "connector": "bamboohr",
  "configuration": {
    "apikey_secret": "bamboohr-apikey",
    "subdomain": "acme",
    "datasets": [
      "employee_personal",
      "table_customtable"
    ],
    "table_since_datetime": "2024-01-01T00:00:00Z"
  }
}

Time-Off Request Configuration ​

The time_off_requests configuration allows you to specify the date range for retrieving time-off data:

depth_years_backwards (integer)

Number of years back to retrieve

depth_years_forward (integer)

Number of years forward to retrieve

Example Time-Off Configuration ​

json
{
  "time_off_requests": {
    "depth_years_backwards": 1,
    "depth_years_forward": 0
  }
}

Custom Table Support ​

For custom tables, you must provide the table_since_datetime parameter to specify when to start retrieving data from. This is required because custom tables can contain large amounts of historical data.

Custom Table Configuration ​

json
{
  "datasets": ["table_customtable"],
  "table_since_datetime": "2024-01-01T00:00:00Z"
}

Data Structure ​

Employee Personal Data ​

json
{
  "id": 123,
  "firstName": "John",
  "lastName": "Doe",
  "email": "john.doe@company.com",
  "hireDate": "2020-01-15",
  "department": "Engineering",
  "jobTitle": "Software Engineer"
}

Compensation Data ​

json
{
  "employeeId": 123,
  "payRate": 75000,
  "payType": "Salary",
  "paySchedule": "Bi-Weekly",
  "effectiveDate": "2024-01-01"
}

Time-Off Requests ​

json
{
  "id": 456,
  "employeeId": 123,
  "startDate": "2024-06-01",
  "endDate": "2024-06-05",
  "type": "Vacation",
  "status": "Approved"
}