This article describes the triggers and actions available when you connect BambooHR to HappyFox Workflows, and lists the HR operations you can automate with this integration.
Applicable Plans: ✔️ Basic ✔️ Team ✔️ Pro ✔️ Enterprise
Triggers
BambooHR triggers allow HappyFox Workflows to start automatically when employee lifecycle events occur in BambooHR. Use these triggers to connect HR events to support and IT processes without manual handoff.
| Trigger | When it fires |
|---|---|
| New Employee Started | Fires on the employee's start date when their status becomes active in BambooHR, not when the record is first created. |
| New Time Off Request Created | An employee submits a new time off request in BambooHR. |
| Time Off Request Status Update | The status of an existing time off request changes in BambooHR — for example, from pending to approved or declined. |
Trigger Details
All three BambooHR triggers are scheduled triggers — they run automatically on a recurring schedule and require no configuration fields. When a trigger fires, the matching event data from BambooHR is made available to the rest of the workflow as trigger output. Each trigger also has built-in deduplication, using a cache keyed on the event's unique identifiers, so the same event is never fired twice for the same workflow.
New Employee Started
Fires on each scheduled run when one or more employees have a hire date that matches today's date in BambooHR. The trigger fetches the full employee list, filters for employees whose hireDate equals today, and starts a workflow execution for each match.
No configurable fields.
Note on deduplication: Each employee is identified by
{id}_{hireDate}. Once a workflow has been triggered for a given employee on their hire date, the event is cached and won't fire again for that same employee during the same day. The cache expires after the hire date plus a 2-day buffer.
| Field | Description |
|---|---|
id |
BambooHR employee ID. |
firstName / lastName |
Employee's name. |
displayName / fullName1–5 |
Various display name formats. |
hireDate |
The employee's start date (YYYY-MM-DD). |
workEmail |
Work email address. |
homeEmail |
Personal email address. |
department / division / location |
Org placement. |
jobTitle |
Job title. |
status / employmentStatus / employmentHistoryStatus |
Employment status. |
supervisor / supervisorId / supervisorEmail |
Direct manager details. |
dateOfBirth / gender / maritalStatus / ethnicity |
Personal profile. |
address1, address2, city, state, zipcode, country |
Home address. |
workPhone / homePhone / mobilePhone |
Phone numbers. |
payRate / payType / payGroup |
Compensation info. |
hireDate / terminationDate / rehireDate |
Key employment dates. |
New Time Off Request Created
Fires on each scheduled run when one or more time-off requests were created in BambooHR today. The trigger uses a ±1-day window to account for timezone differences, scans all time-off requests spanning the next 30 days from the current date, and filters for those whose created date falls within the window.
No configurable fields.
Note on deduplication: Each request is identified by
{id}_{created}. The cache expires at the request's end date plus a 2-day buffer, so a newly created request only triggers the workflow once.
| Field | Description |
|---|---|
id |
BambooHR time-off request ID. |
employeeId |
The ID of the employee who made the request. |
start |
Start date of the time-off period (YYYY-MM-DD). |
end |
End date of the time-off period (YYYY-MM-DD). |
created |
Date the request was created (YYYY-MM-DD). |
amount |
Total time-off amount (hours or days, depending on type). |
type.id / type.name |
Time-off type details. |
status.status |
Current status of the request (for example, requested, approved, denied). |
status.lastChanged |
Date the status was last changed (YYYY-MM-DD). |
notes.employee / notes.manager |
Notes from the employee and manager. |
Time Off Request Status Update
Fires on each scheduled run when one or more time-off requests have had their status changed today (using the same ±1-day window), and the new status is not requested. This means the trigger fires for approvals, denials, cancellations, and any other status transitions — but not for newly created (still-pending) requests, which are handled by New Time Off Request Created instead.
No configurable fields.
Note on deduplication: Each status change is identified by
{id}_{status.status}. If a request changes status more than once (for example, approved then cancelled), each distinct status value can trigger the workflow once. The cache expires at the request's end date plus a 2-day buffer.
Data available: the same fields as New Time Off Request Created above, with status.status reflecting the updated status and status.lastChanged reflecting when this particular status change occurred.
Actions
BambooHR actions let you create, update, and retrieve employee records and leave requests directly from a workflow step.
| Action | What it does |
|---|---|
| Get Employee Details | Retrieves an employee's profile information from BambooHR for use in subsequent workflow steps. |
| Add a time off request | Submits a new time off request in BambooHR on behalf of an employee. |
| Create Employee | Creates a new employee record in BambooHR. |
| Update Employee | Updates the fields of an existing employee record in BambooHR. |
Action Details
Each action below lists the fields you configure, along with whether each field is required.
Validation note legend
| Term | Meaning |
|---|---|
| Required | The workflow cannot run this action if the field is blank. |
| Required (one of) | At least one field in the group must be filled in. The action fails if all are blank. |
| Required (at least one) | At least one field from a set of profile fields must be provided. |
| Optional | You may leave this field empty; the action still runs. |
| Text | A plain-text value (single line or variable reference). |
| Date (Text) | A date value entered as text; the action automatically normalizes it to YYYY-MM-DD format. |
Employee Actions
Get Employee Details
Fetches a BambooHR employee's full profile and returns it for use in later workflow steps. Identify the employee by either their BambooHR Employee ID or their work email address. If only an email is given, the action first checks the cached employee list, then falls back to a live API call for employees added today if no match is found.
| Field | Description | Validation |
|---|---|---|
| Employee ID | The BambooHR numeric ID of the employee. | Required (one of Employee ID / Employee Email) · Text |
| Employee Email | The work email address of the employee. Used to look up their BambooHR ID when no Employee ID is provided. | Required (one of Employee ID / Employee Email) · Text |
Create Employee
Creates a new employee record in BambooHR. After a successful creation, the action automatically fetches and returns the full employee profile. Date of Birth and Hire Date are automatically normalized to YYYY-MM-DD format regardless of how they are supplied.
| Field | Description | Validation |
|---|---|---|
| First Name | The employee's first name. | Required · Text |
| Last Name | The employee's last name. | Required · Text |
| Date of Birth | The employee's date of birth. | Optional · Date (Text) |
| Address Line 1 | Street address line 1. | Optional · Text |
| Address Line 2 | Street address line 2 (apartment, suite, etc.). | Optional · Text |
| City | City of residence. | Optional · Text |
| State | State or province. | Optional · Text |
| Zip Code | Postal / ZIP code. | Optional · Text |
| Country | Country of residence. | Optional · Text |
| Hire Date | The employee's start / hire date. | Optional · Date (Text) |
| Work Email | The employee's work email address. | Optional · Text |
| Department | The department the employee belongs to. | Optional · Text |
Update Employee
Updates an existing BambooHR employee's profile. After a successful update, the action fetches and returns the refreshed employee profile. Date values are automatically normalized to YYYY-MM-DD.
Note: This action needs (a) at least one of Employee ID or Employee Email to identify the employee, and (b) at least one of the profile fields below to have something to update.
| Field | Description | Validation |
|---|---|---|
| Employee ID | The BambooHR numeric ID of the employee to update. | Required (one of Employee ID / Employee Email) · Text |
| Employee Email | Work email address used to look up the employee when no ID is provided. | Required (one of Employee ID / Employee Email) · Text |
| First Name | Updated first name. | Required (at least one profile field) · Text |
| Last Name | Updated last name. | Required (at least one profile field) · Text |
| Date of Birth | Updated date of birth. | Required (at least one profile field) · Date (Text) |
| Address Line 1 | Updated street address line 1. | Required (at least one profile field) · Text |
| Address Line 2 | Updated street address line 2. | Required (at least one profile field) · Text |
| City | Updated city. | Required (at least one profile field) · Text |
| State | Updated state or province. | Required (at least one profile field) · Text |
| Zip Code | Updated postal / ZIP code. | Required (at least one profile field) · Text |
| Country | Updated country. | Required (at least one profile field) · Text |
| Hire Date | Updated hire date. | Required (at least one profile field) · Date (Text) |
| Work Email | Updated work email. | Required (at least one profile field) · Text |
| Department | Updated department name. | Required (at least one profile field) · Text |
Time-Off Actions
Add a Time Off Request
Submits a time-off request for an employee in BambooHR. The time-off type is matched by name against the types configured in BambooHR. If you don't provide an amount, the action automatically calculates the number of hours (or days, depending on the time-off type's unit) based on the employee's work schedule, excluding company holidays. After a successful submission, the full request details are returned.
| Field | Description | Validation |
|---|---|---|
| Start Date | The first day of the time-off period. | Required · Date (Text) |
| End Date | The last day of the time-off period. | Required · Date (Text) |
| Time Off Type Name | The name of the time-off type as configured in BambooHR (for example, Vacation, Sick). The action looks up the matching type by this name and fails if no match is found. | Required · Text |
| Employee ID | The BambooHR numeric ID of the employee the request is for. | Required (one of Employee ID / Employee Email) · Text |
| Employee Email | Work email used to look up the employee ID when no Employee ID is provided. | Required (one of Employee ID / Employee Email) · Text |
| Amount | The total number of hours (or days) to request. If left blank, the action calculates this automatically based on the work schedule and company holidays between Start Date and End Date. | Optional · Text (numeric value) |
| Status | The initial status for the request. Defaults to requested if not provided. Common values: requested, approved. |
Optional · Text |
| Note | A note from the employee to attach to the time-off request. | Optional · Text |
Use cases
Automated IT onboarding ticket on new hire: When the New Employee Started trigger fires in BambooHR, automatically create an onboarding ticket in HappyFox Help Desk with the new employee's name, department, and start date — so IT has a trackable task to provision accounts and equipment without waiting for an email from HR.
Leave request approval notification to a manager: When a time off request is submitted in BambooHR, create a HappyFox Help Desk ticket or send a notification to the relevant manager — so approvals are tracked and actioned through a consistent process rather than handled informally.
Leave approval or decline confirmation to employee: When the status of a time off request changes in BambooHR — from pending to approved or declined — automatically add a reply or private note to the linked HappyFox ticket, keeping the employee's request record up to date without manual follow-up.
Employee record update triggering an IT review ticket: When an employee's department, role, or manager changes in BambooHR, automatically create a HappyFox Help Desk ticket to prompt the IT team to review and update the employee's system access and group memberships — reducing the risk of orphaned permissions after internal moves.
New hire record creation from an HR ticket: When an HR agent completes an onboarding intake ticket in HappyFox Help Desk, automatically create the new employee record in BambooHR using the details captured in the ticket — eliminating the manual re-entry of information already collected during the support interaction.
Offboarding ticket creation on employee departure: When an employee record is updated in BambooHR to reflect a departure date or status change, automatically create an offboarding ticket in HappyFox Help Desk — giving IT and HR a single trackable item to manage access revocation, equipment return, and exit formalities.