# BambooHR AI employee

Viktor works in BambooHR for you. Ask in Slack or Microsoft Teams.

Viktor is an AI employee that connects to BambooHR and helps you manage payroll, benefits, and employee operations, running 51 BambooHR actions for you like Clock In, Clock Out, and Get Employee. Ask in plain English from your workspace; Viktor does the work in BambooHR and reports back. Viktor connects with an API key.

- Tool: BambooHR
- Category: Productivity
- Connection: API key
- Actions available: 51
- Currently available in: Slack, Microsoft Teams, and Discord
- Page: https://viktor.com/integrations/bamboohr

## What can your AI employee do in BambooHR?

Viktor connects to your BambooHR account and completes work in it. He doesn't just answer questions about BambooHR, he takes the actions on your behalf and delivers the finished result to your workspace.

Unlike workflow builders such as Zapier or Make, there is nothing to configure - no triggers to map, no workflows to maintain. You describe the outcome in plain English, and Viktor picks the right BambooHR actions, chains them with the other 9,800+ tools he connects to, and asks for approval before anything sensitive runs.

### About BambooHR

BambooHR is the #1 online HR Software for small and medium businesses that have outgrown spreadsheets.

### How a run works

1. **You ask in your workspace** - Describe what you need in plain English
2. **Viktor picks the actions** - Selects from 51 BambooHR actions, chains them together
3. **Runs in BambooHR** - Helps you manage payroll, benefits, and employee operations - your real data.
4. **Reports back** - Delivers the finished result to your workspace

## Use BambooHR from Slack and Microsoft Teams

Message Viktor in a Slack channel, a Microsoft Teams chat or a direct message. He opens BambooHR, does the work and posts the result in the same thread, so nobody has to switch tabs.

He can also run BambooHR work on a schedule, like a weekly BambooHR summary posted to your team's channel. Anything sensitive waits for your approval before it runs.

## Security and permissions

- API key - Viktor stores your key encrypted, uses it only for the actions you ask for, and you can revoke it at any time.
- Review-first approvals: sensitive BambooHR actions wait for your sign-off before they run.
- Isolated compute per team, encrypted in transit and at rest - and your data is never used to train models.
- SOC 2 Type 1 compliant, with Type 2 and ISO 27001 in progress.
- Viktor is not affiliated with or endorsed by BambooHR.

## What can you ask Viktor to do in BambooHR?

- "Check BambooHR for this week's time-off requests and summarize who's out."
- "Run payroll for this pay period in BambooHR and confirm it processed."
- "Watch BambooHR for a new hire's paperwork and remind them what's still missing."
- "Pull this month's headcount and turnover from BambooHR and post it every month."

## How does Viktor work with BambooHR?

1. Open Viktor in a supported workspace.
2. Connect BambooHR with an API key - Viktor handles authentication.
3. Ask in plain English. Viktor runs the BambooHR actions, chains them with your other tools when needed, and reports back. Sensitive actions wait for your approval.

## What can Viktor do in BambooHR? (51 actions)

- **Add Application Comment** - Add a comment to an application.
- **Adjust Time Off Balance** - Create a balance adjustment for an employee's time off type, recorded as an override history item. Cannot adjust discretionary (unlimited) time off types. Use Get Time Off Balance to check current balances and List Time Off Types for a valid type ID first.
- **Approve Time Off Request** - Approve a time off request, completing the caller's step in the approval chain — or every remaining step when Bypass is true. Fails with 409 if the request is not currently REQUESTED. Use List Time Off Requests to find the request ID.
- **Approve Timesheet** - Approve a timesheet. Only approval is supported by the API; there is no reject/deny endpoint. lastChangedAt must be the timesheet's hoursLastChangedAt value from Get Timesheet.
- **Cancel Time Off Request** - Cancel a time off request. Available to the requester and anyone with authority to manage it; a request can be canceled while REQUESTED, and after approval only if it hasn't started yet. Takes no request body. Use List Time Off Requests to find the request ID.
- **Change Time Off Request Status** - Change the status of a time off request, including cancellation. Setting status to canceled cancels the request; this same endpoint covers both status changes and cancellation. Use List Time Off Requests to find request IDs.
- **Clock In** - Clock an employee in in real time. This is a separate endpoint from Clock Out. For manual/retroactive entries use Create Clock Entry.
- **Clock Out** - Clock an employee out in real time. Separate endpoint from Clock In; returns 409 if the employee is not currently clocked in.
- **Create Clock Entry** - Create a manual/retroactive clock entry with explicit start and end. For real-time punches use Clock In / Clock Out instead.
- **Create Employee** - Create a new employee. firstName and lastName are required; any other valid writable field can be supplied via Additional Fields. Returns a Location header with the new employee ID.
- **Create Hour Entry** - Create a time-tracking hour entry. Records worked hours for an employee on a date.
- **Create Hour Record** - Add a single approved hour record to the legacy Hours API, separate from Time Tracking timesheets — use Create Hour Entry instead for timesheet-integrated hours. You choose the record's ID; save it to update or delete this record later with Update Hour Record / Delete Hour Record.
- **Create or Update Hour Records** - Bulk add or edit approved hour records in the legacy Hours API. Records whose ID already exists are updated; unrecognized IDs are created. The API can return HTTP 201 even when individual items fail validation — check each item's success flag in the response. Use Create Hour Record for a single record.
- **Create Time Off Request Comment** - Add a comment to a time off request. Use List Time Off Requests to find the request ID and List Time Off Request Comments to review the existing thread first.
- **Create Time Off Request** - Create a time off request for an employee. Use List Time Off Types to find a valid time off type ID and Get Employees Directory for the employee ID.
- **Delete Clock Entry** - Permanently delete a clock entry. Idempotent (returns 204); returns 409 if the entry belongs to an approved timesheet or is still open. Use List Clock Entries to find IDs.
- **Delete Employee** - Permanently delete an employee record and all associated data. This cannot be undone. Use Get Employees Directory or Get Employee to find the employee ID first.
- **Delete Hour Entry** - Permanently delete a time-tracking hour entry. Idempotent (returns 204); returns 409 if the entry belongs to an approved timesheet. Use List Hour Entries to find IDs.
- **Delete Hour Record** - Permanently delete a legacy Hours API record and all its stored revisions. This cannot be undone. Use Get Time Tracking Record to confirm the ID first.
- **Deny Time Off Request** - Deny a time off request. A single denial is final — it discards any remaining approval steps, so the request always ends in DENIED status. Fails with 409 if the request is not currently REQUESTED. Use List Time Off Requests to find the request ID.
- **Download Resume** - Download a resume from an application.
- **Get Application** - Get an application by its application ID. Use List Applications to find the application ID before retrieving the full application details.
- **Get Clock Entry** - Get a single clock entry by ID. While the entry is open, end and clockOutLocation are null. Use List Clock Entries to find IDs.
- **Get Company Report** - Get a saved company report by ID. Report IDs are company-specific. In JSON, returns {title, fields, employees}.
- **Get Employee File** - Download a single employee file and save it to /tmp. Use List Employee Files to discover file IDs.
- **Get Employee** - Get a single employee record. Only id is returned unless you request fields. Use Get Employees Directory to find an employee ID. Pass 0 as the ID to fetch the authenticated user.
- **Get Employees Directory** - Get the company employee directory from BambooHR. Returns the company-configured fieldset for every employee in the published directory; filter client-side, or use fields to keep the response small. The directory may omit inactive/former employees and anyone the company excludes from sharing, so it is not an authoritative employee roster. Use this to discover employee IDs before calling Get Employee, Update Employee, or time-tracking actions.
- **Get Time Off Balance** - Get time off balances for an employee as of a date. Returns one entry per assigned policy. Run Get Employees Directory to find the employee ID.
- **Get Time Tracking Record** - Get a legacy Hours API time-tracking record by ID. Returns hours, date, employee, project, task, and shift differential. Note: missing records may return an empty/null payload rather than 404.
- **Get Timesheet** - Get a single timesheet by ID. Returns derived status (OPEN, PENDINGAPPROVAL, APPROVED) and type. Use List Timesheets to find IDs.
- **List Application ID Options** - Retrieves available application IDs for use with applicant-tracking actions.
- **List Applications** - List all applications.
- **List Changed Employees** - List employee IDs that changed since a given time. Returns employeeId, change type, and last-changed timestamp per entry.
- **List Clock Entries** - List time-tracking clock entries with optional OData filtering. An entry with a null end is still open, so this action also serves to check clocked-in status (filter by employeeId and inspect end). Use returned IDs with Get Clock Entry and Delete Clock Entry.
- **List Company Holidays** - List company holidays with optional OData filtering, sorting, and pagination.
- **List Employee Files** - List file metadata (grouped by category) for an employee. Use the returned file IDs with Get Employee File. Run Get Employees Directory to find the employee ID.
- **List Employees** - List employees with optional filtering, sorting, and cursor-based pagination. Every record includes employeeId, firstName, lastName, preferredName, photoUrl, jobTitleName, status, and restrictedFields by default; use fields for more. Restricted fields you can't read return null and are listed in restrictedFields.
- **List Hour Entries** - List time-tracking hour entries with optional OData filtering. Use returned IDs with Delete Hour Entry.
- **List Job ID Options** - Retrieves available job IDs for use with applicant-tracking actions.
- **List Status ID Options** - Retrieves available application status IDs for use with applicant-tracking actions.
- **List Time Off Policies** - List all non-deleted company time off policies, sorted alphabetically by name. Each policy is accruing, discretionary, or manual and links to a time off type. Use List Time Off Types for the type-level metadata; use Adjust Time Off Balance to modify balances for the type a policy is tied to.
- **List Time Off Request Comments** - List the comments on a time off request, oldest first. An empty thread returns an empty array. Use List Time Off Requests to find the request ID; use Create Time Off Request Comment to add one.
- **List Time Off Requests** - List time off requests within a date range. To fetch your own requests, set the Action parameter to myRequests (passing employeeId=0 returns an empty array). Use List Time Off Types to find type IDs.
- **List Time Off Types** - List active company time off types plus the default hours-per-day. Use the returned type IDs with Create Time Off Request and List Time Off Requests.
- **List Timesheet Entries** - List legacy timesheet entries grouped by employee within a date range. Dates must be within the last 365 days.
- **List Timesheets** - List timesheets with optional OData filtering and sorting. Status values are OPEN, PENDINGAPPROVAL, APPROVED. Use returned IDs with Get Timesheet and Approve Timesheet.
- **List Who's Out** - List a date-sorted feed of employees who are out and company holidays for a period. Returns 403 if the Who's Out feature is disabled for the account.
- **Update Application Status** - Update the status of an application. Not every status returned by List Status ID Options is a valid transition from the application's current status — an \"Invalid status\" error means the target stage isn't reachable from here; check the application's current status and try an adjacent stage.
- **Update Employee** - Update fields on an existing employee. Only supplied fields are changed; unknown field names are silently ignored. Use Get Employees Directory to find the employee ID.
- **Update Hour Record** - Edit an existing legacy Hours API record's hours worked and links. Send the corrected total hours worked, not a delta. Use Get Time Tracking Record to check current values first.
- **Update Time Off Request** - Update an existing time off request using merge-patch semantics — only the fields you set are changed. Fails with 409 if the request is denied, canceled, or already-started/approved. Editing a request while it's still REQUESTED replaces it with a new request, restarting its approval workflow; the returned id may differ from the one in the path, and the original id then returns 410 on subsequent calls. Use the id from this action's response for later steps. Use List Time Off Requests to find the request ID; use Approve Time Off Request / Deny Time Off Request / Cancel Time Off Request for status changes instead.

## Viktor uses BambooHR together with

- [Slack](https://viktor.com/integrations/slack)
- [Gmail](https://viktor.com/integrations/gmail)
- [Google Sheets](https://viktor.com/integrations/google-sheets)
- [HubSpot](https://viktor.com/integrations/hubspot)
- [Salesforce](https://viktor.com/integrations/salesforce)
- [Stripe](https://viktor.com/integrations/stripe)

## More Productivity integrations

- [GitHub](https://viktor.com/integrations/github)
- [Jira & Confluence](https://viktor.com/integrations/jira-confluence)
- [Asana](https://viktor.com/integrations/asana)
- [Monday.com](https://viktor.com/integrations/monday-com)
- [Linear](https://viktor.com/integrations/linear)
- [Notion](https://viktor.com/integrations/notion)
- [Miro](https://viktor.com/integrations/miro)
- [ServiceM8](https://viktor.com/integrations/servicem8)

## FAQ

### Does Viktor integrate with BambooHR?

Yes. BambooHR is one of the 9,800+ tools Viktor connects to, with an API key. Once connected, anyone on your team can put Viktor to work in BambooHR from their workspace - no workflow builder, no code.

### How do I connect BambooHR to Viktor?

Ask Viktor in your workspace to connect BambooHR, then paste an API key from your BambooHR account when prompted. Viktor stores the key encrypted, uses it only for the actions you ask for, and you can revoke it at any time. Setup takes about two minutes.

### What can Viktor do in BambooHR?

Viktor can run 51 BambooHR actions, including Clock In, Clock Out, and Get Employee - and chain them with other tools in a single request. In practice that means Viktor helps you manage payroll, benefits, and employee operations. If a task spans several actions, Viktor plans the sequence itself and reports back when the work is done.

### Do I need to build workflows for BambooHR?

No. Viktor isn't a workflow builder - there are no triggers to map and nothing to maintain. You ask for the outcome in plain English in your workspace, and Viktor decides which BambooHR actions to take, runs them, and reports back.

### Is my BambooHR data secure with Viktor?

Yes. Viktor connects to BambooHR with an API key, runs in an isolated environment per team, and never trains models on your data. Sensitive actions wait for your approval, and you can revoke access at any time. Viktor is SOC 2 Type 1 compliant, with Type 2 and ISO 27001 in progress.

### How much does the BambooHR integration cost?

Nothing extra - every integration, including BambooHR, is available on every plan. You can start free with up to $100 in credits, no credit card required; the Team plan is $100 a month.

### Can Viktor use BambooHR together with my other tools?

Yes - that's the point. Viktor connects to 9,800+ tools and works across them in a single run: he can pull data from BambooHR, cross-reference it with another tool - for example Slack or Gmail, and deliver the finished result in your workspace.

## Get started

Viktor is free to start - up to $100 in credits, no credit card required. All 9,800+ integrations are included on every plan. Sign up at https://viktor.com or browse all integrations at https://viktor.com/integrations.
