> ## Documentation Index
> Fetch the complete documentation index at: https://docs.parable.work/llms.txt
> Use this file to discover all available pages before exploring further.

# BambooHR

> Sync employee data from BambooHR

Sync employee data from BambooHR.

<Tabs>
  <Tab title="Overview">
    Connect Parable to BambooHR for comprehensive HR and people data.

    #### Employees

    Profiles, job information, contacts

    #### Time Off

    Balances, requests, policies

    ## Data streams

    This Provider Plugin defines 5 data streams.

    | Stream              | Description                               | Sync        |
    | ------------------- | ----------------------------------------- | ----------- |
    | `users`             | Employee directory listing all employees  | full        |
    | `time_off_policies` | Time off policies assigned to an employee | full        |
    | `employee_salaries` | Compensation details for an employee      | full        |
    | `timesheets`        | Time tracking timesheet entries           | incremental |
    | `time_off_requests` | Time off requests submitted by employees  | incremental |
  </Tab>

  <Tab title="Setup Guide">
    ### BambooHR

    #### What You'll Need

    | Credential    | What it is                       |
    | ------------- | -------------------------------- |
    | **API Key**   | Generated from BambooHR settings |
    | **Subdomain** | Your BambooHR subdomain          |

    > **Info:** **Setup access in BambooHR.** These steps require **Administrator**, or a colleague with equivalent permissions who can create credentials for you.
    >
    > If that is not you, ask your BambooHR administrator.

    * **Admin** access level in BambooHR
    * API key generation permission

    #### Step 1: Access Account Settings

    1. Log in to BambooHR
    2. Click your name in the lower left
    3. Select **API Keys**

    #### Step 2: Generate API Key

    1. Click **Add New Key**
    2. Name: `Parable Integration`
    3. Click **Generate Key**

    > **Warning:** **Copy your API key now!**
    >
    > This is the only time it will be displayed. Store it in a secure password manager before closing this page.

    #### Step 3: Note Your Subdomain

    Your BambooHR URL format:

    ```
    https://yourcompany.bamboohr.com
    ```

    Your subdomain is `yourcompany`.

    #### Step 4: Enter values in the form

    1. **Subdomain** and **API Key**: Enter your BambooHR subdomain and API key.
    2. Click **Save & test connection**.

    BambooHR uses Basic Auth with API key as username and `x` as password:

    ```bash Test Authentication theme={null}
    curl -u "YOUR_API_KEY:x" \
      "https://api.bamboohr.com/api/gateway.php/yourcompany/v1/employees/directory"
    ```

    ```bash Get Employee theme={null}
    curl -u "YOUR_API_KEY:x" \
      "https://api.bamboohr.com/api/gateway.php/yourcompany/v1/employees/0/?fields=firstName,lastName,jobTitle"
    ```

    > **Success:** **Success!** If you received a `200 OK` response with valid data, your credentials are configured correctly. You can now configure this Provider in Parable.

    > **Tip:** **Rate Limits:** BambooHR enforces rate limits of **varies; implement backoff for 429 responses**.
    >
    > Parable handles rate limiting automatically with exponential backoff, but initial syncs of large datasets may take longer due to these limits.
  </Tab>

  <Tab title="Permissions">
    <AccordionGroup>
      <Accordion id="provider-permission-tap-bamboo-employee-salaries-f4eba3111cfb" title="Employee Salaries" icon="receipt" iconType="sharp-duotone-solid">
        Developer identifier: `employee_salaries`

        **Employee Salaries.** Compensation details for an employee.

        * **Enables:** Match each employee's pay rate to its currency, pay basis, frequency, and effective date for HR record reconciliation.
        * **Scope:** Reads the records selected by BambooHR's `/v1/employees/{employee_id}/` operation as a snapshot stream using full synchronization. This stream is opt-in. Visibility follows the BambooHR API user's field-level access, so restricted employee attributes may be absent. Use is limited to authorized workforce and payroll reconciliation; the records are not invoices and do not support performance inference. A later complete read can treat a previously seen record that is absent as removed.

        <AccordionGroup>
          <Accordion id="provider-permission-field-bamboo-employee-salaries-currency-b7d240928b9d" title="Currency" icon="money-bill" iconType="sharp-duotone-solid">
            Developer identifier: `employee_salaries.currency`

            **Currency.** Currency code for the pay rate. It distinguishes the provider-defined currency state or classification for the employee salary.

            * **Enables:** Reconcile currency in `employee_salaries.currency` by pairing it with the same worker or position, currency, pay basis, and effective period.
            * **Interpretation:** BambooHR reports currency on each employee salary; missing and empty values can have different meanings. Use is limited to authorized workforce or payroll reconciliation and must not be used to infer employee performance. Any monetary amount is a provider HR or payroll record at its stated currency and pay basis, not an invoice.
          </Accordion>

          <Accordion id="provider-permission-field-bamboo-employee-salaries-employee-id-d48a6507b5d1" title="Employee ID" icon="folder-open" iconType="sharp-duotone-solid">
            Developer identifier: `employee_salaries.employee_id`

            **Employee ID.** Parent employee reference copied into each employee salary because the child operation does not return that relationship. It provides the reference needed to connect the employee salary to the corresponding provider object.

            * **Enables:** Match repeated employee salary entries on employee ID in `employee_salaries.employee_id`; collapse only entries that share this declared transform key.
            * **Interpretation:** Parable copies employee ID from the parent traversal record into each employee salary; the child BambooHR operation does not return it. The connector explicitly marks this field as a transform deduplication key. Use is limited to authorized workforce or payroll reconciliation and must not be used to infer employee performance.
          </Accordion>

          <Accordion id="provider-permission-field-bamboo-employee-salaries-hiredate-0e50202a23a6" title="Hire Date" icon="calendar-clock" iconType="sharp-duotone-solid">
            Developer identifier: `employee_salaries.hireDate`

            **Hire Date.** Date the employee was hired. It anchors the employee salary on the provider's reported timeline.

            * **Enables:** Order Employee Salaries by hire date in `employee_salaries.hireDate` and isolate records inside an exact provider reporting window.
            * **Interpretation:** BambooHR reports hire date as a calendar date on each employee salary; its grain is one day and no time of day should be inferred. Use is limited to authorized workforce or payroll reconciliation and must not be used to infer employee performance.
          </Accordion>

          <Accordion id="provider-permission-field-bamboo-employee-salaries-paidper-c46e61db677a" title="Paid Per" icon="circle-info" iconType="sharp-duotone-solid">
            Developer identifier: `employee_salaries.paidPer`

            **Paid Per.** Pay period unit (e.g. Year, Hour). It supplies the paid per boundary, band, or unit needed to interpret the companion measure.

            * **Enables:** Reconcile paid per in `employee_salaries.paidPer` by pairing it with the same worker or position, currency, pay basis, and effective period.
            * **Interpretation:** BambooHR reports paid per on each employee salary; missing and empty values can have different meanings. Use is limited to authorized workforce or payroll reconciliation and must not be used to infer employee performance. Any monetary amount is a provider HR or payroll record at its stated currency and pay basis, not an invoice.
          </Accordion>

          <Accordion id="provider-permission-field-bamboo-employee-salaries-payfrequency-c7fd0c5a3717" title="Pay Frequency" icon="circle-info" iconType="sharp-duotone-solid">
            Developer identifier: `employee_salaries.payFrequency`

            **Pay Frequency.** Frequency of pay (e.g. Monthly, Bi-Weekly). It distinguishes the provider-defined pay frequency state or classification for the employee salary.

            * **Enables:** Reconcile pay frequency in `employee_salaries.payFrequency` by pairing it with the same worker or position, currency, pay basis, and effective period.
            * **Interpretation:** BambooHR reports pay frequency on each employee salary; missing and empty values can have different meanings. Use is limited to authorized workforce or payroll reconciliation and must not be used to infer employee performance. Any monetary amount is a provider HR or payroll record at its stated currency and pay basis, not an invoice.
          </Accordion>

          <Accordion id="provider-permission-field-bamboo-employee-salaries-payrate-bbd607fcfd39" title="Pay Rate" icon="money-check-dollar" iconType="sharp-duotone-solid">
            Developer identifier: `employee_salaries.payRate`

            **Pay Rate.** Pay rate amount. It supplies the pay rate measure for the employee salary at the provider's declared unit and grain.

            * **Enables:** Reconcile pay rate in `employee_salaries.payRate` by pairing it with the same worker or position, currency, pay basis, and effective period.
            * **Interpretation:** BambooHR reports pay rate as a number at the parent record's grain on each employee salary; compare only records with the same unit and aggregation grain. Use is limited to authorized workforce or payroll reconciliation and must not be used to infer employee performance. Any monetary amount is a provider HR or payroll record at its stated currency and pay basis, not an invoice.
          </Accordion>

          <Accordion id="provider-permission-field-bamboo-employee-salaries-paytype-ba9e71ddafca" title="Pay Type" icon="money-check-dollar" iconType="sharp-duotone-solid">
            Developer identifier: `employee_salaries.payType`

            **Pay Type.** Type of pay (e.g. Salary, Hourly). It distinguishes the provider-defined pay type state or classification for the employee salary.

            * **Enables:** Reconcile pay type in `employee_salaries.payType` by pairing it with the same worker or position, currency, pay basis, and effective period.
            * **Interpretation:** BambooHR reports pay type as a label from its own taxonomy on each employee salary; preserve unknown labels rather than mapping them by assumption. Use is limited to authorized workforce or payroll reconciliation and must not be used to infer employee performance. Any monetary amount is a provider HR or payroll record at its stated currency and pay basis, not an invoice.
          </Accordion>
        </AccordionGroup>
      </Accordion>

      <Accordion id="provider-permission-tap-bamboo-time-off-policies-71c348b70001" title="Time Off Policies" icon="calendar-clock" iconType="sharp-duotone-solid">
        Developer identifier: `time_off_policies`

        **Time Off Policies.** Time off policies assigned to an employee.

        * **Enables:** Match employees to assigned leave policies and provider-defined time-off types.
        * **Scope:** Reads the records selected by BambooHR's `/v1_1/employees/{employee_id}/time_off/policies` operation as a snapshot stream using full synchronization. This stream is opt-in. Visibility follows the BambooHR API user's field-level access, so restricted employee attributes may be absent. Use is limited to authorized leave and workforce-availability administration; the records do not support health or performance inference. A later complete read can treat a previously seen record that is absent as removed.

        <AccordionGroup>
          <Accordion id="provider-permission-field-bamboo-time-off-policies-accrualstartdate-ea39ea7bab2a" title="Accrual Start Date" icon="shield-check" iconType="sharp-duotone-solid">
            Developer identifier: `time_off_policies.accrualStartDate`

            **Accrual Start Date.** Date when accrual begins for this policy. It anchors the time off policy on the provider's reported timeline.

            * **Enables:** Match accrual start date in `time_off_policies.accrualStartDate` to the relevant worker, leave type, unit, and effective date for authorized leave administration.
            * **Interpretation:** BambooHR reports accrual start date as a calendar date on each time off policy; its grain is one day and no time of day should be inferred. This sensitive workforce attribute is for authorized leave administration only and must not be used for health or performance inference.
          </Accordion>

          <Accordion id="provider-permission-field-bamboo-time-off-policies-employee-id-c33e7b072c05" title="Employee ID" icon="folder-open" iconType="sharp-duotone-solid">
            Developer identifier: `time_off_policies.employee_id`

            **Employee ID.** Parent employee reference copied into each time off policy because the child operation does not return that relationship. It provides the reference needed to connect the time off policy to the corresponding provider object.

            * **Enables:** Connect each time off policy in Time Off Policies to the referenced employee through `time_off_policies.employee_id`; flag employee ID values that do not resolve in that provider namespace.
            * **Interpretation:** Parable copies employee ID from the parent traversal record into each time off policy; the child BambooHR operation does not return it. This sensitive workforce attribute is for authorized leave administration only and must not be used for health or performance inference.
          </Accordion>

          <Accordion id="provider-permission-field-bamboo-time-off-policies-policyname-f7a2eb022eb1" title="Policy Name" icon="shield-check" iconType="sharp-duotone-solid">
            Developer identifier: `time_off_policies.policyName`

            **Policy Name.** Name of the time off policy. It gives the time off policy a human-readable provider label while its identifier remains the stable reference.

            * **Enables:** Label each time off policy with policy name from `time_off_policies.policyName`; distinguish records that share that display name but have different BambooHR identifiers.
            * **Interpretation:** BambooHR reports policy name as display text for each time off policy; names are mutable and are not stable identities. This sensitive workforce attribute is for authorized leave administration only and must not be used for health or performance inference.
          </Accordion>

          <Accordion id="provider-permission-field-bamboo-time-off-policies-timeoffpolicyid-87197e1f6be5" title="Time Off Policy ID" icon="shield-check" iconType="sharp-duotone-solid">
            Developer identifier: `time_off_policies.timeOffPolicyId`

            **Time Off Policy ID.** Unique identifier for the time off policy. It provides the reference needed to connect the time off policy to the corresponding provider object.

            * **Enables:** Match repeated time off policy entries on time off policy ID in `time_off_policies.timeOffPolicyId`; collapse only entries that share this declared transform key.
            * **Interpretation:** BambooHR reports time off policy ID as an identifier in its time off policy namespace; it is not a universal identity outside BambooHR. The connector explicitly marks this field as a transform deduplication key. This sensitive workforce attribute is for authorized leave administration only and must not be used for health or performance inference.
          </Accordion>

          <Accordion id="provider-permission-field-bamboo-time-off-policies-timeofftype-129428d4dc40" title="Time Off Type" icon="comment" iconType="sharp-duotone-solid">
            Developer identifier: `time_off_policies.timeOffType`

            **Time Off Type.** Name of the time off type. It distinguishes the provider-defined time off type state or classification for the time off policy.

            * **Enables:** Match time off type in `time_off_policies.timeOffType` to the relevant worker, leave type, unit, and effective date for authorized leave administration.
            * **Interpretation:** BambooHR reports time off type as a label from its own taxonomy on each time off policy; preserve unknown labels rather than mapping them by assumption. This sensitive workforce attribute is for authorized leave administration only and must not be used for health or performance inference.
          </Accordion>

          <Accordion id="provider-permission-field-bamboo-time-off-policies-timeofftypeid-37d5447516a8" title="Time Off Type ID" icon="calendar-clock" iconType="sharp-duotone-solid">
            Developer identifier: `time_off_policies.timeOffTypeId`

            **Time Off Type ID.** Identifier for the associated time off type. It provides the reference needed to connect the time off policy to the corresponding provider object.

            * **Enables:** Connect each time off policy in Time Off Policies to the referenced time off type through `time_off_policies.timeOffTypeId`; flag time off type ID values that do not resolve in that provider namespace.
            * **Interpretation:** BambooHR reports time off type ID as an identifier in its time off type namespace; it is not a universal identity outside BambooHR. This sensitive workforce attribute is for authorized leave administration only and must not be used for health or performance inference.
          </Accordion>
        </AccordionGroup>
      </Accordion>

      <Accordion id="provider-permission-tap-bamboo-time-off-requests-ec3ecd88d2af" title="Time Off Requests" icon="calendar-clock" iconType="sharp-duotone-solid">
        Developer identifier: `time_off_requests`

        **Time Off Requests.** Time off requests submitted by employees.

        * **Enables:** Reconcile requested leave dates and amounts with the employee, request status, and provider-defined leave type.
        * **Scope:** Reads the records selected by BambooHR's `/v1/time_off/requests` operation as a changelog stream using incremental synchronization. This stream is opt-in. Visibility follows the BambooHR API user's field-level access, so restricted employee attributes may be absent. Use is limited to authorized leave and workforce-availability administration; the records do not support health or performance inference. This stream supplies no reliable deletion signal.

        <AccordionGroup>
          <Accordion id="provider-permission-field-bamboo-time-off-requests-actions-089a31efc737" title="Actions" icon="user-tie" iconType="sharp-duotone-solid">
            Developer identifier: `time_off_requests.actions`

            **Actions.** Per-request action capabilities for the calling user (view, edit, cancel, approve, deny, bypass). It preserves the nested context needed to interpret the parent time off request.

            * **Enables:** Attribute actions in `time_off_requests.actions` to the parent time off request; identify parent records where that nested actions object is absent.
            * **Interpretation:** BambooHR reports actions as a nested object on each time off request; optional children may be absent from a valid response. This sensitive workforce attribute is for authorized leave administration only and must not be used for health or performance inference.
          </Accordion>

          <Accordion id="provider-permission-field-bamboo-time-off-requests-actions-approve-55c472feeed2" title="Approve" icon="user-tie" iconType="sharp-duotone-solid">
            Developer identifier: `time_off_requests.actions.approve`

            **Approve.** Whether the calling user can approve this request. It distinguishes the provider-defined approve state or classification for the BambooHR time off request action.

            * **Enables:** Filter Time Off Requests by whether the calling user can approve this request in `time_off_requests.BambooHRTimeOffRequestActions.approve`; count true, false, and missing results separately.
            * **Interpretation:** BambooHR reports the calling user can approve this request as a boolean on each BambooHR time off request action; a missing field is unknown, not false. This sensitive workforce attribute is for authorized leave administration only and must not be used for health or performance inference.
          </Accordion>

          <Accordion id="provider-permission-field-bamboo-time-off-requests-actions-bypass-1aca11aaa7cd" title="Bypass" icon="user-tie" iconType="sharp-duotone-solid">
            Developer identifier: `time_off_requests.actions.bypass`

            **Bypass.** Whether the calling user can bypass approval for this request. It distinguishes the provider-defined bypass state or classification for the BambooHR time off request action.

            * **Enables:** Filter Time Off Requests by whether the calling user can bypass approval for this request in `time_off_requests.BambooHRTimeOffRequestActions.bypass`; count true, false, and missing results separately.
            * **Interpretation:** BambooHR reports the calling user can bypass approval for this request as a boolean on each BambooHR time off request action; a missing field is unknown, not false. This sensitive workforce attribute is for authorized leave administration only and must not be used for health or performance inference.
          </Accordion>

          <Accordion id="provider-permission-field-bamboo-time-off-requests-actions-cancel-5abf20218b22" title="Cancel" icon="user-tie" iconType="sharp-duotone-solid">
            Developer identifier: `time_off_requests.actions.cancel`

            **Cancel.** Whether the calling user can cancel this request. It distinguishes the provider-defined cancel state or classification for the BambooHR time off request action.

            * **Enables:** Filter Time Off Requests by whether the calling user can cancel this request in `time_off_requests.BambooHRTimeOffRequestActions.cancel`; count true, false, and missing results separately.
            * **Interpretation:** BambooHR reports the calling user can cancel this request as a boolean on each BambooHR time off request action; a missing field is unknown, not false. This sensitive workforce attribute is for authorized leave administration only and must not be used for health or performance inference.
          </Accordion>

          <Accordion id="provider-permission-field-bamboo-time-off-requests-actions-deny-8dacf5885fb9" title="Deny" icon="user-tie" iconType="sharp-duotone-solid">
            Developer identifier: `time_off_requests.actions.deny`

            **Deny.** Whether the calling user can deny this request. It distinguishes the provider-defined deny state or classification for the BambooHR time off request action.

            * **Enables:** Filter Time Off Requests by whether the calling user can deny this request in `time_off_requests.BambooHRTimeOffRequestActions.deny`; count true, false, and missing results separately.
            * **Interpretation:** BambooHR reports the calling user can deny this request as a boolean on each BambooHR time off request action; a missing field is unknown, not false. This sensitive workforce attribute is for authorized leave administration only and must not be used for health or performance inference.
          </Accordion>

          <Accordion id="provider-permission-field-bamboo-time-off-requests-actions-edit-695f81d28881" title="Edit" icon="user-tie" iconType="sharp-duotone-solid">
            Developer identifier: `time_off_requests.actions.edit`

            **Edit.** Whether the calling user can edit this request. It distinguishes the provider-defined edit state or classification for the BambooHR time off request action.

            * **Enables:** Filter Time Off Requests by whether the calling user can edit this request in `time_off_requests.BambooHRTimeOffRequestActions.edit`; count true, false, and missing results separately.
            * **Interpretation:** BambooHR reports the calling user can edit this request as a boolean on each BambooHR time off request action; a missing field is unknown, not false. This sensitive workforce attribute is for authorized leave administration only and must not be used for health or performance inference.
          </Accordion>

          <Accordion id="provider-permission-field-bamboo-time-off-requests-actions-view-e07452ee080a" title="View" icon="user-tie" iconType="sharp-duotone-solid">
            Developer identifier: `time_off_requests.actions.view`

            **View.** Whether the calling user can view this request. It distinguishes the provider-defined view state or classification for the BambooHR time off request action.

            * **Enables:** Filter Time Off Requests by whether the calling user can view this request in `time_off_requests.BambooHRTimeOffRequestActions.view`; count true, false, and missing results separately.
            * **Interpretation:** BambooHR reports the calling user can view this request as a boolean on each BambooHR time off request action; a missing field is unknown, not false. This sensitive workforce attribute is for authorized leave administration only and must not be used for health or performance inference.
          </Accordion>

          <Accordion id="provider-permission-field-bamboo-time-off-requests-amount-bca86df4fc19" title="Amount" icon="sack-dollar" iconType="sharp-duotone-solid">
            Developer identifier: `time_off_requests.amount`

            **Amount.** Amount of time off requested. It preserves the nested context needed to interpret the parent time off request.

            * **Enables:** Attribute amount in `time_off_requests.amount` to the parent time off request; identify parent records where that nested amount object is absent.
            * **Interpretation:** BambooHR reports amount as a nested object on each time off request; optional children may be absent from a valid response. This sensitive workforce attribute is for authorized leave administration only and must not be used for health or performance inference.
          </Accordion>

          <Accordion id="provider-permission-field-bamboo-time-off-requests-amount-amount-93ac9573af53" title="Amount" icon="sack-dollar" iconType="sharp-duotone-solid">
            Developer identifier: `time_off_requests.amount.amount`

            **Amount.** Numeric amount of time off. It supplies the amount measure for the BambooHR time off request amount at the provider's declared unit and grain.

            * **Enables:** Match amount in `time_off_requests.BambooHRTimeOffRequestAmount.amount` to the relevant worker, leave type, unit, and effective date for authorized leave administration.
            * **Interpretation:** BambooHR reports amount as a number at the parent record's grain on each BambooHR time off request amount; compare only records with the same unit and aggregation grain. This sensitive workforce attribute is for authorized leave administration only and must not be used for health or performance inference.
          </Accordion>

          <Accordion id="provider-permission-field-bamboo-time-off-requests-amount-unit-964f705d7c62" title="Unit" icon="sack-dollar" iconType="sharp-duotone-solid">
            Developer identifier: `time_off_requests.amount.unit`

            **Unit.** Unit of the amount (e.g. days, hours). It supplies the unit boundary, band, or unit needed to interpret the companion measure.

            * **Enables:** Interpret `time_off_requests.BambooHRTimeOffRequestAmount.unit` with its companion minimum, maximum, interval, or unit before comparing the unit across like-for-like records.
            * **Interpretation:** BambooHR reports unit as a boundary, band, interval, or unit on each BambooHR time off request amount; it is meaningful only with its companion measure and provider scale. This sensitive workforce attribute is for authorized leave administration only and must not be used for health or performance inference.
          </Accordion>

          <Accordion id="provider-permission-field-bamboo-time-off-requests-created-72b9b2ef85f0" title="Created" icon="calendar-clock" iconType="sharp-duotone-solid">
            Developer identifier: `time_off_requests.created`

            **Created.** Timestamp when the request was created. It anchors the time off request on the provider's reported timeline.

            * **Enables:** Order Time Off Requests by created in `time_off_requests.created` and isolate records inside an exact provider reporting window.
            * **Interpretation:** BambooHR reports created as a timestamp on each time off request; timezone and precision follow this API field, and absence is not an inferred event time. A connector directive uses this field to order records for latest-state or incremental processing. The schema designates this field as the event timestamp. This sensitive workforce attribute is for authorized leave administration only and must not be used for health or performance inference.
          </Accordion>

          <Accordion id="provider-permission-field-bamboo-time-off-requests-dates-a1227c60a81f" title="Dates" icon="calendar-clock" iconType="sharp-duotone-solid">
            Developer identifier: `time_off_requests.dates`

            **Dates.** Map of dates to daily time off amounts. It preserves the nested context needed to interpret the parent time off request.

            * **Enables:** Attribute dates in `time_off_requests.dates` to the parent time off request; identify parent records where that nested dates object is absent.
            * **Interpretation:** BambooHR reports dates as a nested object on each time off request; optional children may be absent from a valid response. This sensitive workforce attribute is for authorized leave administration only and must not be used for health or performance inference.
          </Accordion>

          <Accordion id="provider-permission-field-bamboo-time-off-requests-employeeid-68f4389c8f0f" title="Employee ID" icon="id-card" iconType="sharp-duotone-solid">
            Developer identifier: `time_off_requests.employeeId`

            **Employee ID.** Identifier of the employee who submitted the request. It provides the reference needed to connect the time off request to the corresponding provider object.

            * **Enables:** Connect each time off request in Time Off Requests to the referenced employee through `time_off_requests.employeeId`; flag employee ID values that do not resolve in that provider namespace.
            * **Interpretation:** BambooHR reports employee ID as an identifier in its employee namespace; it is not a universal identity outside BambooHR. This sensitive workforce attribute is for authorized leave administration only and must not be used for health or performance inference.
          </Accordion>

          <Accordion id="provider-permission-field-bamboo-time-off-requests-end-84c7bac808b4" title="End" icon="calendar-days" iconType="sharp-duotone-solid">
            Developer identifier: `time_off_requests.end`

            **End.** End date of the time off. It anchors the time off request on the provider's reported timeline.

            * **Enables:** Match end in `time_off_requests.end` to the relevant worker, leave type, unit, and effective date for authorized leave administration.
            * **Interpretation:** BambooHR reports end as a timestamp on each time off request; timezone and precision follow this API field, and absence is not an inferred event time. This sensitive workforce attribute is for authorized leave administration only and must not be used for health or performance inference.
          </Accordion>

          <Accordion id="provider-permission-field-bamboo-time-off-requests-id-9974094684a6" title="ID" icon="calendar-clock" iconType="sharp-duotone-solid">
            Developer identifier: `time_off_requests.id`

            **ID.** Unique identifier for the time off request. It provides the reference needed to connect the time off request to the corresponding provider object.

            * **Enables:** Match repeated time off request entries on ID in `time_off_requests.id`; collapse only entries that share this declared transform key.
            * **Interpretation:** BambooHR reports ID as an identifier in its time off request namespace; it is not a universal identity outside BambooHR. The connector explicitly marks this field as a transform deduplication key. This sensitive workforce attribute is for authorized leave administration only and must not be used for health or performance inference.
          </Accordion>

          <Accordion id="provider-permission-field-bamboo-time-off-requests-name-94e906ae1d3c" title="Name" icon="comment" iconType="sharp-duotone-solid">
            Developer identifier: `time_off_requests.name`

            **Name.** Name of the employee. It gives the time off request a human-readable provider label while its identifier remains the stable reference.

            * **Enables:** Label each time off request with name from `time_off_requests.name`; distinguish records that share that display name but have different BambooHR identifiers.
            * **Interpretation:** BambooHR reports name as display text for each time off request; names are mutable and are not stable identities. This sensitive workforce attribute is for authorized leave administration only and must not be used for health or performance inference.
          </Accordion>

          <Accordion id="provider-permission-field-bamboo-time-off-requests-notes-b828b14004ad" title="Notes" icon="comment" iconType="sharp-duotone-solid">
            Developer identifier: `time_off_requests.notes`

            **Notes.** Notes from manager and employee. It preserves the nested context needed to interpret the parent time off request.

            * **Enables:** Attribute notes in `time_off_requests.notes` to the parent time off request; identify parent records where that nested notes object is absent.
            * **Interpretation:** BambooHR reports notes as a nested object on each time off request; optional children may be absent from a valid response. This sensitive workforce attribute is for authorized leave administration only and must not be used for health or performance inference.
          </Accordion>

          <Accordion id="provider-permission-field-bamboo-time-off-requests-notes-employee-5e038cc3fba1" title="Employee" icon="user-tie" iconType="sharp-duotone-solid">
            Developer identifier: `time_off_requests.notes.employee`

            **Employee.** Note from the employee. It supplies the returned employee text needed to understand the BambooHR time off request note in context.

            * **Enables:** Search the returned employee text in `time_off_requests.BambooHRTimeOffRequestNotes.employee` and attribute each match to its parent time off request and reported author when available.
            * **Interpretation:** BambooHR supplies employee as returned text on each BambooHR time off request note; truncation, formatting, and access boundaries can limit completeness. This sensitive workforce attribute is for authorized leave administration only and must not be used for health or performance inference.
          </Accordion>

          <Accordion id="provider-permission-field-bamboo-time-off-requests-notes-manager-cd3f95a1b909" title="Manager" icon="user-tie" iconType="sharp-duotone-solid">
            Developer identifier: `time_off_requests.notes.manager`

            **Manager.** Note from the manager. It supplies the returned manager text needed to understand the BambooHR time off request note in context.

            * **Enables:** Search the returned manager text in `time_off_requests.BambooHRTimeOffRequestNotes.manager` and attribute each match to its parent time off request and reported author when available.
            * **Interpretation:** BambooHR supplies manager as returned text on each BambooHR time off request note; truncation, formatting, and access boundaries can limit completeness. This sensitive workforce attribute is for authorized leave administration only and must not be used for health or performance inference.
          </Accordion>

          <Accordion id="provider-permission-field-bamboo-time-off-requests-start-fa42078a0edc" title="Start" icon="calendar-days" iconType="sharp-duotone-solid">
            Developer identifier: `time_off_requests.start`

            **Start.** Start date of the time off. It anchors the time off request on the provider's reported timeline.

            * **Enables:** Match start in `time_off_requests.start` to the relevant worker, leave type, unit, and effective date for authorized leave administration.
            * **Interpretation:** BambooHR reports start as a timestamp on each time off request; timezone and precision follow this API field, and absence is not an inferred event time. This sensitive workforce attribute is for authorized leave administration only and must not be used for health or performance inference.
          </Accordion>

          <Accordion id="provider-permission-field-bamboo-time-off-requests-status-f936d6556ce9" title="Status" icon="sliders" iconType="sharp-duotone-solid">
            Developer identifier: `time_off_requests.status`

            **Status.** Status details of the request. It preserves the nested context needed to interpret the parent time off request.

            * **Enables:** Attribute status in `time_off_requests.status` to the parent time off request; identify parent records where that nested status object is absent.
            * **Interpretation:** BambooHR reports status as a nested object on each time off request; optional children may be absent from a valid response. This sensitive workforce attribute is for authorized leave administration only and must not be used for health or performance inference.
          </Accordion>

          <Accordion id="provider-permission-field-bamboo-time-off-requests-status-lastchanged-b8a46cbe24de" title="Last Changed" icon="calendar-clock" iconType="sharp-duotone-solid">
            Developer identifier: `time_off_requests.status.lastChanged`

            **Last Changed.** Timestamp when the status was last changed. It anchors the time off request on the provider's reported timeline.

            * **Enables:** Order Time Off Requests by last changed in `time_off_requests.BambooHRTimeOffRequestStatus.lastChanged` and isolate records inside an exact provider reporting window.
            * **Interpretation:** BambooHR reports last changed as a timestamp on each BambooHR time off request status; timezone and precision follow this API field, and absence is not an inferred event time. This sensitive workforce attribute is for authorized leave administration only and must not be used for health or performance inference.
          </Accordion>

          <Accordion id="provider-permission-field-bamboo-time-off-requests-status-lastchangedbyuse-f8fe8e2c563a" title="Last Changed By User ID" icon="id-card" iconType="sharp-duotone-solid">
            Developer identifier: `time_off_requests.status.lastChangedByUserId`

            **Last Changed By User ID.** Identifier of the user who last changed the status. It provides the reference needed to connect the time off request to the corresponding provider object.

            * **Enables:** Connect each BambooHR time off request status in Time Off Requests to the referenced last changed by user through `time_off_requests.BambooHRTimeOffRequestStatus.lastChangedByUserId`; flag last changed by user ID values that do not resolve in that provider namespace.
            * **Interpretation:** BambooHR reports last changed by user ID as an identifier in its last changed by user namespace; it is not a universal identity outside BambooHR. This sensitive workforce attribute is for authorized leave administration only and must not be used for health or performance inference.
          </Accordion>

          <Accordion id="provider-permission-field-bamboo-time-off-requests-status-status-cb2371a0dc68" title="Status" icon="sliders" iconType="sharp-duotone-solid">
            Developer identifier: `time_off_requests.status.status`

            **Status.** Current status of the request. It distinguishes the provider-defined status state or classification for the BambooHR time off request status.

            * **Enables:** Segment BambooHR time off request status entries in Time Off Requests by status in `time_off_requests.BambooHRTimeOffRequestStatus.status`; compare counts only within the same BambooHR taxonomy.
            * **Interpretation:** BambooHR reports status as a label from its own taxonomy on each BambooHR time off request status; preserve unknown labels rather than mapping them by assumption. This sensitive workforce attribute is for authorized leave administration only and must not be used for health or performance inference.
          </Accordion>

          <Accordion id="provider-permission-field-bamboo-time-off-requests-type-e7c3a29f18f3" title="Type" icon="calendar-clock" iconType="sharp-duotone-solid">
            Developer identifier: `time_off_requests.type`

            **Type.** Type of time off requested. It preserves the nested context needed to interpret the parent time off request.

            * **Enables:** Attribute type in `time_off_requests.type` to the parent time off request; identify parent records where that nested type object is absent.
            * **Interpretation:** BambooHR reports type as a nested object on each time off request; optional children may be absent from a valid response. This sensitive workforce attribute is for authorized leave administration only and must not be used for health or performance inference.
          </Accordion>

          <Accordion id="provider-permission-field-bamboo-time-off-requests-type-id-a0a73b603b4b" title="ID" icon="calendar-clock" iconType="sharp-duotone-solid">
            Developer identifier: `time_off_requests.type.id`

            **ID.** Identifier for the time off type. It provides the reference needed to connect the time off request to the corresponding provider object.

            * **Enables:** Connect each BambooHR time off request type in Time Off Requests to the referenced BambooHR time off request type through `time_off_requests.BambooHRTimeOffRequestType.id`; flag ID values that do not resolve in that provider namespace.
            * **Interpretation:** BambooHR reports ID as an identifier in its BambooHR time off request type namespace; it is not a universal identity outside BambooHR. This sensitive workforce attribute is for authorized leave administration only and must not be used for health or performance inference.
          </Accordion>

          <Accordion id="provider-permission-field-bamboo-time-off-requests-type-name-bb77ed62010d" title="Name" icon="comment" iconType="sharp-duotone-solid">
            Developer identifier: `time_off_requests.type.name`

            **Name.** Name of the time off type. It gives the BambooHR time off request type a human-readable provider label while its identifier remains the stable reference.

            * **Enables:** Label each BambooHR time off request type with name from `time_off_requests.BambooHRTimeOffRequestType.name`; distinguish records that share that display name but have different BambooHR identifiers.
            * **Interpretation:** BambooHR reports name as display text for each BambooHR time off request type; names are mutable and are not stable identities. This sensitive workforce attribute is for authorized leave administration only and must not be used for health or performance inference.
          </Accordion>
        </AccordionGroup>
      </Accordion>

      <Accordion id="provider-permission-tap-bamboo-timesheets-24e80fb475d3" title="Timesheets" icon="calendar-clock" iconType="sharp-duotone-solid">
        Developer identifier: `timesheets`

        **Timesheets.** Time tracking timesheet entries.

        * **Enables:** Reconcile reported work intervals to an employee, date, and approved timesheet entry.
        * **Scope:** Reads the records selected by BambooHR's `/v1/time_tracking/timesheet_entries` operation as a changelog stream using incremental synchronization. This stream is opt-in. Visibility follows the BambooHR API user's field-level access, so restricted employee attributes may be absent. Use is limited to authorized workforce time-entry reconciliation; recorded hours are not a Parable judgment about employee performance. This stream supplies no reliable deletion signal.

        <AccordionGroup>
          <Accordion id="provider-permission-field-bamboo-timesheets-approved-876e087cf9b5" title="Approved" icon="circle-check" iconType="sharp-duotone-solid">
            Developer identifier: `timesheets.approved`

            **Approved.** Whether the entry has been approved. It distinguishes the provider-defined approved state or classification for the timesheet.

            * **Enables:** Filter Timesheets by whether the entry has been approved in `timesheets.approved`; count true, false, and missing results separately.
            * **Interpretation:** BambooHR reports the entry has been approved as a boolean on each timesheet; a missing field is unknown, not false.
          </Accordion>

          <Accordion id="provider-permission-field-bamboo-timesheets-approvedat-44cd741b2f20" title="Approved At" icon="calendar-clock" iconType="sharp-duotone-solid">
            Developer identifier: `timesheets.approvedAt`

            **Approved At.** Timestamp when the entry was approved. Null when the entry is still pending. It anchors the timesheet on the provider's reported timeline.

            * **Enables:** Order Timesheets by approved at in `timesheets.approvedAt` and isolate records inside an exact provider reporting window.
            * **Interpretation:** BambooHR reports approved at as a timestamp on each timesheet; timezone and precision follow this API field, and absence is not an inferred event time.
          </Accordion>

          <Accordion id="provider-permission-field-bamboo-timesheets-approvedby-81d5f53d2060" title="Approved By" icon="id-card" iconType="sharp-duotone-solid">
            Developer identifier: `timesheets.approvedBy`

            **Approved By.** Identifier of the approving user. It identifies the related provider object that gives the timesheet its parent, owner, or container context.

            * **Enables:** Connect each timesheet to the related approved by in `timesheets.approvedBy` and verify that the referenced provider object resolves in the expected parent or container.
            * **Interpretation:** BambooHR reports approved by as relationship context on each timesheet; resolve it in the named provider namespace rather than by display text alone.
          </Accordion>

          <Accordion id="provider-permission-field-bamboo-timesheets-date-d975fff64db8" title="Date" icon="calendar-clock" iconType="sharp-duotone-solid">
            Developer identifier: `timesheets.date`

            **Date.** Date of the timesheet entry. It anchors the timesheet on the provider's reported timeline.

            * **Enables:** Order Timesheets by date in `timesheets.date` and isolate records inside an exact provider reporting window.
            * **Interpretation:** BambooHR reports date as a calendar date on each timesheet; its grain is one day and no time of day should be inferred. A connector directive uses this field to order records for latest-state or incremental processing. The schema designates this field as the event timestamp.
          </Accordion>

          <Accordion id="provider-permission-field-bamboo-timesheets-employeeid-c843c4afa6b5" title="Employee ID" icon="id-card" iconType="sharp-duotone-solid">
            Developer identifier: `timesheets.employeeId`

            **Employee ID.** Identifier of the employee. It provides the reference needed to connect the timesheet to the corresponding provider object.

            * **Enables:** Connect each timesheet in Timesheets to the referenced employee through `timesheets.employeeId`; flag employee ID values that do not resolve in that provider namespace.
            * **Interpretation:** BambooHR reports employee ID as an identifier in its employee namespace; it is not a universal identity outside BambooHR.
          </Accordion>

          <Accordion id="provider-permission-field-bamboo-timesheets-end-a7bc65da9063" title="End" icon="calendar-clock" iconType="sharp-duotone-solid">
            Developer identifier: `timesheets.end`

            **End.** End time of the entry. It anchors the timesheet on the provider's reported timeline.

            * **Enables:** Filter Timesheets by end in `timesheets.end`; pair that boundary with the corresponding start before measuring elapsed time.
            * **Interpretation:** BambooHR reports end as a timestamp on each timesheet; timezone and precision follow this API field, and absence is not an inferred event time.
          </Accordion>

          <Accordion id="provider-permission-field-bamboo-timesheets-hours-da9e956fe537" title="Hours" icon="calculator" iconType="sharp-duotone-solid">
            Developer identifier: `timesheets.hours`

            **Hours.** Number of hours tracked. It supplies the hours measure for the timesheet at the provider's declared unit and grain.

            * **Enables:** Measure hours through `timesheets.hours` for each timesheet and compare only values with the same unit and record grain.
            * **Interpretation:** BambooHR reports hours as a measure on each timesheet; compare only records with the same unit and aggregation grain.
          </Accordion>

          <Accordion id="provider-permission-field-bamboo-timesheets-id-24911d88f07f" title="ID" icon="badge-check" iconType="sharp-duotone-solid">
            Developer identifier: `timesheets.id`

            **ID.** Unique identifier for the timesheet entry. It provides the reference needed to connect the timesheet to the corresponding provider object.

            * **Enables:** Match repeated timesheet entries on ID in `timesheets.id`; collapse only entries that share this declared transform key.
            * **Interpretation:** BambooHR reports ID as an identifier in its timesheet namespace; it is not a universal identity outside BambooHR. The connector explicitly marks this field as a transform deduplication key.
          </Accordion>

          <Accordion id="provider-permission-field-bamboo-timesheets-note-1016c361cf09" title="Note" icon="route" iconType="sharp-duotone-solid">
            Developer identifier: `timesheets.note`

            **Note.** Note attached to the timesheet entry. It supplies the returned note text needed to understand the timesheet in context.

            * **Enables:** Search the returned note text in `timesheets.note` and attribute each match to its parent timesheet and reported author when available.
            * **Interpretation:** BambooHR supplies note as returned text on each timesheet; truncation, formatting, and access boundaries can limit completeness.
          </Accordion>

          <Accordion id="provider-permission-field-bamboo-timesheets-projectid-053aaaf977c7" title="Project ID" icon="badge-check" iconType="sharp-duotone-solid">
            Developer identifier: `timesheets.projectId`

            **Project ID.** Identifier of the associated project. It provides the reference needed to connect the timesheet to the corresponding provider object.

            * **Enables:** Connect each timesheet in Timesheets to the referenced project through `timesheets.projectId`; flag project ID values that do not resolve in that provider namespace.
            * **Interpretation:** BambooHR reports project ID as an identifier in its project namespace; it is not a universal identity outside BambooHR.
          </Accordion>

          <Accordion id="provider-permission-field-bamboo-timesheets-projectinfo-17de9c47c9f9" title="Project Info" icon="circle-check" iconType="sharp-duotone-solid">
            Developer identifier: `timesheets.projectInfo`

            **Project Info.** Project / task assignment for this timesheet entry, when project tracking is enabled. It preserves the nested context needed to interpret the parent timesheet.

            * **Enables:** Attribute project info in `timesheets.projectInfo` to the parent timesheet; identify parent records where that nested project info object is absent.
            * **Interpretation:** BambooHR reports project info as a nested object on each timesheet; optional children may be absent from a valid response.
          </Accordion>

          <Accordion id="provider-permission-field-bamboo-timesheets-projectinfo-project-64f02088f083" title="Project" icon="calendar-clock" iconType="sharp-duotone-solid">
            Developer identifier: `timesheets.projectInfo.project`

            **Project.** Project the time was logged against. It preserves the nested context needed to interpret the parent timesheet.

            * **Enables:** Attribute project in `timesheets.BambooHRTimesheetProjectInfo.project` to the parent timesheet; identify parent records where that nested project object is absent.
            * **Interpretation:** BambooHR reports project as a nested object on each BambooHR timesheet project info; optional children may be absent from a valid response.
          </Accordion>

          <Accordion id="provider-permission-field-bamboo-timesheets-projectinfo-project-id-859b44e8770e" title="ID" icon="badge-check" iconType="sharp-duotone-solid">
            Developer identifier: `timesheets.projectInfo.project.id`

            **ID.** Identifier of the project. It provides the reference needed to connect the timesheet to the corresponding provider object.

            * **Enables:** Connect each BambooHR timesheet project in Timesheets to the referenced BambooHR timesheet project through `timesheets.BambooHRTimesheetProject.id`; flag ID values that do not resolve in that provider namespace.
            * **Interpretation:** BambooHR reports ID as an identifier in its BambooHR timesheet project namespace; it is not a universal identity outside BambooHR.
          </Accordion>

          <Accordion id="provider-permission-field-bamboo-timesheets-projectinfo-project-name-2cb6cb1b344e" title="Name" icon="comment" iconType="sharp-duotone-solid">
            Developer identifier: `timesheets.projectInfo.project.name`

            **Name.** Display name of the project. It gives the BambooHR timesheet project a human-readable provider label while its identifier remains the stable reference.

            * **Enables:** Label each BambooHR timesheet project with name from `timesheets.BambooHRTimesheetProject.name`; distinguish records that share that display name but have different BambooHR identifiers.
            * **Interpretation:** BambooHR reports name as display text for each BambooHR timesheet project; names are mutable and are not stable identities.
          </Accordion>

          <Accordion id="provider-permission-field-bamboo-timesheets-projectinfo-task-88829e5ec0e9" title="Task" icon="cube" iconType="sharp-duotone-solid">
            Developer identifier: `timesheets.projectInfo.task`

            **Task.** Task or sub-activity within the project. It preserves the nested context needed to interpret the parent timesheet.

            * **Enables:** Attribute task in `timesheets.BambooHRTimesheetProjectInfo.task` to the parent timesheet; identify parent records where that nested task object is absent.
            * **Interpretation:** BambooHR reports task as a nested object on each BambooHR timesheet project info; optional children may be absent from a valid response.
          </Accordion>

          <Accordion id="provider-permission-field-bamboo-timesheets-projectinfo-task-id-b4b04abf97cc" title="ID" icon="badge-check" iconType="sharp-duotone-solid">
            Developer identifier: `timesheets.projectInfo.task.id`

            **ID.** Identifier of the task. It provides the reference needed to connect the timesheet to the corresponding provider object.

            * **Enables:** Connect each BambooHR timesheet task in Timesheets to the referenced BambooHR timesheet task through `timesheets.BambooHRTimesheetTask.id`; flag ID values that do not resolve in that provider namespace.
            * **Interpretation:** BambooHR reports ID as an identifier in its BambooHR timesheet task namespace; it is not a universal identity outside BambooHR.
          </Accordion>

          <Accordion id="provider-permission-field-bamboo-timesheets-projectinfo-task-name-3c3028243070" title="Name" icon="comment" iconType="sharp-duotone-solid">
            Developer identifier: `timesheets.projectInfo.task.name`

            **Name.** Display name of the task. It gives the BambooHR timesheet task a human-readable provider label while its identifier remains the stable reference.

            * **Enables:** Label each BambooHR timesheet task with name from `timesheets.BambooHRTimesheetTask.name`; distinguish records that share that display name but have different BambooHR identifiers.
            * **Interpretation:** BambooHR reports name as display text for each BambooHR timesheet task; names are mutable and are not stable identities.
          </Accordion>

          <Accordion id="provider-permission-field-bamboo-timesheets-start-d1f079bcc71c" title="Start" icon="calendar-clock" iconType="sharp-duotone-solid">
            Developer identifier: `timesheets.start`

            **Start.** Start time of the entry. It anchors the timesheet on the provider's reported timeline.

            * **Enables:** Filter Timesheets by start in `timesheets.start`; pair that boundary with the corresponding end before measuring elapsed time.
            * **Interpretation:** BambooHR reports start as a timestamp on each timesheet; timezone and precision follow this API field, and absence is not an inferred event time.
          </Accordion>

          <Accordion id="provider-permission-field-bamboo-timesheets-taskid-8f99b044651e" title="Task ID" icon="badge-check" iconType="sharp-duotone-solid">
            Developer identifier: `timesheets.taskId`

            **Task ID.** Identifier of the associated task. It provides the reference needed to connect the timesheet to the corresponding provider object.

            * **Enables:** Connect each timesheet in Timesheets to the referenced task through `timesheets.taskId`; flag task ID values that do not resolve in that provider namespace.
            * **Interpretation:** BambooHR reports task ID as an identifier in its task namespace; it is not a universal identity outside BambooHR.
          </Accordion>

          <Accordion id="provider-permission-field-bamboo-timesheets-timezone-6384f051e369" title="Timezone" icon="badge-check" iconType="sharp-duotone-solid">
            Developer identifier: `timesheets.timezone`

            **Timezone.** IANA timezone identifier in which the entry was recorded. It is needed to interpret companion dates and times for the timesheet in the provider's intended zone.

            * **Enables:** Apply the zone in `timesheets.timezone` when converting the timesheet's companion start, end, or scheduled timestamps; do not infer it from locale.
            * **Interpretation:** BambooHR reports timezone as a timezone identifier for each timesheet; supported IANA or provider-specific names and daylight-saving behavior must be preserved.
          </Accordion>

          <Accordion id="provider-permission-field-bamboo-timesheets-type-8e4c9f5e2cc0" title="Type" icon="sliders" iconType="sharp-duotone-solid">
            Developer identifier: `timesheets.type`

            **Type.** Type of timesheet entry. It distinguishes the provider-defined type state or classification for the timesheet.

            * **Enables:** Segment timesheet entries in Timesheets by type in `timesheets.type`; compare counts only within the same BambooHR taxonomy.
            * **Interpretation:** BambooHR reports type as a label from its own taxonomy on each timesheet; preserve unknown labels rather than mapping them by assumption.
          </Accordion>
        </AccordionGroup>
      </Accordion>

      <Accordion id="provider-permission-tap-bamboo-users-43a33c5dffe9" title="Users" icon="people-group" iconType="sharp-duotone-solid">
        Developer identifier: `users`

        **Users.** Employee directory listing all employees.

        * **Enables:** Reconcile BambooHR employee identifiers, contact details, department, job title, manager, and employment status with the authorized workforce directory.
        * **Scope:** Reads the records selected by BambooHR's `/v1/employees/directory` operation as a snapshot stream using full synchronization. This stream is opt-in. Visibility follows the BambooHR API user's field-level access, so restricted employee attributes may be absent. The stream does not include records the credential, parent traversal, configured filters, or provider API omits. A later complete read can treat a previously seen record that is absent as removed.

        <AccordionGroup>
          <Accordion id="provider-permission-field-bamboo-users-canuploadphoto-4a8d564585ef" title="Can Upload Photo" icon="user-tie" iconType="sharp-duotone-solid">
            Developer identifier: `users.canUploadPhoto`

            **Can Upload Photo.** Whether employee can upload a photo (1 = yes, 0 = no). It distinguishes the provider-defined can upload photo state or classification for the user.

            * **Enables:** Filter Users by the exact BambooHR-defined can upload photo in `users.canUploadPhoto` and preserve unknown values as distinct categories.
            * **Interpretation:** BambooHR supplies can upload photo from its own taxonomy on each user; preserve unknown and newly introduced labels.
          </Accordion>

          <Accordion id="provider-permission-field-bamboo-users-department-461aaf4dfa55" title="Department" icon="user-tie" iconType="sharp-duotone-solid">
            Developer identifier: `users.department`

            **Department.** Department the employee belongs to. It identifies the related provider object that gives the user its parent, owner, or container context.

            * **Enables:** Connect each user to the related department in `users.department` and verify that the referenced provider object resolves in the expected parent or container.
            * **Interpretation:** BambooHR reports department as relationship context on each user; resolve it in the named provider namespace rather than by display text alone.
          </Accordion>

          <Accordion id="provider-permission-field-bamboo-users-displayname-cbf4e301c454" title="Display Name" icon="comment" iconType="sharp-duotone-solid">
            Developer identifier: `users.displayName`

            **Display Name.** Full display name of the employee. It distinguishes the provider-defined display name state or classification for the user.

            * **Enables:** Label each user with display name from `users.displayName`; distinguish records that share that display name but have different BambooHR identifiers.
            * **Interpretation:** BambooHR reports display name as display text for each user; names are mutable and are not stable identities. A connector directive maps this field to a person's display name.
          </Accordion>

          <Accordion id="provider-permission-field-bamboo-users-division-c04aba517c21" title="Division" icon="user-tie" iconType="sharp-duotone-solid">
            Developer identifier: `users.division`

            **Division.** Division the employee belongs to. It identifies the related provider object that gives the user its parent, owner, or container context.

            * **Enables:** Connect each user to the related division in `users.division` and verify that the referenced provider object resolves in the expected parent or container.
            * **Interpretation:** BambooHR reports division as relationship context on each user; resolve it in the named provider namespace rather than by display text alone.
          </Accordion>

          <Accordion id="provider-permission-field-bamboo-users-firstname-59c4e1a6f50f" title="First Name" icon="comment" iconType="sharp-duotone-solid">
            Developer identifier: `users.firstName`

            **First Name.** First name of the employee. It gives the user a human-readable provider label while its identifier remains the stable reference.

            * **Enables:** Label each user with first name from `users.firstName`; distinguish records that share that display name but have different BambooHR identifiers.
            * **Interpretation:** BambooHR reports first name as display text for each user; names are mutable and are not stable identities.
          </Accordion>

          <Accordion id="provider-permission-field-bamboo-users-id-579ca4365b63" title="ID" icon="id-card" iconType="sharp-duotone-solid">
            Developer identifier: `users.id`

            **ID.** Unique employee identifier. It provides the reference needed to connect the user to the corresponding provider object.

            * **Enables:** Match repeated user entries on ID in `users.id`; collapse only entries that share this declared transform key.
            * **Interpretation:** BambooHR reports ID as an identifier in its user namespace; it is not a universal identity outside BambooHR. The connector explicitly marks this field as a transform deduplication key. A connector directive maps this field to account identity.
          </Accordion>

          <Accordion id="provider-permission-field-bamboo-users-jobtitle-e6fa358c6e97" title="Job Title" icon="comment" iconType="sharp-duotone-solid">
            Developer identifier: `users.jobTitle`

            **Job Title.** Job title of the employee. It supplies the job title profile facet used to reconcile or attribute the user.

            * **Enables:** Label each user with job title from `users.jobTitle`; distinguish records that share that display name but have different BambooHR identifiers.
            * **Interpretation:** BambooHR reports job title as display text for each user; names are mutable and are not stable identities.
          </Accordion>

          <Accordion id="provider-permission-field-bamboo-users-lastname-570e4c73f762" title="Last Name" icon="comment" iconType="sharp-duotone-solid">
            Developer identifier: `users.lastName`

            **Last Name.** Last name of the employee. It gives the user a human-readable provider label while its identifier remains the stable reference.

            * **Enables:** Label each user with last name from `users.lastName`; distinguish records that share that display name but have different BambooHR identifiers.
            * **Interpretation:** BambooHR reports last name as display text for each user; names are mutable and are not stable identities.
          </Accordion>

          <Accordion id="provider-permission-field-bamboo-users-linkedin-be4a41391fcf" title="Linked In" icon="globe" iconType="sharp-duotone-solid">
            Developer identifier: `users.linkedIn`

            **Linked In.** LinkedIn profile URL. It locates the provider resource or path associated with the user.

            * **Enables:** Resolve the user's provider resource or path through `users.linkedIn`; verify access separately and do not infer that linked content was ingested.
            * **Interpretation:** BambooHR returns linked in as a resource locator or path for each user; access can expire or depend on viewer permissions, and linked content is not implied.
          </Accordion>

          <Accordion id="provider-permission-field-bamboo-users-location-0d5f20635160" title="Location" icon="map-location-dot" iconType="sharp-duotone-solid">
            Developer identifier: `users.location`

            **Location.** Office location of the employee. It supplies the provider-reported address or location facet for the user, not a residency determination.

            * **Enables:** Group Users by location in `users.location` without treating that user, device, or request attribute as a data-residency signal.
            * **Interpretation:** BambooHR reports location as a user, device, request, or resource location attribute on each user; it does not establish where data is stored or processed.
          </Accordion>

          <Accordion id="provider-permission-field-bamboo-users-mobilephone-5e94dbcb2fe2" title="Mobile Phone" icon="phone" iconType="sharp-duotone-solid">
            Developer identifier: `users.mobilePhone`

            **Mobile Phone.** Mobile phone number. It supplies the mobile phone profile facet used to reconcile or attribute the user.

            * **Enables:** Reconcile the user's mobile phone in `users.mobilePhone` with its provider profile or directory identity; confirm ambiguous matches with the stable provider ID.
            * **Interpretation:** BambooHR reports mobile phone as a mutable profile or directory attribute on each user; it may be absent, shared, or non-unique.
          </Accordion>

          <Accordion id="provider-permission-field-bamboo-users-photouploaded-d1de66d8c9d7" title="Photo Uploaded" icon="user-tie" iconType="sharp-duotone-solid">
            Developer identifier: `users.photoUploaded`

            **Photo Uploaded.** Whether employee has uploaded a photo. It distinguishes the provider-defined photo uploaded state or classification for the user.

            * **Enables:** Filter Users by whether employee has uploaded a photo in `users.photoUploaded`; count true, false, and missing results separately.
            * **Interpretation:** BambooHR reports employee has uploaded a photo as a boolean on each user; a missing field is unknown, not false.
          </Accordion>

          <Accordion id="provider-permission-field-bamboo-users-photourl-6b402f97d0db" title="Photo URL" icon="globe" iconType="sharp-duotone-solid">
            Developer identifier: `users.photoUrl`

            **Photo URL.** URL to the employee's photo. It locates the provider resource or path associated with the user.

            * **Enables:** Associate each user with the resource identified by photo URL in `users.photoUrl`; verify the link resolves to the expected BambooHR object.
            * **Interpretation:** BambooHR reports photo URL as a resource locator for each user; access still depends on viewer permissions and the URL may expire or change.
          </Accordion>

          <Accordion id="provider-permission-field-bamboo-users-preferredname-232503e1de82" title="Preferred Name" icon="comment" iconType="sharp-duotone-solid">
            Developer identifier: `users.preferredName`

            **Preferred Name.** Preferred name or nickname. It gives the user a human-readable provider label while its identifier remains the stable reference.

            * **Enables:** Label each user with preferred name from `users.preferredName`; distinguish records that share that display name but have different BambooHR identifiers.
            * **Interpretation:** BambooHR reports preferred name as display text for each user; names are mutable and are not stable identities.
          </Accordion>

          <Accordion id="provider-permission-field-bamboo-users-pronouns-a3d0c5e6e427" title="Pronouns" icon="circle-info" iconType="sharp-duotone-solid">
            Developer identifier: `users.pronouns`

            **Pronouns.** Preferred pronouns. It supplies the pronouns profile facet used to reconcile or attribute the user.

            * **Enables:** Reconcile the user's pronouns in `users.pronouns` with its provider profile or directory identity; confirm ambiguous matches with the stable provider ID.
            * **Interpretation:** BambooHR reports pronouns as a mutable profile or directory attribute on each user; it may be absent, shared, or non-unique.
          </Accordion>

          <Accordion id="provider-permission-field-bamboo-users-supervisor-2e6deaa234c7" title="Supervisor" icon="comment" iconType="sharp-duotone-solid">
            Developer identifier: `users.supervisor`

            **Supervisor.** Name of the employee's supervisor. It identifies the related provider object that gives the user its parent, owner, or container context.

            * **Enables:** Connect each user to the related supervisor in `users.supervisor` and verify that the referenced provider object resolves in the expected parent or container.
            * **Interpretation:** BambooHR reports supervisor as relationship context on each user; resolve it in the named provider namespace rather than by display text alone.
          </Accordion>

          <Accordion id="provider-permission-field-bamboo-users-workemail-c41b1927ca56" title="Work Email" icon="map-location-dot" iconType="sharp-duotone-solid">
            Developer identifier: `users.workEmail`

            **Work Email.** Work email address. It supplies the provider-reported address or location facet for the user, not a residency determination.

            * **Enables:** Attribute each user to a person or account by the exact work email in `users.workEmail`; identify addresses that do not match the BambooHR directory.
            * **Interpretation:** BambooHR reports work email as an address on each user; aliases, casing, and unverified addresses can prevent a one-to-one person match. A connector directive maps this field to a person's email identity.
          </Accordion>

          <Accordion id="provider-permission-field-bamboo-users-workphone-f79b3258cacb" title="Work Phone" icon="phone" iconType="sharp-duotone-solid">
            Developer identifier: `users.workPhone`

            **Work Phone.** Work phone number. It supplies the work phone profile facet used to reconcile or attribute the user.

            * **Enables:** Reconcile the user's work phone in `users.workPhone` with its provider profile or directory identity; confirm ambiguous matches with the stable provider ID.
            * **Interpretation:** BambooHR reports work phone as a mutable profile or directory attribute on each user; it may be absent, shared, or non-unique.
          </Accordion>

          <Accordion id="provider-permission-field-bamboo-users-workphoneextension-c06d122847cd" title="Work Phone Extension" icon="phone" iconType="sharp-duotone-solid">
            Developer identifier: `users.workPhoneExtension`

            **Work Phone Extension.** Work phone extension. It supplies the work phone extension profile facet used to reconcile or attribute the user.

            * **Enables:** Reconcile the user's work phone extension in `users.workPhoneExtension` with its provider profile or directory identity; confirm ambiguous matches with the stable provider ID.
            * **Interpretation:** BambooHR reports work phone extension as a mutable profile or directory attribute on each user; it may be absent, shared, or non-unique.
          </Accordion>
        </AccordionGroup>
      </Accordion>
    </AccordionGroup>
  </Tab>

  <Tab title="Troubleshooting">
    | Error              | Meaning                  | Solution                  |
    | ------------------ | ------------------------ | ------------------------- |
    | `401 Unauthorized` | Invalid API key          | Verify key is correct     |
    | `403 Forbidden`    | Insufficient permissions | Ensure admin access level |
    | `404 Not Found`    | Wrong subdomain          | Check subdomain in URL    |

    **[BambooHR API](https://documentation.bamboohr.com/reference)** — Official API documentation
  </Tab>
</Tabs>
