Other Integrations (BambooHR, AssetPanda, Kandji)
Relevant source files
The following files were used as context for generating this wiki page:The Quix platform extends its AI-powered capabilities beyond core software development and CRM tools by integrating with specialized services for Human Resources (HR), IT Asset Management, and Mobile Device Management (MDM). These integrations are provided as distinct agent packages, allowing Quix to perform actions within BambooHR, AssetPanda, and Kandji.
While not listed in the primary set of integrations like JIRA or GitHub, these packages follow a similar modular structure. They expose a set of tools that the AI agent can use to interact with external APIs, enabling users to manage employees, assets, and devices directly from Slack. These integrations are crucial for internal operations, streamlining workflows for IT and HR teams.
Sources: README.md:10-19, src/lib/constants.ts:35-195, agent-packages/packages/bamboohr/README.md, agent-packages/packages/assetpanda/README.md, agent-packages/packages/kandji/README.md
BambooHR
The BambooHR integration connects Quix to the human resources management platform, focusing on employee data and time off management.
Sources: agent-packages/packages/bamboohr/README.md:3-5, agent-packages/packages/bamboohr/src/tools.ts:8-27
Configuration
To enable the BambooHR integration, a configuration object with an API key and the company's subdomain is required.
| Property | Type | Description |
|---|---|---|
apiKey | string | BambooHR API key. |
subdomain | string | BambooHR company subdomain. |
enabled | boolean | (Optional) Whether the integration is enabled. |
Sources: agent-packages/packages/bamboohr/src/types.ts:4-8, agent-packages/packages/bamboohr/README.md:73-77
Tools and Workflow
The integration provides tools for both reading employee information and managing time off. A common workflow involves first listing employees to find a specific employeeId, which is then used in subsequent tool calls.
This diagram illustrates the typical workflow for checking an employee's time off balance.
The available tools are created via the createBambooHRToolsExport function, which initializes the BambooHRService and registers the tools.
Sources: agent-packages/packages/bamboohr/src/tools.ts:29-31
Available Tools
| Tool Name | Description | Key Parameters |
|---|---|---|
list_bamboohr_employees | Lists employees with basic information. | limit |
get_bamboohr_employee | Gets detailed information for a specific employee by ID. | employeeId |
get_bamboohr_employee_time_off_balance | Gets time off balances for a specific employee. | employeeId, endDate (optional) |
get_bamboohr_time_off_requests_for_employee | Retrieves time off requests for an employee, with optional filters. | employeeId, startDate, endDate, status |
get_bamboohr_time_off_types | Gets all available time off types and their IDs. | - |
create_bamboohr_time_off_request | Creates a new time off request for an employee. | employeeId, timeOffTypeId, start, end, amount |
Sources: agent-packages/packages/bamboohr/src/tools.ts:34-84, agent-packages/packages/bamboohr/README.md:9-52
Data Structures
The integration relies on specific data structures to model BambooHR entities.
| Interface | Description | Key Fields |
|---|---|---|
BambooHREmployee | Represents an employee record. | id, displayName, jobTitle, workEmail, department, supervisor |
BambooHRTimeOffBalance | Represents the time off balance for a specific leave type. | timeOffType, name, balance, units, usedYearToDate |
BambooHRTimeOffRequest | Represents a single time off request. | id, employeeId, status, name, start, end, type, amount |
BambooHRTimeOffTypeDetails | Represents the details of a time off category. | id, name, units, icon |
Sources: agent-packages/packages/bamboohr/src/types.ts:10-72
AssetPanda
The AssetPanda integration allows Quix to interact with the asset management platform to track hardware, software licenses, and employee records.
Sources: agent-packages/packages/assetpanda/README.md:3-5
Configuration
Connection to AssetPanda is configured using an API token.
| Setting | Type | Description |
|---|---|---|
apiToken | string | Your AssetPanda API token. |
enabled | boolean | (Optional) Enables the integration. |
Sources: agent-packages/packages/assetpanda/README.md:28-32
Features and Workflow
The integration supports a range of asset and user management tasks. The primary workflow involves managing the lifecycle of assets, from reservation to assignment and return.
The following diagram shows the process of assigning a new hardware asset to an employee.
Key Features
| Feature | Description | Associated API Endpoints |
|---|---|---|
| Create Employee Record | Add new employees to AssetPanda. | POST /users |
| Assign Asset to User | Allocate hardware assets to specific employees. | PATCH /groups/{group_id}/objects/{object_id} |
| Mark Asset as Returned | Unassign assets and mark them as available. | PATCH /groups/{group_id}/objects/{object_id} |
| Assign Software License | Allocate software licenses to employees. | PATCH /groups/{group_id}/objects/{object_id} |
| Reclaim Software License | Free up license seats from employees. | PATCH /groups/{group_id}/objects/{object_id} |
| Check Asset Availability | Search for available assets by type. | POST /groups/{group_id}/objects/search |
| List Users/Groups | View all employees or asset groups. | GET /users, GET /groups |
Sources: agent-packages/packages/assetpanda/README.md:9-23, agent-packages/packages/assetpanda/README.md:83-88
Kandji
The Kandji integration provides tools to manage Apple devices through the Kandji MDM platform, supporting device information retrieval and remote management actions.
Sources: agent-packages/packages/kandji/README.md:3-5
Configuration
Configuration requires an API key and the organization-specific Kandji instance URL.
| Property | Type | Description |
|---|---|---|
apiKey | string | Your Kandji API key. |
baseUrl | string | Your Kandji instance URL (e.g., https://yourorg.api.kandji.io). |
Sources: agent-packages/packages/kandji/README.md:44-48
Tools and Workflow
The integration offers tools for both inspecting device state and executing remote commands. Most actions require the device to be online and MDM-managed.
This diagram shows a common remote device management workflow.
Available Tools
| Category | Tool Name | Description |
|---|---|---|
| Device Information | list_kandji_devices | Lists devices managed by Kandji with optional search. |
get_kandji_device | Gets detailed information for a specific device. | |
| Device Management | lock_kandji_device | Remotely locks a device. |
shutdown_kandji_device | Shuts down a macOS device. | |
restart_kandji_device | Restarts a macOS device. | |
reinstall_kandji_agent | Reinstalls the Kandji agent on a device. | |
reset_kandji_device | (Warning) Completely erases all data from a device. | |
unlock_kandji_user_account | Unlocks a local user account on a device. | |
send_blank_push_kandji | Forces the device to check in with Kandji. | |
set_kandji_device_name | Sets the name of a managed device. |
Sources: agent-packages/packages/kandji/README.md:9-41
System Integration
These integrations, while specialized, are loaded into the Quix system in the same manner as more common ones like Jira or GitHub. The app_home.service.ts and app_home.ts files show how these tools are discovered and presented to the user in the Slack App Home interface, allowing admins to connect and configure them. Although not explicitly listed in the main INTEGRATIONS constant, the system is designed to accommodate such custom or less-common agent packages.
Sources: src/slack/views/app_home.ts:24-37, src/slack/app_home.service.ts:442-475