BambooHR Automation via Rube MCP
Automate BambooHR human resources operations through Composio's BambooHR toolkit via Rube MCP.
Prerequisites
- Rube MCP must be connected (RUBE_SEARCH_TOOLS available)
- Active BambooHR connection via
RUBE_MANAGE_CONNECTIONS with toolkit bamboohr
- Always call
RUBE_SEARCH_TOOLS first to get current tool schemas
Setup
Get Rube MCP: Add https://rube.app/mcp as an MCP server in your client configuration. No API keys needed — just add the endpoint and it works.
- Verify Rube MCP is available by confirming
RUBE_SEARCH_TOOLS responds
- Call
RUBE_MANAGE_CONNECTIONS with toolkit bamboohr
- If connection is not ACTIVE, follow the returned auth link to complete BambooHR authentication
- Confirm connection status shows ACTIVE before running any workflows
Core Workflows
1. List and Search Employees
When to use: User wants to find employees or get the full employee directory
Tool sequence:
BAMBOOHR_GET_ALL_EMPLOYEES - Get the employee directory [Required]
BAMBOOHR_GET_EMPLOYEE - Get detailed info for a specific employee [Optional]
Key parameters:
- For GET_ALL_EMPLOYEES: No required parameters; returns directory
- For GET_EMPLOYEE:
id: Employee ID (numeric)
fields: Comma-separated list of fields to return (e.g., 'firstName,lastName,department,jobTitle')
Pitfalls:
- Employee IDs are numeric integers
- GET_ALL_EMPLOYEES returns basic directory info; use GET_EMPLOYEE for full details
- The
fields parameter controls which fields are returned; omitting it may return minimal data
- Common fields: firstName, lastName, department, division, jobTitle, workEmail, status
- Inactive/terminated employees may be included; check
status field
2. Track Employee Changes
When to use: User wants to detect recent employee data changes for sync or auditing
Tool sequence:
BAMBOOHR_EMPLOYEE_GET_CHANGED - Get employees with recent changes [Required]
Key parameters:
since: ISO 8601 datetime string for change detection threshold
type: Type of changes to check (e.g., 'inserted', 'updated', 'deleted')
Pitfalls:
since parameter is required; use ISO 8601 format (e.g., '2024-01-15T00:00:00Z')
- Returns IDs of changed employees, not full employee data
- Must call GET_EMPLOYEE separately for each changed employee's details
- Useful for incremental sync workflows; cache the last sync timestamp
3. Manage Time-Off
When to use: User wants to view time-off balances, request time off, or manage requests
Tool sequence:
BAMBOOHR_GET_META_TIME_OFF_TYPES - List available time-off types [Prerequisite]
BAMBOOHR_GET_TIME_OFF_BALANCES - Check current balances [Optional]
BAMBOOHR_GET_TIME_OFF_REQUESTS - List existing requests [Optional]
BAMBOOHR_CREATE_TIME_OFF_REQUEST - Submit a new request [Optional]
BAMBOOHR_UPDATE_TIME_OFF_REQUEST - Modify or approve/deny a request [Optional]
Key parameters:
- For balances:
employeeId, time-off type ID
- For requests:
start, end (date range), employeeId
- For creation:
employeeId: Employee to request for
timeOffTypeId: Type ID from GET_META_TIME_OFF_TYPES
start: Start date (YYYY-MM-DD)
end: End date (YYYY-MM-DD)
amount: Number of days/hours
notes: Optional notes for the request
- For update:
requestId, status ('approved', 'denied', 'cancelled')
Pitfalls:
- Time-off type IDs are numeric; resolve via GET_META_TIME_OFF_TYPES first
- Date format is 'YYYY-MM-DD' for start and end dates
- Balances may be in hours or days depending on company configuration
- Request status updates require appropriate permissions (manager/admin)
- Creating a request does NOT auto-approve it; separate approval step needed
4. Update Employee Information
When to use: User wants to modify employee profile data
Tool sequence:
BAMBOOHR_GET_EMPLOYEE - Get current employee data [Prerequisite]
BAMBOOHR_UPDATE_EMPLOYEE - Update employee fields [Required]
Key parameters:
id: Employee ID (numeric, required)
- Field-value pairs for the fields to update (e.g.,
department, jobTitle, workPhone)
Pitfalls:
- Only fields included in the request are updated; others remain unchanged
- Some fields are read-only and cannot be updated via API
- Field names must match BambooHR's expected field names exactly
- Updates are audited; changes appear in the employee's change history
- Verify current values with GET_EMPLOYEE before updating to avoid overwriting
5. Manage Dependents and Benefits
When to use: User wants to view employee dependents or benefit coverage
Tool sequence:
BAMBOOHR_DEPENDENTS_GET_ALL - List all dependents [Required]
BAMBOOHR_BENEFIT_GET_COVERAGES - Get benefit coverage details [Optional]
Key parameters:
- For dependents: Optional
employeeId filter
- For benefits: Depends on schema; check RUBE_SEARCH_TOOLS for current parameters
Pitfalls:
- Dependent data includes sensitive PII; handle with appropriate care
- Benefit coverages may include multiple plan types per employee
- Not all BambooHR plans include benefits administration; check account features
- Data access depends on API key permissions
Common Patterns
ID Resolution
Employee name -> Employee ID:
1. Call BAMBOOHR_GET_ALL_EMPLOYEES
2. Find employee by name in directory results
3. Extract id (numeric) for detailed operations
Time-off type name -> Type ID:
1. Call BAMBOOHR_GET_META_TIME_OFF_TYPES
2. Find type by name (e.g., 'Vacation', 'Sick Leave')
3. Extract id for time-off requests
Incremental Sync Pattern
For keeping external systems in sync with BambooHR:
1. Store last_sync_timestamp
2. Call BAMBOOHR_EMPLOYEE_GET_CHANGED with since=last_sync_timestamp
3. For each changed employee ID, call BAMBOOHR_GET_EMPLOYEE
4. Process updates in external system
5. Update last_sync_timestamp
Time-Off Workflow
1. GET_META_TIME_OFF_TYPES -> find type ID
2. GET_TIME_OFF_BALANCES -> verify available balance
3. CREATE_TIME_OFF_REQUEST -> submit request
4. UPDATE_TIME_OFF_REQUEST -> approve/deny (manager action)
Known Pitfalls
Employee IDs:
- Always numeric integers
- Resolve names to IDs via GET_ALL_EMPLOYEES
- Terminated employees retain their IDs
Date Formats:
- Time-off dates: 'YYYY-MM-DD'
- Change detection: ISO 8601 with timezone
- Inconsistent formats between endpoints; check each endpoint's schema
Permissions:
- API key permissions determine accessible fields and operations
- Some operations require admin or manager-level access
- Time-off approvals require appropriate role permissions
Sensitive Data:
- Employee data includes PII (names, addresses, SSN, etc.)
- Handle all responses with appropriate security measures
- Dependent data is especially sensitive
Rate Limits:
- BambooHR API has rate limits per API key
- Bulk operations should be throttled
- GET_ALL_EMPLOYEES is more efficient than individual GET_EMPLOYEE calls
Response Parsing:
- Response data may be nested under
data key
- Employee fields vary based on
fields parameter
- Empty fields may be omitted or returned as null
- Parse defensively with fallbacks
Quick Reference
| Task |
Tool Slug |
Key Params |
| List all employees |
BAMBOOHR_GET_ALL_EMPLOYEES |
(none) |
| Get employee details |
BAMBOOHR_GET_EMPLOYEE |
id, fields |
| Track changes |
BAMBOOHR_EMPLOYEE_GET_CHANGED |
since, type |
| Time-off types |
BAMBOOHR_GET_META_TIME_OFF_TYPES |
(none) |
| Time-off balances |
BAMBOOHR_GET_TIME_OFF_BALANCES |
employeeId |
| List time-off requests |
BAMBOOHR_GET_TIME_OFF_REQUESTS |
start, end, employeeId |
| Create time-off request |
BAMBOOHR_CREATE_TIME_OFF_REQUEST |
employeeId, timeOffTypeId, start, end |
| Update time-off request |
BAMBOOHR_UPDATE_TIME_OFF_REQUEST |
requestId, status |
| Update employee |
BAMBOOHR_UPDATE_EMPLOYEE |
id, (field updates) |
| List dependents |
BAMBOOHR_DEPENDENTS_GET_ALL |
employeeId |
| Benefit coverages |
BAMBOOHR_BENEFIT_GET_COVERAGES |
(check schema) |
When to Use
This skill is applicable to execute the workflow or actions described in the overview.
Limitations
- Use this skill only when the task clearly matches the scope described above.
- Do not treat the output as a substitute for environment-specific validation, testing, or expert review.
- Stop and ask for clarification if required inputs, permissions, safety boundaries, or success criteria are missing.
Source: sickn33/agentic-awesome-skills → skills/bamboohr-automation/SKILL.md
Also appears in: sickn33/agentic-awesome-skills/plugins/agentic-awesome-skills/skills/bamboohr-automation/SKILL.md, sickn33/agentic-awesome-skills/plugins/agentic-awesome-skills-claude/skills/bamboohr-automation/SKILL.md
1---2name: bamboohr-automation3description: Automate BambooHR tasks via Rube MCP (Composio): employees, time-off, benefits, dependents, employee updates. Always search tools first for current schemas.4---567# BambooHR Automation via Rube MCP89Automate BambooHR human resources operations through Composio's BambooHR toolkit via Rube MCP.1011## Prerequisites1213- Rube MCP must be connected (RUBE_SEARCH_TOOLS available)14- Active BambooHR connection via `RUBE_MANAGE_CONNECTIONS` with toolkit `bamboohr`15- Always call `RUBE_SEARCH_TOOLS` first to get current tool schemas1617## Setup1819**Get Rube MCP**: Add `https://rube.app/mcp` as an MCP server in your client configuration. No API keys needed — just add the endpoint and it works.2021221. Verify Rube MCP is available by confirming `RUBE_SEARCH_TOOLS` responds232. Call `RUBE_MANAGE_CONNECTIONS` with toolkit `bamboohr`243. If connection is not ACTIVE, follow the returned auth link to complete BambooHR authentication254. Confirm connection status shows ACTIVE before running any workflows2627## Core Workflows2829### 1. List and Search Employees3031**When to use**: User wants to find employees or get the full employee directory3233**Tool sequence**:341. `BAMBOOHR_GET_ALL_EMPLOYEES` - Get the employee directory [Required]352. `BAMBOOHR_GET_EMPLOYEE` - Get detailed info for a specific employee [Optional]3637**Key parameters**:38- For GET_ALL_EMPLOYEES: No required parameters; returns directory39- For GET_EMPLOYEE:40 - `id`: Employee ID (numeric)41 - `fields`: Comma-separated list of fields to return (e.g., 'firstName,lastName,department,jobTitle')4243**Pitfalls**:44- Employee IDs are numeric integers45- GET_ALL_EMPLOYEES returns basic directory info; use GET_EMPLOYEE for full details46- The `fields` parameter controls which fields are returned; omitting it may return minimal data47- Common fields: firstName, lastName, department, division, jobTitle, workEmail, status48- Inactive/terminated employees may be included; check `status` field4950### 2. Track Employee Changes5152**When to use**: User wants to detect recent employee data changes for sync or auditing5354**Tool sequence**:551. `BAMBOOHR_EMPLOYEE_GET_CHANGED` - Get employees with recent changes [Required]5657**Key parameters**:58- `since`: ISO 8601 datetime string for change detection threshold59- `type`: Type of changes to check (e.g., 'inserted', 'updated', 'deleted')6061**Pitfalls**:62- `since` parameter is required; use ISO 8601 format (e.g., '2024-01-15T00:00:00Z')63- Returns IDs of changed employees, not full employee data64- Must call GET_EMPLOYEE separately for each changed employee's details65- Useful for incremental sync workflows; cache the last sync timestamp6667### 3. Manage Time-Off6869**When to use**: User wants to view time-off balances, request time off, or manage requests7071**Tool sequence**:721. `BAMBOOHR_GET_META_TIME_OFF_TYPES` - List available time-off types [Prerequisite]732. `BAMBOOHR_GET_TIME_OFF_BALANCES` - Check current balances [Optional]743. `BAMBOOHR_GET_TIME_OFF_REQUESTS` - List existing requests [Optional]754. `BAMBOOHR_CREATE_TIME_OFF_REQUEST` - Submit a new request [Optional]765. `BAMBOOHR_UPDATE_TIME_OFF_REQUEST` - Modify or approve/deny a request [Optional]7778**Key parameters**:79- For balances: `employeeId`, time-off type ID80- For requests: `start`, `end` (date range), `employeeId`81- For creation:82 - `employeeId`: Employee to request for83 - `timeOffTypeId`: Type ID from GET_META_TIME_OFF_TYPES84 - `start`: Start date (YYYY-MM-DD)85 - `end`: End date (YYYY-MM-DD)86 - `amount`: Number of days/hours87 - `notes`: Optional notes for the request88- For update: `requestId`, `status` ('approved', 'denied', 'cancelled')8990**Pitfalls**:91- Time-off type IDs are numeric; resolve via GET_META_TIME_OFF_TYPES first92- Date format is 'YYYY-MM-DD' for start and end dates93- Balances may be in hours or days depending on company configuration94- Request status updates require appropriate permissions (manager/admin)95- Creating a request does NOT auto-approve it; separate approval step needed9697### 4. Update Employee Information9899**When to use**: User wants to modify employee profile data100101**Tool sequence**:1021. `BAMBOOHR_GET_EMPLOYEE` - Get current employee data [Prerequisite]1032. `BAMBOOHR_UPDATE_EMPLOYEE` - Update employee fields [Required]104105**Key parameters**:106- `id`: Employee ID (numeric, required)107- Field-value pairs for the fields to update (e.g., `department`, `jobTitle`, `workPhone`)108109**Pitfalls**:110- Only fields included in the request are updated; others remain unchanged111- Some fields are read-only and cannot be updated via API112- Field names must match BambooHR's expected field names exactly113- Updates are audited; changes appear in the employee's change history114- Verify current values with GET_EMPLOYEE before updating to avoid overwriting115116### 5. Manage Dependents and Benefits117118**When to use**: User wants to view employee dependents or benefit coverage119120**Tool sequence**:1211. `BAMBOOHR_DEPENDENTS_GET_ALL` - List all dependents [Required]1222. `BAMBOOHR_BENEFIT_GET_COVERAGES` - Get benefit coverage details [Optional]123124**Key parameters**:125- For dependents: Optional `employeeId` filter126- For benefits: Depends on schema; check RUBE_SEARCH_TOOLS for current parameters127128**Pitfalls**:129- Dependent data includes sensitive PII; handle with appropriate care130- Benefit coverages may include multiple plan types per employee131- Not all BambooHR plans include benefits administration; check account features132- Data access depends on API key permissions133134## Common Patterns135136### ID Resolution137138**Employee name -> Employee ID**:139```1401. Call BAMBOOHR_GET_ALL_EMPLOYEES1412. Find employee by name in directory results1423. Extract id (numeric) for detailed operations143```144145**Time-off type name -> Type ID**:146```1471. Call BAMBOOHR_GET_META_TIME_OFF_TYPES1482. Find type by name (e.g., 'Vacation', 'Sick Leave')1493. Extract id for time-off requests150```151152### Incremental Sync Pattern153154For keeping external systems in sync with BambooHR:155```1561. Store last_sync_timestamp1572. Call BAMBOOHR_EMPLOYEE_GET_CHANGED with since=last_sync_timestamp1583. For each changed employee ID, call BAMBOOHR_GET_EMPLOYEE1594. Process updates in external system1605. Update last_sync_timestamp161```162163### Time-Off Workflow164165```1661. GET_META_TIME_OFF_TYPES -> find type ID1672. GET_TIME_OFF_BALANCES -> verify available balance1683. CREATE_TIME_OFF_REQUEST -> submit request1694. UPDATE_TIME_OFF_REQUEST -> approve/deny (manager action)170```171172## Known Pitfalls173174**Employee IDs**:175- Always numeric integers176- Resolve names to IDs via GET_ALL_EMPLOYEES177- Terminated employees retain their IDs178179**Date Formats**:180- Time-off dates: 'YYYY-MM-DD'181- Change detection: ISO 8601 with timezone182- Inconsistent formats between endpoints; check each endpoint's schema183184**Permissions**:185- API key permissions determine accessible fields and operations186- Some operations require admin or manager-level access187- Time-off approvals require appropriate role permissions188189**Sensitive Data**:190- Employee data includes PII (names, addresses, SSN, etc.)191- Handle all responses with appropriate security measures192- Dependent data is especially sensitive193194**Rate Limits**:195- BambooHR API has rate limits per API key196- Bulk operations should be throttled197- GET_ALL_EMPLOYEES is more efficient than individual GET_EMPLOYEE calls198199**Response Parsing**:200- Response data may be nested under `data` key201- Employee fields vary based on `fields` parameter202- Empty fields may be omitted or returned as null203- Parse defensively with fallbacks204205## Quick Reference206207| Task | Tool Slug | Key Params |208|------|-----------|------------|209| List all employees | BAMBOOHR_GET_ALL_EMPLOYEES | (none) |210| Get employee details | BAMBOOHR_GET_EMPLOYEE | id, fields |211| Track changes | BAMBOOHR_EMPLOYEE_GET_CHANGED | since, type |212| Time-off types | BAMBOOHR_GET_META_TIME_OFF_TYPES | (none) |213| Time-off balances | BAMBOOHR_GET_TIME_OFF_BALANCES | employeeId |214| List time-off requests | BAMBOOHR_GET_TIME_OFF_REQUESTS | start, end, employeeId |215| Create time-off request | BAMBOOHR_CREATE_TIME_OFF_REQUEST | employeeId, timeOffTypeId, start, end |216| Update time-off request | BAMBOOHR_UPDATE_TIME_OFF_REQUEST | requestId, status |217| Update employee | BAMBOOHR_UPDATE_EMPLOYEE | id, (field updates) |218| List dependents | BAMBOOHR_DEPENDENTS_GET_ALL | employeeId |219| Benefit coverages | BAMBOOHR_BENEFIT_GET_COVERAGES | (check schema) |220221## When to Use222This skill is applicable to execute the workflow or actions described in the overview.223224## Limitations225- Use this skill only when the task clearly matches the scope described above.226- Do not treat the output as a substitute for environment-specific validation, testing, or expert review.227- Stop and ask for clarification if required inputs, permissions, safety boundaries, or success criteria are missing.228229---230231**Source:** [`sickn33/agentic-awesome-skills`](https://github.com/sickn33/agentic-awesome-skills) → `skills/bamboohr-automation/SKILL.md`232233**Also appears in:** `sickn33/agentic-awesome-skills/plugins/agentic-awesome-skills/skills/bamboohr-automation/SKILL.md`, `sickn33/agentic-awesome-skills/plugins/agentic-awesome-skills-claude/skills/bamboohr-automation/SKILL.md`