> For the complete documentation index, see [llms.txt](https://help.swarmia.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://help.swarmia.com/settings/integrations/hr-systems/bamboohr.md).

# BambooHR

Swarmia connects directly to BambooHR over OAuth to sync time off and match employees to Swarmia contributors.

## Why use the direct integration

* **No third-party data processor.** Swarmia reads from BambooHR directly, so your HR data doesn't pass through an intermediate vendor.
* **Same data, same product impact.** Approved time off feeds into developer effort metrics, FTE counts, investment balance, capitalization, and the work log.

## Requirements

* **Swarmia admin.** Connecting BambooHR requires a Swarmia admin in your organization.
* **BambooHR admin with a Swarmia account.** The person who completes the connection has to be a BambooHR administrator and have a Swarmia account, because the flow starts in Swarmia and ends with the OAuth consent step in BambooHR.
* **Work email on every employee.** Swarmia matches BambooHR employees to Swarmia contributors by their BambooHR *work email*. Employees without a work email won't sync, and their time off won't show up in Swarmia.

## Connect BambooHR

1. Go to **Settings** → [**HR system**](https://app.swarmia.com/settings/hr-system).
2. In the BambooHR row, click **Connect**.
3. Enter your BambooHR subdomain — the part before `.bamboohr.com` in your BambooHR URL. For example, if you sign in at `https://yourcompany.bamboohr.com`, the subdomain is `yourcompany`.
4. Click **Connect**. You'll be redirected to BambooHR to authorize the connection.
5. Approve the requested access. Swarmia requests three OAuth scopes:
   * `employee:contact` — to read work email for matching.
   * `time_off` — to read time off requests.
   * `offline_access` — to keep the connection alive without re-authorization.
6. After approval, you're redirected back to Swarmia. The status flips to **Connected** and the initial sync starts in the background.

The initial backfill usually completes within a few minutes.

## What Swarmia syncs

### Time off

* All time off entries from the last **2 years** through the next **1 month**, refreshed every **24 hours**. Entries already synced stay even after they age past the 2-year window.
* Only **approved** time off is used in product views. Requested, canceled, and other statuses are stored but never shown in metrics or the work log.
* **Time off type isn't read.** Swarmia doesn't fetch or store the category of a time off entry — vacation, sick leave, parental leave, and anything else are all treated the same.

### Employee data

* **Work email only.** Swarmia uses it to match each BambooHR employee to a Swarmia contributor.

Swarmia doesn't read names, addresses, compensation, or any other employee fields.

## Where the data shows up

* **Developer effort metrics** — approved time off reduces a person's available days, so effort scores reflect when people are actually working.
* **FTE counts** — feed into [investment balance](/features/focus/balance-engineering-investments.md) and [software capitalization](/features/capitalize-software-development-costs.md) reports.
* **Work log** — time off appears when work log is grouped by author.

See [Developer effort (FTEs)](/definitions/developer-effort-ftes.md) for how time off factors into the calculation.

## Check the connection status

The [HR system settings](https://app.swarmia.com/settings/hr-system) page shows the current status of the integration:

* **Connected** — the integration is healthy and syncing.
* **Disabled** — the integration has been turned off.

If BambooHR rejects a token refresh, Swarmia retries automatically before flagging the connection for re-authorization.

## Disconnect or reconnect

There's no in-product disconnect button yet. If you need to disconnect or reconnect BambooHR, [contact support](mailto:support@swarmia.com).

## Related

* [HR systems overview](/settings/integrations/hr-systems.md)
* [Upload time off data via CSV](/settings/integrations/hr-systems/upload-time-off-data-via-csv.md) — alternative when a direct integration isn't an option.
* [Time off API](/settings/integrations/swarmia-apis/time-off-api.md) — push time off into Swarmia programmatically.
* [Developer effort (FTEs)](/definitions/developer-effort-ftes.md)


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://help.swarmia.com/settings/integrations/hr-systems/bamboohr.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
