# Beeline

### Overview

**Early Access**: Beeline is available in Early Access. Please contact our support team to enable the integration.

The Veza integration for the Beeline workforce platform enables discovery of Beeline employees, and can be enabled as a source of identity for lifecycle management policies. HRIS metadata from Beeline can be used to enrich queries, access reviews, and enable provisioning and de-provisioning flows when employees are added or removed, or their status changes.

### Configuring Beeline

The Veza Beeline connector uses Beeline's Reporting as a Service (RaaS) feature to retrieve employees and their attributes.

After enabling RaaS, a BeeLine report with the corresponding values must be created in advance. Please contact our support team to coordinate report creation for the latest supported attributes.

1. Ensure that the RaaS feature is enabled.
2. Generate an API key for the integration user, that Veza will use for the discovery. This user can be an existing Beeline user or a new user.
   1. Note the `ClientSecret`, `UserName` and `UserAPIKey` from the API Authentication Page
3. Find the **Report ID** by opening it in your browser and copying the UUID value from the URL. The report ID will be the part after the `ReportID=` parameter.
4. Note your **Customer ID** or **Project ID** from the Beeline URL. This will be the value after `beeline.com` such as `beeline.com/acme/` or `beeline.com/proj1345` depending on if it is a production or development tenant.

#### Configuring the Beeline Integration on Veza

1. On the Veza **Integrations** page, click **Add Integration** and locate the Beeline tile.
2. Configure the integration with the following fields:
   1. **Name** - Name for the integration
   2. **Site ID** - Customer or Project identifier for the Beeline instance
   3. **Client Secret** - Client secret value from the API key generated
   4. **User Name** - User name for corresponding API key
   5. **User API Key** - The API key value
   6. **Report ID** - UUID identifier for published report
   7. **URL** - Optional: For non-production tenants the URL for connecting to the API. For development projects sites this value is typically `https://projapi.beeline.com`.
   8. **Employee Number Property** - Optional: Use a specific property as the employee number (e.g. `udf1`). If unset, defaults to using `beelineUniqueID`
   9. **Timezone** - Optional: Time zone of the Beeline instance, used while fetching the report. Defaults to Eastern (the default for US Beeline instances).
3. Enable lifecycle management (optional): On the **Integrations** page, find the BeeLine integration. In the **Lifecycle Management** column, toggle the slider to enable the integration as an identity source.

### Notes and Supported Entities

#### Beeline Employee

When enabled as a provisioning source, Veza ingests Beeline employees as `CustomHRISEmployee` entity types for use in [Lifecycle Management](/4yItIzMvkpAvMVFAamTf/features/lifecycle-management/integrations.md) identity source policies.

Employee fields ingested by Veza will depend on the report configuration. Currently, the following attributes are supported:

**Standard HRIS fields:**

| JSON Field                            | Used As           | Notes                                                                                |
| ------------------------------------- | ----------------- | ------------------------------------------------------------------------------------ |
| `beelineUniqueID`                     | id                |                                                                                      |
| `beelineUniqueID`                     | employee number   | Configurable via the `EmployeeNumberProperty` setting; defaults to `beelineUniqueID` |
| `firstName`, `lastName`               | name              | Concatenated as `{firstName} {lastName}`                                             |
| `firstName`                           | first name        |                                                                                      |
| `lastName`                            | last name         |                                                                                      |
| `firstName`, `middleName`, `lastName` | display full name | Concatenated as `{firstName} {middleName} {lastName}`                                |
| `firstName`, `lastName`               | preferred name    | Same value as name                                                                   |
| `firstName`, `lastName`               | canonical name    | Same value as name                                                                   |
| `jobTitleName`                        | job title         |                                                                                      |
| `workLocationCode`                    | work location     |                                                                                      |
| `startDate`                           | start date        | RFC3339 timestamp                                                                    |
| `endDate`                             | termination date  | RFC3339 timestamp                                                                    |
| `emailAddress`                        | email             |                                                                                      |
| `beelineWorkerUserName`               | username          |                                                                                      |
| `workerType`                          | employment status |                                                                                      |
| `recordIdentifier`                    | is active         | `"Active"` evaluates to `true`; all other values evaluate to `false`                 |
| `hiringManagerUserName`               | manager           | Resolved to an employee by matching the username                                     |
| `costCenterCode`                      | cost center       | Only set when non-empty; `costCenterName` is used as the group display name          |

**Custom properties:**

| JSON Field                    | Custom Property Name             | Notes                                                  |
| ----------------------------- | -------------------------------- | ------------------------------------------------------ |
| `recordIdentifier`            | `record_identifier`              |                                                        |
| `formerContractor`            | `former_contractor`              | `"Yes"` stored as `true` (boolean)                     |
| `formerEmployee`              | `former_employee`                | `"Yes"` stored as `true` (boolean)                     |
| `beelineAssignmentID`         | `beeline_assignment_id`          | Integer value stored as string                         |
| `effectiveDate`               | `effective_date`                 |                                                        |
| `transactionDate`             | `transaction_date`               |                                                        |
| `phoneNumber`                 | `phone_number`                   |                                                        |
| `terminationReason`           | `termination_reason`             |                                                        |
| `workLocationName`            | `work_location_name`             |                                                        |
| `hiringManagerUserName`       | `hiring_manager_user_name`       |                                                        |
| `hiringManagerFirstName`      | `hiring_manager_first_name`      |                                                        |
| `hiringManagerLastName`       | `hiring_manager_last_name`       |                                                        |
| `timeSheetApproverUserName`   | `time_sheet_approver_user_name`  |                                                        |
| `timeSheetApproverFirstName`  | `time_sheet_approver_first_name` |                                                        |
| `timeSheetApproverLastName`   | `time_sheet_approver_last_name`  |                                                        |
| `ouCode`                      | `ou_code`                        |                                                        |
| `ouName`                      | `ou_name`                        |                                                        |
| `costCenterCode`              | `cost_center_code`               | Only set when `costCenterCode` is non-empty            |
| `costCenterName`              | `cost_center_name`               | Only set when `costCenterCode` is non-empty            |
| `projectCode`                 | `project_code`                   |                                                        |
| `projectName`                 | `project_name`                   |                                                        |
| `assignmentLaborCategoryCode` | `assignment_labor_category_code` |                                                        |
| `assignmentLaborCategoryName` | `assignment_labor_category_name` |                                                        |
| `supplierCode`                | `supplier_code`                  |                                                        |
| `supplierName`                | `supplier_name`                  |                                                        |
| `hoursPerWeek`                | `hours_per_week`                 |                                                        |
| `currency`                    | `currency`                       |                                                        |
| `billRateFrequency`           | `bill_rate_frequency`            |                                                        |
| `billRateRT`                  | `bill_rate_rt`                   | Float stored as string with 3 decimal places           |
| `billRateOT`                  | `bill_rate_ot`                   | Float stored as string with 3 decimal places           |
| `billRateDT`                  | `bill_rate_dt`                   | Float stored as string with 3 decimal places           |
| `payRate`                     | `pay_rate`                       | Float stored as string with 3 decimal places           |
| `workerType`                  | `employee_type`                  |                                                        |
| `jobTitleCode`                | `job_title_code`                 |                                                        |
| `startDate`                   | `current_start_date`             | Reformatted as RFC3339 string                          |
| `endDate`                     | `current_end_date`               | Reformatted as RFC3339 string; only set when non-empty |
| `udf1` – `udf10`              | `udf1` – `udf10`                 | User-defined fields                                    |


---

# Agent Instructions: 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:

```
GET https://docs.veza.com/4yItIzMvkpAvMVFAamTf/integrations/integrations/beeline.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
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.
