> ## Documentation Index
> Fetch the complete documentation index at: https://botpress.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# BambooHR

> Add a bot to BambooHR using the official integration.

{/* vale on */}

[Open in Hub](https://studio.botpress.cloud/home?exploreHub=1\&hubItemId=intver_01KMZACXWM0GDNQF5PS3QBPQDN)
*v2.1.2*

The official BambooHR integration allows your bot to interact with your company's BambooHR employees.

## Setup

> [!NOTE]
>
> You will need:
>
> * A [published bot](https://botpress.com/docs/get-started/quickstart)
> * A [BambooHR account](https://www.bamboohr.com/pl-pages/intl-en/bamboohr-software?s_kwcid=AL!18332!3!756232856072!e!!g!!bamboohr\&utm_campaign=BAMB-DG-Search-BambooHR-Bamboo-INT-AdAi-2024EG\&utm_medium=cpc\&utm_source=google\&utm_content=blank\&utm_term=blank\&CampaignID=22634976683\&AdGroupID=180133835709\&ClickID=EAIaIQobChMIlO26zKrFkAMVTHWeBx0o3TqgEAAYASAAEgL9yfD_BwE\&MatchType=e\&Keyword=bamboohr\&Device=c\&AdID=756232856072\&Network=g\&bt=756232856072&_bk=bamboohr&_bm=e&_bn=g&_bg=180133835709\&gad_source=1\&gad_campaignid=22634976683\&gclid=EAIaIQobChMIlO26zKrFkAMVTHWeBx0o3TqgEAAYASAAEgL9yfD_BwE)

**1. Install the integration in Botpress**

First, install the integration to your bot:

1. In Botpress Studio, select \*\* Explore Hub\*\* in the upper-right corner.
2. Search for the **BambooHR** integration, then select **Install Integration**.
3. In the drop-down menu, select **Configure manually with your BambooHR API Key**.
4. Fill the **BambooHR Subdomain** field with your company's subdomain (`https://mycompany.bamboohr.com`)
5. Leave the **API Key** field blank for now—you'll come back to it after getting your BambooHR API key.

**2. Get your BambooHR API key**

Next, get your BambooHR API key:

1. [Log in to BambooHR](https://app.bamboohr.com/login/).
2. Select your avatar in the bottom-left corner, then select **API Keys**.
3. Select **+ Add New Key**.
4. Enter a name for the API key, then select **Generate Key**.
5. Copy the generated key.

> [!NOTE]
>
> If you get an error when trying to access the API keys menu (or can't see the option to add a new key), make sure you have sufficient permissions in your company's BambooHR account.

**3. Configure the integration in Botpress**

Now, you can finish setting up the integration in Botpress:

1. In the integration's **API Key** field, paste your BambooHR API key.
2. Select **Save configuration**.

> [!TIP]
>
> Your BambooHR integration is ready. You can use the integration's [Cards](#cards) and [Triggers](#triggers) to interact with your company's employees.

***

## Cards

{/* vale off */}

Here's a reference for all [Cards](https://botpress.com/docs/studio/concepts/cards/introduction.md) available with the integration:

### Get Company Info

Retrieve information about the company.

**input** `object`

This Card has no input fields.

**output** `object`

**legalName** `string` *required*

Legal name of the company.

**displayName** `string` *required*

Display name of the company.

**address** `object` *required*

Address of the company.

**line1** `string | null`

**line2** `string | null`

**city** `string | null`

**state** `string | null`

**country** `string | null`

**zip** `string | null`

**phone** `string | null`

### Get Basic Info

Retrieve basic information about an employee by their ID.

**input** `object`

**id** `string` *required*

Unique identifier for the employee.

**output** `object`

**customBenefitIDNumber** `string | null`

**customCitizenshipCertificate** `string | null`

**payChangeReason** `string | null`

**payRateEffectiveDate** `string | null`

**department** `string | null`

**division** `string | null`

**employeeNumber** `string | null`

**employeeTaxType** `string | null`

**employmentHistoryStatus** `string | null`

**employeeStatusDate** `string | null`

**ethnicity** `string | null`

**facebook** `string | null`

**firstName** `string | null`

**gender** `string | null`

**hireDate** `string | null`

**homeEmail** `string | null`

**homePhone** `string | null`

**jobTitle** `string | null`

**lastName** `string | null`

**linkedIn** `string | null`

**location** `string | null`

**maritalStatus** `string | null`

**middleName** `string | null`

**mobilePhone** `string | null`

**customNIN1** `string | null`

**nationality** `string | null`

**originalHireDate** `string | null`

**overtimeRate** `string | null`

**exempt** `string | null`

**payPer** `string | null`

**paySchedule** `string | null`

**payRate** `string | null`

**payType** `string | null`

**preferredName** `string | null`

**customProbationaryPeriodEndDate** `string | null`

**customProbationaryPeriodStartDate** `string | null`

**customProjectedTerminationDate** `string | null`

**customROESATCompleted** `string | null`

**reportsTo** `string | null`

**customShirtsize** `string | null`

**status** `string | null`

**teams** `string | null`

**customTerminationCode** `string | null`

**customTerminationNoticeGiven** `string | null`

**twitterFeed** `string | null`

**workEmail** `string | null`

**workPhoneExtension** `string | null`

**workPhone** `string | null`

**id** `string` *required*

Unique identifier for the employee.

**supervisorEid** `string | null`

**lastChanged** `string` *required*

Full timestamp of the last change to the employee record.

**displayName** `string` *required*

Employee's display name.

### Get Custom Info

Retrieve custom information about an employee by their ID and specified fields.

**input** `object`

**id** `string` *required*

Unique identifier for the employee.

**fields** `array` *required*

List of custom field names to retrieve for the employee.

**output** `object`

**id** `string` *required*

Unique identifier for the employee.

### Get Employee Fields

Retrieve the list of available employee fields.

**input** `object`

This Card has no input fields.

**output** `object`

**fields** `array` *required*

List of available employee fields.

**array item properties**

**id** `string | number` *required*

Unique identifier for the field.

**name** `string` *required*

Name of the field.

**type** `string` *required*

Data type of the field.

**alias** `string`

Alias used for the field in API requests.

### List Employees

Retrieve a list of all employees with IDs and names. Warning: this endpoint may not be enabled in your workspace.

**input** `object`

This Card has no input fields.

**output** `object`

**employees** `array` *required*

List of employees in the directory. Includes only ID and display name.

**array item properties**

**id** `string` *required*

Unique identifier for the employee.

**displayName** `string` *required*

Employee's display name.

## Triggers

{/* vale off */}

Here's a reference for all [Triggers](https://botpress.com/docs/studio/concepts/triggers.md) available with the integration:

> [!TIP]
>
> You can access data returned from any of these Triggers by reading `event.payload` after the Trigger fires.

### Employee Created

Triggers when a new employee is created in BambooHR.

**payload** `object`

**id** `string` *required*

Unique identifier for the employee.

**timestamp** `string` *required*

Timestamp in ISO 8601 format.

### Employee Deleted

Triggers when an employee is deleted from BambooHR. Terminating employees will trigger the "Employee Updated" event instead.

**payload** `object`

**id** `string` *required*

Unique identifier for the employee.

**timestamp** `string` *required*

Timestamp in ISO 8601 format.

### Employee Updated

Triggers when an existing employee is updated in BambooHR.

**payload** `object`

**id** `string` *required*

Unique identifier for the employee.

**timestamp** `string` *required*

Timestamp in ISO 8601 format.

**fields** `object` *required*

All fields subscribed to for the employee, including unchanged fields.

**customBenefitIDNumber** `string | null`

**customCitizenshipCertificate** `string | null`

**payChangeReason** `string | null`

**payRateEffectiveDate** `string | null`

**department** `string | null`

**division** `string | null`

**employeeNumber** `string | null`

**employeeTaxType** `string | null`

**employmentHistoryStatus** `string | null`

**employeeStatusDate** `string | null`

**ethnicity** `string | null`

**facebook** `string | null`

**firstName** `string | null`

**gender** `string | null`

**hireDate** `string | null`

**homeEmail** `string | null`

**homePhone** `string | null`

**jobTitle** `string | null`

**lastName** `string | null`

**linkedIn** `string | null`

**location** `string | null`

**maritalStatus** `string | null`

**middleName** `string | null`

**mobilePhone** `string | null`

**customNIN1** `string | null`

**nationality** `string | null`

**originalHireDate** `string | null`

**overtimeRate** `string | null`

**exempt** `string | null`

**payPer** `string | null`

**paySchedule** `string | null`

**payRate** `string | null`

**payType** `string | null`

**preferredName** `string | null`

**customProbationaryPeriodEndDate** `string | null`

**customProbationaryPeriodStartDate** `string | null`

**customProjectedTerminationDate** `string | null`

**customROESATCompleted** `string | null`

**reportsTo** `string | null`

**customShirtsize** `string | null`

**status** `string | null`

**teams** `string | null`

**customTerminationCode** `string | null`

**customTerminationNoticeGiven** `string | null`

**twitterFeed** `string | null`

**workEmail** `string | null`

**workPhoneExtension** `string | null`

**workPhone** `string | null`

**changedFields** `array` *required*

List of fields that were changed in this event.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.