BambooHR Component
Manage Employees in BambooHR
Component key: bamboohr
Description
BambooHR produces human resources software. BambooHR's services include an applicant tracking system and an employee benefits tracker.
Connections
Bamboo 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 |
---|---|
API Key password / Required apiKey | Bamboo API Key |
Company Domain string / Required companyDomain | 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
Actions
Add Employee
Add a new employee | key: addEmployee
Input | Notes |
---|---|
Connection connection / Required connection | |
Employee Fields string Key Value List employeeFieldValues | 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 string / Required firstName | |
Last Name string / Required lastName |
Add Table Row
Adds a row to the specified table for an employee | key: addEmployeeTableRow
Input | Notes | Example |
---|---|---|
Connection connection / Required connection | ||
Employee ID string / Required employeeId | 42 | |
Table Fields string Key Value List tableFieldValues | 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) string / Required tableName | jobInfo |
Create Company File Category
Create a new company file category (folder) | key: addCompanyFileCategory
Input | Notes | Example |
---|---|---|
Category Name string / Required categoryName | A new category | |
Connection connection / Required connection |
Create Employee File Category
Create a new employee file category (folder) | key: addEmployeeFileCategory
Input | Notes | Example |
---|---|---|
Category Name string / Required categoryName | A new category | |
Connection connection / Required connection |
Create Webhook
Create a new webhook | key: createWebhook
Input | Default | Notes |
---|---|---|
Allow Duplicates? boolean allowDuplicates | false | 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. |
Connection connection / Required connection | ||
Fields to Monitor string / Required Value List monitorFields | 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 string / Required name | ||
Fields to send to Webhook string / Required Value List postFields | 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 string / Required url | Where the data should be sent |
Delete Company File
Delete an company file | key: deleteCompanyFile
Input | Notes |
---|---|
Connection connection / Required connection | |
File ID string / Required fileId |
Delete Employee File
Delete an employee file | key: deleteEmployeeFile
Input | Notes | Example |
---|---|---|
Connection connection / Required connection | ||
Employee ID string / Required employeeId | 42 | |
File ID string / Required fileId |
Delete Instance Webhooks
Delete all BambooHR webhooks that point to a flow in this instance | key: deleteInstanceWebhooks
Input | Notes |
---|---|
Connection connection / Required connection |
Delete Webhook
Delete a webhook by ID | key: deleteWebhookById
Input | Notes |
---|---|
Connection connection / Required connection | |
Webhook ID string / Required webhookId |
Get an Employee's Table
Get a specific table associated with an employee | key: getEmployeeTable
Input | Notes | Example |
---|---|---|
Connection connection / Required connection | ||
Employee ID string / Required employeeId | 42 | |
Table Name (Alias) string / Required tableName | jobInfo |
Get Company File
Get an company file | key: getCompanyFile
Input | Notes |
---|---|
Connection connection / Required connection | |
File ID string / Required fileId |
Get Employee
Get an Employee | key: getEmployee
Input | Notes | Example |
---|---|---|
Connection connection / Required connection | ||
Employee ID string / Required employeeId | 42 |
Example Payload for Get Employee
{
"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 connection / Required connection | ||
Employee ID string / Required employeeId | 42 | |
File ID string / Required fileId |
Get Time Off Requests
Gets Employee Time Off Requests for a given date range. | key: getTimeOffRequests
Input | Notes | Example |
---|---|---|
Connection connection / Required connection | ||
Employee ID string employeeId | 42 | |
End Date string / Required endDate | YYYY-MM-DD | |
Start Date string / Required startDate | YYYY-MM-DD | |
Time Off Record ID string timeOffRecordId | 42 | |
Status string timeOffStatus |
Example Payload for Get Time Off Requests
{
"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 |
---|---|
Connection connection / Required connection |
Example Payload for List Company Files
{
"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": "Prismatic 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": "Prismatic 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 connection / Required connection | ||
Employee ID string / Required employeeId | 42 |
Example Payload for List Employee Files
{
"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 |
---|---|
Connection connection / Required connection |
Example Payload for List Employees
{
"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 |
---|---|
Connection connection / Required connection |
Example Payload for List Tabular Fields (Tables)
{
"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 | Default | Notes |
---|---|---|
Connection connection / Required connection | ||
Show only instance webhooks boolean showOnlyInstanceWebhooks | true | Show only webhooks that point to this instance |
List Who's Out
Get a list of all employees currently taking time off | key: whosOut
Input | Notes | Example |
---|---|---|
Connection connection / Required connection | ||
End Date string endDate | Defaults to 14 days from start date if omitted | YYYY-MM-DD |
Start Date string startDate | Defaults to today's date if omitted | YYYY-MM-DD |
Example Payload for List Who's Out
{
"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 | Default | Notes | Example |
---|---|---|---|
Connection connection / Required connection | |||
Data string data | The HTTP body payload to send to the URL. | {"exampleKey": "Example Data"} | |
Debug Request boolean debugRequest | false | Enabling this flag will log out the current request. | |
File Data string Key Value List fileData | File Data to be sent as a multipart form upload. | [{key: "example.txt", value: "My File Contents"}] | |
Form Data string Key Value List formData | The Form Data to be sent as a multipart form upload. | [{"key": "Example Key", "value": new Buffer("Hello World")}] | |
Header string Key Value List headers | A list of headers to send with the request. | User-Agent: curl/7.64.1 | |
Max Retry Count string maxRetries | 0 | The maximum number of retries to attempt. | |
Method string / Required method | The HTTP method to use. | ||
Query Parameter string Key Value List queryParams | 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 string / Required responseType | json | The type of data you expect in the response. You can request json, text, or binary data. | |
Retry On All Errors boolean retryAllErrors | false | If true, retries on all erroneous responses regardless of type. | |
Retry Delay (ms) string retryDelayMS | 0 | The delay in milliseconds between retries. | |
Timeout string timeout | The maximum time that a client will await a response to its request | 2000 | |
URL string / Required 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 boolean useExponentialBackoff | false | Specifies whether to use a pre-defined exponential backoff strategy for retries. |
Update Employee
Update an existing employee | key: updateEmployee
Input | Notes | Example |
---|---|---|
Connection connection / Required connection | ||
Employee Fields string Key Value List employeeFieldValues | 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 string / Required employeeId | 42 |
Update Employee Table Row
Updates a specific row in an Employee Table | key: updateEmployeeTableRow
Input | Notes | Example |
---|---|---|
Connection connection / Required connection | ||
Employee ID string / Required employeeId | 42 | |
Row ID string / Required rowId | ||
Table Fields string Key Value List tableFieldValues | 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) string / Required tableName | jobInfo |
Upload Company File
Upload a new company file | key: uploadCompanyFile
Input | Default | Notes | Example |
---|---|---|---|
Category ID string / Required categoryId | 20 | ||
Connection connection / Required connection | |||
File contents string / Required file | |||
File Name string / Required fileName | example.pdf | ||
Share? boolean share | false |
Upload Employee File
Upload a new employee file | key: uploadEmployeeFile
Input | Default | Notes | Example |
---|---|---|---|
Category ID string / Required categoryId | 20 | ||
Connection connection / Required connection | |||
Employee ID string / Required employeeId | 42 | ||
File contents string / Required file | |||
File Name string / Required fileName | example.pdf | ||
Share? boolean share | false |