BambooHR integration

HR: employees, time off, reports, directory, files, custom fields

Help CentreConnectors

Overview

BambooHR is a popular HRIS for SMBs and mid-market. The Automize BambooHR connector covers employees (the central record), time off, custom reports, directory, files, and the metadata needed to discover fields and tables.

  • Regions: Each BambooHR account has its own sub-domain (yourcompany.bamboohr.com). The connector hits your sub-domain on every call.
  • Plans: BambooHR has Essentials + Advantage tiers; API access is on all paid plans. Time tracking + Payroll are add-ons.

Setting up the connection

Auth type: HTTP Basic.

  1. Sign in to BambooHR → Settings → API Keys → Create new key.
  2. Name it (e.g. Automize). Tie it to an admin user account.
  3. Copy the key. It only displays once.
  4. In Automize, open Settings → Connectors → BambooHR → Add connection. Enter sub-domain, username = the API key, password = 'x' (any non-empty value – BambooHR ignores it).

Find your credentials at https://yourcompany.bamboohr.com/settings/permissions/api.php.


Rate limits

BambooHR enforces a daily quota (~10,000 calls/day for typical accounts). Higher via support request. Connector retries 429 with backoff.


Data model

Employees are the central record:

    Employee ─┬─ Custom Fields (defined per company)
              ├─ Time Off Requests
              ├─ Time Off Balances
              ├─ Files (employee documents)
              ├─ Tables (employment status, compensation, education – multi-row data)
              └─ Job Info (current job, dept, location)

employee_id is numeric. Use Get Employee with specific fields to
control payload size.

Available operations

16 operations available. Click any row to jump to its detail.

OperationCategoryWhat it does
Create EmployeeGeneralAdd a new employee
Create Time Off RequestGeneralSubmit a time off request
Get EmployeeGeneralGet employee details by ID
Get employee directoryGeneralGet the full BambooHR employee directory.
Get Time Off BalancesGeneralGet time off balances
Get Time Off RequestsGeneralList time off requests
Get Time Off TypesGeneralList available time off types
Get who's outGeneralGet who's out (on leave) in BambooHR.
List EmployeesGeneralGet employee directory
List FieldsGeneralList all available employee fields
List filesGeneralList files on a BambooHR employee record.
List job infoGeneralList job information history for a BambooHR employee.
List Table DataGeneralGet table data for an employee
Run ReportGeneralRun a custom report by ID
Update EmployeeGeneralUpdate employee fields
Upload fileGeneralUpload a file to a BambooHR employee record.

Operations

Create Employee

Add a new employee

ParameterRequiredTypeDescription
Firstname firstNameYestext
Lastname lastNameYestext
Jobtitle jobTitleYestext
Department departmentYestext
Location locationYestext
Workemail workEmailYestext

Create Time Off Request

Submit a time off request

ParameterRequiredTypeDescription
Employee Id employee_idYestext
Start startYestext
End endYestext
Timeofftypeid timeOffTypeIdYestext
Amount amountYesnumber
Notes notesYestext
Status statusYestext

Tips

  • employee_id + timeOffTypeId + start + end + amount.
  • Time off types via List Time Off Types.

Get Employee

Get employee details by ID

ParameterRequiredTypeDescription
Employee Id employee_idYestext

Tips

  • fields: comma-separated list of field names (firstName, lastName, jobTitle, workEmail, customFieldName).
  • Use List Fields first to discover field names + custom-field IDs.

Get employee directory

Get the full BambooHR employee directory.

No input parameters.

Tips

  • Lightweight – returns name, ID, photo, job title. Use for autocomplete / quick lookup.

Get Time Off Balances

Get time off balances

ParameterRequiredTypeDescription
Employee Id employee_idYestext

Get Time Off Requests

List time off requests

No input parameters.


Get Time Off Types

List available time off types

No input parameters.


Get who's out

Get who's out (on leave) in BambooHR.

No input parameters.


List Employees

Get employee directory

No input parameters.

Tips

  • Use Get Employee Directory for a lightweight list (name, job, photo). Slower if you need all custom fields.

List Fields

List all available employee fields

No input parameters.

Tips

  • All fields available on the Employee record incl. custom ones. Returns field names + IDs.

List files

List files on a BambooHR employee record.

ParameterRequiredTypeDescription
Employee Id employee_idYestext

Tips

  • Files attached to an employee. Categories (NDA, Reviews, etc.) defined per company.

List job info

List job information history for a BambooHR employee.

ParameterRequiredTypeDescription
Employee Id employee_idYestext

List Table Data

Get table data for an employee

ParameterRequiredTypeDescription
Employee Id employee_idYestext
Table Name table_nameYestext

Run Report

Run a custom report by ID

ParameterRequiredTypeDescription
Report Id report_idYestext

Update Employee

Update employee fields

ParameterRequiredTypeDescription
Employee Id employee_idYestext

Tips

  • PUT-style on individual fields. Format: {field_name: 'value'}.

Upload file

Upload a file to a BambooHR employee record.

ParameterRequiredTypeDescription
Employee Id employee_idYestext
Category Id category_idYestext

Tips

  • employee_id + categoryId + file. multipart upload.

FAQ

Why does Update Employee silently fail?
Permission scopes. The API key inherits its user's permissions – if that user can't edit the field, the API call returns success but doesn't apply. Promote the user to admin or grant the specific field's access.
Custom fields – how?
Custom field IDs look like 'custom123'. Discover via List Fields. Pass them in Get / Update calls just like standard fields.
Why is my password failing?
BambooHR ignores the password component on basic auth. Use literally any non-empty string. The API key is the username.

Related connectors

See it working on your own data

Everything documented here ships with the platform – try the document tools free, or go live in 7 days.