BambooHR Component
Manage employees and HR data in the BambooHR platform
Component key: bamboohr
Description
BambooHR is a comprehensive human resources software platform that helps companies manage their HR processes effectively. BambooHR's services include an applicant tracking system, employee benefits tracker, time tracking, and employee records management. This component allows you to interact with the BambooHR API.
API Documentation
This component was built using the BambooHR API Documentation
Connections
API Key
Bamboo HR API keys can be used for testing an integration, but for production integrations, please use OAuth 2.0.
To generate an API key, log in to Bamboo HR, click your user profile image on the upper-right and then click API Keys. Click Add New Key, and take note of the API key that is generated - it will be a ~40 character alphanumeric string.
| Input | Notes | Example |
|---|---|---|
| API Key | Your BambooHR API key. You can generate this in your BambooHR account settings. | |
| Company Domain | The MYCOMPANY portion of your https://MYCOMPANY.bamboohr.com instance |
Triggers
Webhook
Receive and validate webhook requests from BambooHR for webhooks you configure. | key: bamboohrTrigger
Data Sources
Select Employee
Select an employee from a list of employees. | key: selectEmployee | type: picklist
| Input | Notes | Example |
|---|---|---|
| Connection |
Actions
Add Employee
Add a new employee | key: addEmployee
| Input | Notes | Example |
|---|---|---|
| Connection | ||
| Employee Fields | The names of the fields and their values to use when creating/updating a record. Possible fields are: address1, address2, age, bestEmail, birthday, city, country, dateOfBirth, department, division, employeeNumber, employmentHistoryStatus, ethnicity, exempt, firstName, fullName1, fullName2, fullName3, fullName4, fullName5, displayName, gender, hireDate, originalHireDate, id, jobTitle, lastChanged, lastName, location, maritalStatus, middleName, mobilePhone, nationality, payGroup, payRate, payRateEffectiveDate, payType, paidPer, paySchedule, payFrequency, includeInPayroll, timeTrackingEnabled, ssn, sin, standardHoursPerWeek, state, stateCode, status, supervisor, supervisorEmail, terminationDate, workEmail, workPhone, zipcode | |
| First Name | ||
| Last Name |
{
"data": {
"id": "234",
"location": "New York Office"
}
}
Add Table Row
Adds a row to the specified table for an employee | key: addEmployeeTableRow
| Input | Notes | Example |
|---|---|---|
| Connection | ||
| Employee ID | 42 | |
| Table Fields | The names of the fields and their values to use when creating/updating a row in a table. Use the "List Tabular Fields (Tables)" action to list possible field names for a table. | |
| Table Name (Alias) | jobInfo |
{
"data": {
"id": "15"
}
}
Create Company File Category
Create a new company file category (folder) | key: addCompanyFileCategory
| Input | Notes | Example |
|---|---|---|
| Category Name | A new category | |
| Connection |
Create Employee File Category
Create a new employee file category (folder) | key: addEmployeeFileCategory
| Input | Notes | Example |
|---|---|---|
| Category Name | A new category | |
| Connection |
Create Webhook
Create a new webhook | key: createWebhook
| Input | Notes | Example |
|---|---|---|
| Allow Duplicates? | By default this action checks if a webhook with this callback and sheet ID already exists. If it does, this action does not configure a new webhook. Toggle this to true to allow the creation of duplicate webhooks. | false |
| Connection | ||
| Fields to Monitor | Select one or more fields to trigger this webhook on. This can be any of the following: firstName, lastName, hireDate, department, middleName, dateOfBirth, ssn, address1, address2, city, state, zipcode, mobilePhone, homePhone, workEmail, jobTitle, location, gender, maritalStatus, payType, eeo, status, workPhone, workPhoneExtension, employeeNumber, ethnicity, division, homeEmail, preferredName, employeeStatusDate, country, payChangeReason, payRateEffectiveDate, exempt, twitterFeed, facebook, linkedIn, pinterest, acaStatus, payPer, originalHireDate, paySchedule, instagram, allergies, dietaryRestrictions, hoursPerPayCycle | |
| Webhook Name | ||
| Fields to send to Webhook | A list of fields to post to the webhook url. This can be any of the following: firstName, lastName, hireDate, department, middleName, dateOfBirth, ssn, address1, address2, city, state, zipcode, mobilePhone, homePhone, workEmail, jobTitle, location, gender, maritalStatus, payType, eeo, status, workPhone, workPhoneExtension, employeeNumber, ethnicity, division, homeEmail, preferredName, employeeStatusDate, country, payChangeReason, payRateEffectiveDate, exempt, twitterFeed, facebook, linkedIn, pinterest, acaStatus, payPer, originalHireDate, paySchedule, instagram, allergies, dietaryRestrictions, hoursPerPayCycle | |
| Callback URL | Where the data should be sent |
Delete Company File
Delete an company file | key: deleteCompanyFile
| Input | Notes | Example |
|---|---|---|
| Connection | ||
| File ID |
Delete Employee File
Delete an employee file | key: deleteEmployeeFile
| Input | Notes | Example |
|---|---|---|
| Connection | ||
| Employee ID | 42 | |
| File ID |
Delete Instance Webhooks
Delete all BambooHR webhooks that point to a flow in this instance | key: deleteInstanceWebhooks
| Input | Notes | Example |
|---|---|---|
| Connection |
Delete Webhook
Delete a webhook by ID | key: deleteWebhookById
| Input | Notes | Example |
|---|---|---|
| Connection | ||
| Webhook ID |
Get an Employee's Table
Get a specific table associated with an employee | key: getEmployeeTable
| Input | Notes | Example |
|---|---|---|
| Connection | ||
| Employee ID | 42 | |
| Table Name (Alias) | jobInfo |
{
"data": [
{
"id": "1",
"employeeId": "42",
"date": "2022-01-15",
"location": "New York Office",
"department": "Engineering",
"jobTitle": "Senior Developer"
}
]
}
Get Company File
Get an company file | key: getCompanyFile
| Input | Notes | Example |
|---|---|---|
| Connection | ||
| File ID |
Get Employee
Get an Employee | key: getEmployee
| Input | Notes | Example |
|---|---|---|
| Connection | ||
| Employee ID | 42 |
{
"data": {
"id": "5",
"address1": "335 S 560 W",
"address2": null,
"age": "41",
"bestEmail": "aadams@efficientoffice.com",
"birthday": "07-28",
"city": "Lindon",
"country": "United States",
"dateOfBirth": "1981-07-28",
"department": "Human Resources",
"division": "Europe",
"employeeNumber": "2",
"employmentHistoryStatus": "Full-Time",
"ethnicity": "Two or More Races",
"exempt": "Exempt",
"firstName": "Ashley",
"fullName1": "Ashley Adams",
"fullName2": "Adams, Ashley",
"fullName3": "Adams, Ashley",
"fullName4": "Adams, Ashley",
"fullName5": "Ashley Adams",
"displayName": "Ashley Adams",
"gender": "Female",
"hireDate": "2022-02-20",
"originalHireDate": "0000-00-00",
"jobTitle": "HR Administrator",
"lastChanged": "2022-08-17T20:35:30+00:00",
"lastName": "Adams",
"location": "London, UK",
"maritalStatus": "Married",
"middleName": null,
"mobilePhone": "+44 207 555 6671",
"payRate": "50000.00 GBP",
"payRateEffectiveDate": "2022-02-20",
"payType": "Salary",
"paidPer": "Year",
"paySchedule": "Twice a month",
"payFrequency": "Twice a month",
"ssn": "545-66-7890",
"state": "UT",
"stateCode": "UT",
"status": "Active",
"supervisor": "Caldwell, Jennifer",
"supervisorEmail": "jcaldwell@efficientoffice.com",
"terminationDate": "0000-00-00",
"workEmail": "aadams@efficientoffice.com",
"workPhone": "+44 207 555 4730",
"zipcode": "84042"
}
}
Get Employee File
Get an employee file | key: getEmployeeFile
| Input | Notes | Example |
|---|---|---|
| Connection | ||
| Employee ID | 42 | |
| File ID |
Get Time Off Requests
Gets Employee Time Off Requests for a given date range. | key: getTimeOffRequests
| Input | Notes | Example |
|---|---|---|
| Connection | ||
| Employee ID | 42 | |
| End Date | YYYY-MM-DD | |
| Start Date | YYYY-MM-DD | |
| Time Off Record ID | 42 | |
| Status |
{
"data": [
{
"id": "1342",
"employeeId": "4",
"status": {
"lastChanged": "2022-04-10",
"lastChangedByUserId": "2369",
"status": "approved"
},
"name": "Charlotte Abbott",
"start": "2021-12-26",
"end": "2021-12-28",
"created": "2022-04-09",
"type": {
"id": "78",
"name": "Vacation",
"icon": "palm-trees"
},
"amount": {
"unit": "hours",
"amount": "24"
},
"actions": {
"view": true,
"edit": true,
"cancel": false,
"approve": false,
"deny": false,
"bypass": false
},
"dates": {
"2021-12-26": "24"
},
"notes": {
"manager": "Home sick with the flu."
}
}
]
}
List Company Files
List all company categories and files | key: listCompanyFiles
| Input | Notes | Example |
|---|---|---|
| Connection |
{
"data": {
"categories": [
{
"id": 179,
"canUploadFiles": "yes",
"name": "BambooHR",
"files": [
{
"id": 220,
"name": "4 Ways the BambooHR ATS Improves the Hiring Process",
"originalFileName": "4 Ways the BambooHR ATS Improves the Hiring Process.pdf",
"size": "855128",
"dateCreated": "2022-10-22T22:30:07+0000",
"createdBy": "Acme Developer",
"shareWithEmployees": "no",
"canRenameFile": "yes",
"canDeleteFile": "yes"
},
{
"id": 223,
"name": "5 Payroll Pain Points Solved by TRAXPayroll",
"originalFileName": "5 Payroll Pain Points.pdf",
"size": "523971",
"dateCreated": "2022-10-22T22:50:24+0000",
"createdBy": "Acme Developer",
"shareWithEmployees": "no",
"canRenameFile": "yes",
"canDeleteFile": "yes"
}
]
},
{
"id": 175,
"canUploadFiles": "yes",
"name": "New Hire Forms",
"files": [
{
"id": 164,
"name": "Australia Standard Choice Form.pdf",
"originalFileName": "Australia Standard Choice Form.pdf",
"size": "323487",
"dateCreated": "2022-07-01T15:15:33+0000",
"createdBy": null,
"shareWithEmployees": "no",
"canRenameFile": "yes",
"canDeleteFile": "yes"
}
]
}
]
}
}
List Employee Files
List all employee categories and files | key: listEmployeeFiles
| Input | Notes | Example |
|---|---|---|
| Connection | ||
| Employee ID | 42 |
{
"data": {
"employee": {
"id": 4
},
"categories": [
{
"id": 12,
"name": "Signed Documents",
"canRenameCategory": "yes",
"canDeleteCategory": "yes",
"canUploadFiles": "yes",
"displayIfEmpty": "yes",
"files": [
{
"id": 4,
"name": "Company Handbook.pdf",
"originalFileName": "Company Handbook.pdf",
"size": 2807480,
"dateCreated": "2022-07-04T20:45:51+0000",
"createdBy": "Charlotte Abbott",
"shareWithEmployee": "yes",
"canRenameFile": "yes",
"canDeleteFile": "yes",
"canChangeShareWithEmployeeFieldValue": "yes"
},
{
"id": 10,
"name": "I-9 (2017).pdf",
"originalFileName": "I-9 (2017).pdf",
"size": 2750869,
"dateCreated": "2022-07-04T21:25:11+0000",
"createdBy": "Charlotte Abbott",
"shareWithEmployee": "yes",
"canRenameFile": "yes",
"canDeleteFile": "yes",
"canChangeShareWithEmployeeFieldValue": "yes"
}
]
},
{
"id": 10,
"name": "Workflow Attachments",
"canRenameCategory": "yes",
"canDeleteCategory": "yes",
"canUploadFiles": "yes",
"displayIfEmpty": "yes",
"files": []
}
]
}
}
List Employees
Get the employee directory | key: getEmployeeDirectory
| Input | Notes | Example |
|---|---|---|
| Connection |
{
"data": {
"fields": [
{
"id": "displayName",
"type": "text",
"name": "Display Name"
},
{
"id": "firstName",
"type": "text",
"name": "First Name"
},
{
"id": "lastName",
"type": "text",
"name": "Last Name"
},
{
"id": "gender",
"type": "text",
"name": "Gender"
},
{
"id": "jobTitle",
"type": "list",
"name": "Job Title"
},
{
"id": "workPhone",
"type": "text",
"name": "Work Phone"
},
{
"id": "workPhoneExtension",
"type": "text",
"name": "Work Extension"
},
{
"id": "skypeUsername",
"type": "text",
"name": "Skype Username"
},
{
"id": "facebook",
"type": "text",
"name": "Facebook URL"
}
],
"employees": [
{
"id": 123,
"displayName": "John Doe",
"firstName": "John",
"lastName": "Doe",
"gender": "Male",
"jobTitle": "Customer Service Representative",
"workPhone": "555-555-5555",
"workPhoneExtension": null,
"skypeUsername": "JohnDoe",
"facebook": "JohnDoeFacebook"
}
]
}
}
List Tabular Fields (Tables)
List all tables and their fields in the account | key: getTabularFields
| Input | Notes | Example |
|---|---|---|
| Connection |
{
"data": [
{
"alias": "jobInfo",
"fields": [
{
"id": 4028,
"name": "Job Information: Date",
"alias": "date",
"type": "date"
},
{
"id": 18,
"name": "Location",
"alias": "location",
"type": "list"
},
{
"id": 4,
"name": "Department",
"alias": "department",
"type": "list"
},
{
"id": 1355,
"name": "Division",
"alias": "division",
"type": "list"
},
{
"id": 17,
"name": "Job Title",
"alias": "jobTitle",
"type": "list"
},
{
"id": 91,
"name": "Reporting to",
"alias": "reportsTo",
"type": "employee"
}
]
}
]
}
List Webhooks
Get a list of existing webhooks | key: listWebhooks
| Input | Notes | Example |
|---|---|---|
| Connection | ||
| Show only instance webhooks | Show only webhooks that point to this instance | true |
List Who's Out
Get a list of all employees currently taking time off | key: whosOut
| Input | Notes | Example |
|---|---|---|
| Connection | ||
| End Date | Defaults to 14 days from start date if omitted | YYYY-MM-DD |
| Start Date | Defaults to today's date if omitted | YYYY-MM-DD |
{
"data": [
{
"id": 1493,
"type": "timeOff",
"employeeId": 17,
"name": "Dorothy Chou",
"start": "2022-08-17",
"end": "2022-08-18"
}
]
}
Raw Request
Send raw HTTP request to BambooHR | key: rawRequest
| Input | Notes | Example |
|---|---|---|
| Connection | ||
| Data | The HTTP body payload to send to the URL. | {"exampleKey": "Example Data"} |
| Debug Request | Enabling this flag will log out the current request. | false |
| File Data | File Data to be sent as a multipart form upload. | [{key: "example.txt", value: "My File Contents"}] |
| File Data File Names | File names to apply to the file data inputs. Keys must match the file data keys above. | |
| Form Data | The Form Data to be sent as a multipart form upload. | [{"key": "Example Key", "value": new Buffer("Hello World")}] |
| Header | A list of headers to send with the request. | User-Agent: curl/7.64.1 |
| Max Retry Count | The maximum number of retries to attempt. Specify 0 for no retries. | 0 |
| Method | The HTTP method to use. | |
| Query Parameter | A list of query parameters to send with the request. This is the portion at the end of the URL similar to ?key1=value1&key2=value2. | |
| Response Type | The type of data you expect in the response. You can request json, text, or binary data. | json |
| Retry On All Errors | If true, retries on all erroneous responses regardless of type. This is helpful when retrying after HTTP 429 or other 3xx or 4xx errors. Otherwise, only retries on HTTP 5xx and network errors. | false |
| Retry Delay (ms) | The delay in milliseconds between retries. This is used when 'Use Exponential Backoff' is disabled. | 0 |
| Timeout | The maximum time that a client will await a response to its request | 2000 |
| URL | Input the path only (/v1/employees/directory), The base URL is already included (https://api.bamboohr.com/api/gateway.php/COMPANY_DOMAIN). For example, to connect to https://api.bamboohr.com/api/gateway.php/COMPANY_DOMAIN/v1/employees/directory, only /v1/employees/directory is entered in this field. | /v1/employees/directory |
| Use Exponential Backoff | Specifies whether to use a pre-defined exponential backoff strategy for retries. When enabled, 'Retry Delay (ms)' is ignored. | false |
Update Employee
Update an existing employee | key: updateEmployee
| Input | Notes | Example |
|---|---|---|
| Connection | ||
| Employee Fields | The names of the fields and their values to use when creating/updating a record. Possible fields are: address1, address2, age, bestEmail, birthday, city, country, dateOfBirth, department, division, employeeNumber, employmentHistoryStatus, ethnicity, exempt, firstName, fullName1, fullName2, fullName3, fullName4, fullName5, displayName, gender, hireDate, originalHireDate, id, jobTitle, lastChanged, lastName, location, maritalStatus, middleName, mobilePhone, nationality, payGroup, payRate, payRateEffectiveDate, payType, paidPer, paySchedule, payFrequency, includeInPayroll, timeTrackingEnabled, ssn, sin, standardHoursPerWeek, state, stateCode, status, supervisor, supervisorEmail, terminationDate, workEmail, workPhone, zipcode | |
| Employee ID | 42 |
{
"data": {
"id": "42",
"fields": [
{
"id": "jobTitle",
"value": "Senior Developer"
}
]
}
}
Update Employee Table Row
Updates a specific row in an Employee Table | key: updateEmployeeTableRow
| Input | Notes | Example |
|---|---|---|
| Connection | ||
| Employee ID | 42 | |
| Row ID | ||
| Table Fields | The names of the fields and their values to use when creating/updating a row in a table. Use the "List Tabular Fields (Tables)" action to list possible field names for a table. | |
| Table Name (Alias) | jobInfo |
{
"data": {
"id": "15",
"employeeId": "42"
}
}
Upload Company File
Upload a new company file | key: uploadCompanyFile
| Input | Notes | Example |
|---|---|---|
| Category ID | 20 | |
| Connection | ||
| File contents | ||
| File Name | example.pdf | |
| Share? | false |
Upload Employee File
Upload a new employee file | key: uploadEmployeeFile
| Input | Notes | Example |
|---|---|---|
| Category ID | 20 | |
| Connection | ||
| Employee ID | 42 | |
| File contents | ||
| File Name | example.pdf | |
| Share? | false |
Changelog
2025-01-03
Added data sources and inline data sources for employees