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

# Vantify

> Connect Vantify to KODE OS for work order management, events, and webhook notifications

> Connect Vantify to KODE OS for work orders data integration

## Overview

Use this integration to connect Vantify to KODE OS for facilities maintenance and work orders. You can poll work orders over REST, receive real-time updates through webhooks with historical collection, and create work orders from the KODE OS dashboard when actions are enabled.

| Property            | Value                |
| ------------------- | -------------------- |
| **System Type**     | Work Orders          |
| **Communication**   | REST + Webhook       |
| **Collection**      | Hybrid (Pull + Push) |
| **Collection Mode** | HISTORICAL           |
| **Actions**         | Supported            |

## Supported Capabilities

* Collect Non-Sensor Data (Work Orders)
* Receive Webhook Events
* Create Work Orders (Action)

## Prerequisites

* An active Vantify account with API access
* Username and password credentials for the Vantify platform
* The Vantify Site ID for the building you want to connect
* KODE OS environment with access to Data Sources

## Configure Webhook

This integration uses webhooks for real-time event notifications. After creating the connector in KODE OS:

1. Copy the webhook URL provided on the connector detail page
2. In the Vantify platform, navigate to the webhook or notification settings
3. Add a new webhook endpoint using the KODE OS URL
4. Configure the authentication header as specified on the connector detail page
5. Save and enable the webhook

<Note>
  Vantify supports these webhook event types: `job_created`, `job_message`, `job_alarm_updated`, `job_operation_completed`, `job_operation_commenced`, `job_approval_requested`, `job_approval_accepted`, `job_assignment_requested`, `job_contact_updated`, `job_operation_acknowledged`, `job_assignment_reassigned`, `job_file_created`, `job_operation_cancelled`, `job_operation_reopened`, `job_proposal_requested`
</Note>

## Configure Connector in KODE OS

1. Navigate to **Data Sources** in your building
2. Click **API Catalog** and search for **Vantify**
3. Click **+ Add Datasource**
4. Fill in the fields below and complete the three-page setup flow

| Field              | Required | Type     | Description                                  |
| ------------------ | -------- | -------- | -------------------------------------------- |
| **Connector Name** | Yes      | text     | Display name for this connector              |
| **URL**            | Yes      | text     | Base URL of the Vantify API server           |
| **Username**       | Yes      | text     | Vantify login username                       |
| **Password**       | Yes      | password | Vantify login password (encrypted)           |
| **Site ID**        | Yes      | text     | The Vantify site identifier for the building |

## What Data You Get

### Work Orders

Work orders are polled every 15 minutes from the Vantify Jobs API. Each work order is mapped to the KODE OS standard format:

| #  | Source Field              | KODE Field          | Notes                       |
| -- | ------------------------- | ------------------- | --------------------------- |
| 1  | `id`                      | `id`                | Unique job identifier       |
| 2  | `summary`                 | `title`             | Work order title            |
| 3  | `description`             | `description`       | Detailed description        |
| 4  | `type`                    | `type`              | Job type                    |
| 5  | `status`                  | `status`            | Current status              |
| 6  | `createdAt`               | `created_at`        | Job creation timestamp      |
| 7  | `completionDueAt`         | `due_date`          | Due date for completion     |
| 8  | `lastModified`            | `updated_at`        | Last modification timestamp |
| 9  | `serviceProviderName`     | `service_provider`  | Assigned service provider   |
| 10 | `_links.site.id`          | `api_building_id`   | Vantify site reference      |
| 11 | `_links.site.title`       | `api_building_name` | Site name                   |
| 12 | `_links.site.address`     | `location`          | Site address                |
| 13 | `_embedded.jobgroup.name` | `assignment_group`  | Assignment group            |
| 14 | `_embedded.priority.name` | `priority`          | Priority level              |

### Events

Webhook-driven events are captured in real time and mapped to the KODE OS Event model:

| #  | Source Field                    | KODE Field             | Notes                                                    |
| -- | ------------------------------- | ---------------------- | -------------------------------------------------------- |
| 1  | `id`                            | `id`                   | Fallback: `uniqueId`, then composite key                 |
| 2  | `type`                          | `name`                 | Webhook event type (e.g., `job_created`)                 |
| 3  | `note` / `body` / `description` | `description`          | Fallback order; for `job_message`: author info prepended |
| 4  | (fixed)                         | `type`                 | Always "Event"                                           |
| 5  | (fixed)                         | `category`             | Always "WorkOrder"                                       |
| 6  | `extraData.location.name`       | `location`             | Parent and child location names                          |
| 7  | `createdAt`                     | `createdAtUtc`         | Event timestamp                                          |
| 8  | `externalId`                    | custom: `job_id`       | Related job identifier                                   |
| 9  | `client`                        | custom: `client`       | Client name                                              |
| 10 | `userDetails`                   | custom: `user_details` | User name and email pairs                                |

### Polling Schedule

* **Work Orders** -- REST poll every 15 minutes (min: 15 minutes, max: 1 hour)
* **Events** -- Real-time via webhook (no polling)

For more details on collection modes, see the [Data Collection guide](/products/integrations/capabilities/data-collection).

## Available Actions

### Create Work Order

**Type:** Write

Creates a new reactive work order in the Vantify system. The Site ID is automatically inherited from the connector configuration.

| Field                | Type   | Required | Input     | Notes                                              |
| -------------------- | ------ | -------- | --------- | -------------------------------------------------- |
| **Title**            | STRING | Yes      | Text Box  | Work order summary                                 |
| **Description**      | STRING | Yes      | Text Area | Detailed description                               |
| **Assignment Group** | STRING | Yes      | Drop Down | Dynamic list from Vantify active job groups        |
| **Service Provider** | STRING | Yes      | Drop Down | Dynamic list from Vantify active service providers |
| **Priority**         | STRING | Yes      | Drop Down | Dynamic list from Vantify priority levels          |

<Note>
  New work orders are always created as **reactive** type with an initial status of **assignment\_pending**. The site ID is automatically set from the connector configuration.
</Note>

#### Example Request

```json theme={null}
{
  "summary": "AHU-3 high discharge temperature alarm",
  "description": "Create technician dispatch to inspect AHU-3 and verify cooling valve operation.",
  "jobGroup": "HVAC",
  "serviceProvider": "Preferred HVAC Vendor",
  "priority": "High"
}
```

#### Expected Result

* KODE OS sends the action to the Vantify Jobs API using the configured connector credentials
* Vantify creates a new reactive work order with status `assignment_pending` and returns a success response

For more details on how actions work, see the [Actions guide](/products/integrations/capabilities/actions).

## Use Cases

Once connected, this integration enables you to:

* Centralize maintenance requests and work order status from the Vantify CAFM platform
* Create reactive work orders directly from KODE OS when issues are detected by sensors or alarms
* Receive real-time webhook notifications for work order lifecycle events (created, assigned, completed, cancelled)
* Track maintenance KPIs including response time, completion rate, and service provider performance

## Troubleshooting

<AccordionGroup>
  <Accordion title="Authentication or connection error">
    Verify that the username and password are correct and the account has not been locked. Check that the URL is reachable from the KODE OS environment. Vantify uses JWT-based authentication -- the token is obtained from the `/auth` endpoint using your credentials.
  </Accordion>

  <Accordion title="Webhook data not arriving">
    Verify the webhook URL is correctly registered in the Vantify platform. Check that the authentication header matches the value from the KODE OS connector detail page. Ensure the Vantify system can reach the KODE OS webhook endpoint over the network.
  </Accordion>

  <Accordion title="Work orders not syncing">
    Verify the Site ID in the connector configuration matches the Vantify site you want to monitor. Check that the credentials have permission to access the Jobs API for that site.
  </Accordion>

  <Accordion title="Data collection stops or gaps appear">
    Check the connector status on the Data Sources page. If the status shows an error, review the error logs on the connector detail page. Common causes include expired passwords, network changes, or the Vantify API being temporarily unavailable.
  </Accordion>
</AccordionGroup>
