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

# CloudGate

> Connect CloudGate to KODE OS for reservations data

> Connect CloudGate to KODE OS for reservations data integration

## Overview

Use this integration to connect CloudGate visitor identity and access workflows to KODE OS. REST pulls and webhooks feed reservation and visitor-related data into the platform, including where actions are enabled for your connector.

| Property            | Value          |
| ------------------- | -------------- |
| **System Type**     | Reservations   |
| **Communication**   | REST + Webhook |
| **Collection**      | Pull           |
| **Collection Mode** | SNAPSHOT       |
| **Actions**         | Supported      |

## Supported Capabilities

* Collect Sensor Data
* Receive Webhook Data

## Prerequisites

* An active account with CloudGate and access to their API or developer portal
* OAuth client credentials (Client ID and Client Secret) from the CloudGate developer portal
* KODE OS environment with access to Data Sources

## Generate API Credentials

1. Log in to the CloudGate developer portal or admin console
2. Navigate to the API or developer settings section
3. Create a new API application or client
4. Note the **Client ID** and **Client Secret** -- you will need these when configuring the connector in KODE OS

## Configure Webhook

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

1. Copy the webhook URL provided on the connector detail page
2. In the CloudGate 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

## Configure Connector in KODE OS

1. Navigate to **Data Sources** in your building
2. Click **API Catalog** and search for **CloudGate**
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          |
| **Location ID**    | Yes      | text     | The location identifier in the external system             |
| **Application ID** | Yes      | password | The application ID from the vendor's developer portal      |
| **Client Secret**  | Yes      | password | The OAuth client secret from the vendor's developer portal |

## Devices and Points

| Point    | Display Name |
| -------- | ------------ |
| `200`    | 200          |
| `401`    | 401          |
| `LogIn`  | LogIn        |
| `LogOut` | LogOut       |

## What Data You Get

### Bookings

Space reservation records including attendees, check-in/out times, confirmation status, and room/space details

KODE OS maps CloudGate data to these standard fields:

| KODE Field           | Source Field           | Notes       |
| -------------------- | ---------------------- | ----------- |
| **id**               | `visitId`              | --          |
| **checkInDateTime**  | `actionDateTimeMillis` | --          |
| **checkOutDateTime** | `actionDateTimeMillis` | --          |
| **createdAt**        | `actionDateTimeMillis` | --          |
| **createdBy**        | `createdBy`            | --          |
| **isCanceled**       | `false`                | --          |
| **updatedAt**        | `actionDateTimeMillis` | --          |
| **updatedBy**        | `createdBy`            | --          |
| **updatedAt**        | `actionDateTimeMillis` | --          |
| **canceledAt**       | `actionDateTimeMillis` | --          |
| **updatedBy**        | `updatedBy`            | --          |
| **isCanceled**       | `true`                 | --          |
| **checkInDateTime**  | `actionDateTimeMillis` | conditional |
| **checkOutDateTime** | `actionDateTimeMillis` | conditional |

### Polling Schedule

* **Booking**

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

## Available Actions

### Create Booking

**Type:** Write

Creates a new visitor booking in CloudGate

| Field               | Type       | Required | Input    | Options / Default |
| ------------------- | ---------- | -------- | -------- | ----------------- |
| **Visit ID**        | STRING     | Yes      | Text Box | --                |
| **Purpose**         | STRING     | Yes      | Text Box | --                |
| **Start**           | DATE\_TIME | Yes      | Text Box | --                |
| **End**             | DATE\_TIME | Yes      | Text Box | --                |
| **Visitor ID**      | STRING     | Yes      | Text Box | --                |
| **Visitor Name**    | STRING     | No       | Text Box | --                |
| **Email**           | STRING     | No       | Text Box | --                |
| **Phone**           | STRING     | No       | Text Box | --                |
| **Host Name**       | STRING     | No       | Text Box | --                |
| **Action DateTime** | DATE\_TIME | Yes      | Text Box | --                |
| **Created By**      | STRING     | Yes      | Text Box | --                |

#### Example Request

```json theme={null}
{
  "visit_id": "12345",
  "purpose": "example-value",
  "start": "2026-03-29T10:00:00Z",
  "end": "2026-03-29T10:00:00Z",
  "visitor_id": "12345",
  "action_datetime": "2026-03-29T10:00:00Z",
  "created_by": "example-value",
  "visitor_name": "example-value",
  "email": "ops@example.com"
}
```

#### Expected Result

* KODE OS sends the action to the external API using the configured connector credentials
* The external system returns success (typically HTTP 2xx) and processes the requested operation

### Update Booking

**Type:** Write

Updates an existing visitor booking in CloudGate

| Field          | Type       | Required | Input    | Options / Default |
| -------------- | ---------- | -------- | -------- | ----------------- |
| **Visit ID**   | STRING     | Yes      | Text Box | --                |
| **Purpose**    | STRING     | Yes      | Text Box | --                |
| **Start**      | DATE\_TIME | Yes      | Text Box | --                |
| **End**        | DATE\_TIME | Yes      | Text Box | --                |
| **Visitor ID** | STRING     | Yes      | Text Box | --                |
| **Updated By** | STRING     | Yes      | Text Box | --                |

#### Example Request

```json theme={null}
{
  "visit_id": "12345",
  "purpose": "example-value",
  "start": "2026-03-29T10:00:00Z",
  "end": "2026-03-29T10:00:00Z",
  "visitor_id": "12345",
  "updated_by": "2026-03-29T10:00:00Z"
}
```

#### Expected Result

* KODE OS sends the action to the external API using the configured connector credentials
* The external system returns success (typically HTTP 2xx) and processes the requested operation

### Cancel Booking

**Type:** Write

Cancels an existing visitor booking in CloudGate

| Field               | Type       | Required | Input    | Options / Default |
| ------------------- | ---------- | -------- | -------- | ----------------- |
| **Visit ID**        | STRING     | Yes      | Text Box | --                |
| **Action DateTime** | DATE\_TIME | Yes      | Text Box | --                |
| **Updated By**      | STRING     | Yes      | Text Box | --                |

#### Example Request

```json theme={null}
{
  "visit_id": "12345",
  "action_datetime": "2026-03-29T10:00:00Z",
  "updated_by": "2026-03-29T10:00:00Z"
}
```

#### Expected Result

* KODE OS sends the action to the external API using the configured connector credentials
* The external system returns success (typically HTTP 2xx) and processes the requested operation

### Mark Attendance

**Type:** Write

Records check-in/check-out for a visitor booking

| Field              | Type       | Required | Input    | Options / Default |
| ------------------ | ---------- | -------- | -------- | ----------------- |
| **Order Number**   | STRING     | Yes      | Text Box | --                |
| **Barcode**        | STRING     | Yes      | Text Box | --                |
| **Check-In Time**  | DATE\_TIME | No       | Text Box | --                |
| **Check-Out Time** | DATE\_TIME | No       | Text Box | --                |

#### Example Request

```json theme={null}
{
  "OrderNumber": "example-value",
  "Barcode": "example-value",
  "CheckInTime": "2026-03-29T10:00:00Z",
  "CheckOutTime": "2026-03-29T10:00:00Z"
}
```

#### Expected Result

* KODE OS sends the action to the external API using the configured connector credentials
* The external system returns success (typically HTTP 2xx) and processes the requested operation

### Update Booking Status

**Type:** Write

Updates the status of a visitor booking in CloudGate

| Field               | Type       | Required | Input    | Options / Default |
| ------------------- | ---------- | -------- | -------- | ----------------- |
| **Event**           | STRING     | Yes      | Text Box | --                |
| **Visit ID**        | STRING     | Yes      | Text Box | --                |
| **Action DateTime** | DATE\_TIME | Yes      | Text Box | --                |

#### Example Request

```json theme={null}
{
  "event": "example-value",
  "visit_id": "12345",
  "action_datetime": "2026-03-29T10:00:00Z"
}
```

#### Expected Result

* KODE OS sends the action to the external API using the configured connector credentials
* The external system returns success (typically HTTP 2xx) and processes the requested operation

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 space and resource booking data across platforms
* Track no-show rates and actual utilization versus bookings
* Coordinate meeting room conditions (HVAC, lighting) with reservation schedules

## 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 Client ID and Client Secret match the values from the CloudGate developer portal.
  </Accordion>

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