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"
}