> ## 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.

# Integriti

> Connect Integriti to KODE OS for access control data

> Connect Integriti to KODE OS for access control data integration

## Overview

Use this integration to connect your Integriti access control system to KODE OS. You can discover devices and points, collect security and access data, and manage schedules when your deployment supports schedule discovery and updates.

| Property            | Value          |
| ------------------- | -------------- |
| **System Type**     | Access Control |
| **Communication**   | REST           |
| **Collection**      | Pull           |
| **Collection Mode** | SNAPSHOT       |
| **Schedules**       | Supported      |

## Supported Capabilities

* Discover Devices & Points
* Collect Sensor Data
* Collect Non-Sensor Data
* Discover Schedules
* Update Schedules

## Prerequisites

* An active account with Integriti and access to their API or developer portal
* API key or token from the Integriti platform
* KODE OS environment with access to Data Sources

## Generate API Credentials

1. Log in to the Integriti platform or admin console
2. Navigate to the API settings, developer section, or account settings
3. Generate a new API key or token
4. Copy the key and store it securely -- you will need it when configuring the connector in KODE OS

## Configure Connector in KODE OS

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

| Field                                | Required    | Type     | Description                                              |
| ------------------------------------ | ----------- | -------- | -------------------------------------------------------- |
| **URL**                              | Yes         | text     | The base URL or IP address of the external system        |
| **Client Version**                   | Yes         | dropdown | The version of the vendor's API client                   |
| **API Key**                          | Conditional | text     | The API key for authenticating with the external system  |
| **Username**                         | Yes         | text     | The username for authenticating with the external system |
| **Password**                         | Yes         | password | The password for authenticating with the external system |
| **Access/Security Events Filter ID** | No          | text     | The filter ID for access and security events             |
| **Access Control Rules Filter ID**   | No          | text     | The filter ID for access control rules                   |
| **Input Filter IDs**                 | No          | text     | Comma-separated filter IDs for input events              |
| **Auxiliary Filter IDs**             | No          | text     | Comma-separated filter IDs for auxiliary events          |

## Discover Devices and Points

After configuring the connector, click **Discover** on the connector detail page. KODE OS will query the Integriti system and return a list of available devices and their data points.

Review the discovered items and select the devices you want to register in KODE OS.

For more details on the discovery process, see the [Discovery guide](/products/integrations/capabilities/discovery).

## Devices and Points

When you discover devices from Integriti, KODE OS maps them to the following device types and data points:

### Access Controller

Canonical Type: `default`

| #  | Point           | Description                                                                  | Unit  | Writable | Ontology Field          | Collection |
| -- | --------------- | ---------------------------------------------------------------------------- | ----- | -------- | ----------------------- | ---------- |
| 1  | `state`         | Current operating state                                                      | --    | No       | --                      | Polling    |
| 2  | `status`        | Current operating status                                                     | --    | No       | --                      | Polling    |
| 3  | `holdUp`        | **True** -- holdUp is active / **False** -- holdUp is not active             | --    | No       | --                      | Polling    |
| 4  | `entryState`    | **True** -- entryState is active / **False** -- entryState is not active     | --    | No       | --                      | Polling    |
| 5  | `exitState`     | Cumulative count of people exiting                                           | --    | No       | --                      | Polling    |
| 6  | `siren`         | **True** -- siren is active / **False** -- siren is not active               | --    | No       | --                      | Polling    |
| 7  | `pulse`         | **True** -- pulse is active / **False** -- pulse is not active               | --    | No       | --                      | Polling    |
| 8  | `defer`         | **True** -- defer is active / **False** -- defer is not active               | --    | No       | --                      | Polling    |
| 9  | `warn`          | **True** -- warn is active / **False** -- warn is not active                 | --    | No       | --                      | Polling    |
| 10 | `sirenHoldOff`  | **True** -- sirenHoldOff is active / **False** -- sirenHoldOff is not active | --    | No       | --                      | Polling    |
| 11 | `userCount`     | Number of unique users                                                       | count | No       | --                      | Polling    |
| 12 | `summary`       | Alarm/event summary text                                                     | --    | No       | --                      | Polling    |
| 13 | `is_on`         | **True** -- is\_on is active / **False** -- is\_on is not active             | --    | No       | --                      | Polling    |
| 14 | `is_open`       | **True** -- door is open / **False** -- door is closed                       | --    | No       | `door_status`           | Polling    |
| 15 | `is_forced`     | **True** -- medium-priority alarm is active / **False** -- no alarm          | --    | No       | `medium_priority_alarm` | Polling    |
| 16 | `open_too_long` | **True** -- medium-priority alarm is active / **False** -- no alarm          | --    | No       | `medium_priority_alarm` | Polling    |

## What Data You Get

### Point History

Time-series readings including state, status, holdUp, entryState, exitState, siren, pulse, defer, and 8 more, collected at regular intervals from connected devices

### Event Logs

System and security event records with timestamps, event types, and associated devices

KODE OS maps Integriti data to these standard fields:

| KODE Field       | Source Field                   | Notes                |
| ---------------- | ------------------------------ | -------------------- |
| **category**     | `EventCategory.ACCESS_CONTROL` | --                   |
| **id**           | `id`                           | --                   |
| **name**         | `type`                         | --                   |
| **description**  | `text`                         | --                   |
| **deviceId**     | `controller_id`                | --                   |
| **deviceName**   | `controllerName`               | --                   |
| **createdAt**    | `utcTimeGenerated`             | transformed          |
| **customFields** | `(custom fields)`              | custom fields object |

### Access Control

Access control records including card reader events, credential verification, and zone access

KODE OS maps the collected data to these standard fields:

| KODE Field          | Description                                     |
| ------------------- | ----------------------------------------------- |
| **ID**              | Unique log entry identifier                     |
| **Description**     | Event description                               |
| **Person Name**     | Name of the person involved                     |
| **Credential ID**   | Badge or credential identifier used             |
| **Credential Type** | Type of credential (e.g., Card, PIN, Biometric) |
| **Role**            | Access role or clearance level                  |
| **Type**            | Event type (e.g., Entry, Exit, Denied)          |
| **Result**          | Access result (Granted, Denied, Error)          |
| **Access Point**    | Door or access point name                       |
| **Location**        | Physical location of the access point           |
| **Access Time**     | Timestamp of the access event                   |
| **Created At**      | Timestamp when the log was recorded             |

### Schedule Sync

Schedule state synchronization data between KODE OS and the external system's controller schedules

### Polling Schedule

* **Point History** -- Default polling: 1 minutes (min: 1 minutes, max: 1 hours)
* **EventLog** -- Default polling: 15 minutes (min: 15 minutes, max: 1 days)
* **AccessControl** -- Default polling: 15 minutes (min: 15 minutes, max: 1 days)

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

## Schedule Management

This integration supports discovering and managing schedules in the Integriti system. You can discover existing schedules, create new ones, and sync schedule states between KODE OS and the external system.

For more details, see the [Schedules guide](/products/integrations/capabilities/schedules).

## Use Cases

Once connected, this integration enables you to:

* Centralize access event monitoring across all entry points and zones
* Generate audit trails for security compliance and investigation
* Correlate access patterns with occupancy and energy data for building optimization

## Troubleshooting

<AccordionGroup>
  <Accordion title="Authentication or connection error">
    Verify that the credentials are correct and have not expired. Check that the URL is reachable from the KODE OS environment. Ensure the API key or token is valid and has not been revoked or expired in the Integriti platform.
  </Accordion>

  <Accordion title="Discovery returns no devices">
    Verify the connector credentials have sufficient permissions in the Integriti system to list devices. Run a test connection first to confirm connectivity. Some systems require specific API scopes or roles for device enumeration.
  </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 credentials, network changes, or rate limiting by the Integriti API.
  </Accordion>
</AccordionGroup>
