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

# Service Now

> Connect Service Now to KODE OS for work orders data

> Connect Service Now to KODE OS for work orders data integration

## Overview

Use this integration to connect ServiceNow to KODE OS. You can ingest tickets and work order data over REST and webhooks with hybrid snapshot collection so IT and facilities work stays visible next to your building data.

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

## Supported Capabilities

* Collect Sensor Data
* Receive Webhook Data

## Prerequisites

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

### Vendor Onboarding References

Use these official vendor resources to verify API access, credentials, and permission prerequisites:

* [ServiceNow REST authentication](https://www.servicenow.com/docs/r/platform-security/authentication/api-key-and-hmac-rest-apis.html)
* [ServiceNow basic auth examples](https://www.servicenow.com/docs/r/api-reference/web-services/r_BasicAuthenticationExamples.html)

## Generate API Credentials

1. Log in to the Service Now 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 Service Now 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 **Service Now**
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          |
| **Username**            | Yes      | text     | The username for authenticating with the external system   |
| **Password**            | Yes      | password | The password for authenticating with the external system   |
| **Client ID**           | Yes      | password | The OAuth client ID from the vendor's developer portal     |
| **Client Secret**       | Yes      | password | The OAuth client secret from the vendor's developer portal |
| **Assignment Group ID** | Yes      | text     | The assignment group identifier for routing work orders    |

## What Data You Get

### Work Orders

Maintenance and service requests including title, description, status, priority, assignee, due dates, vendor response, resolution details, and cost estimates

KODE OS maps Service Now data to these standard fields:

| KODE Field            | Source Field        | Notes |
| --------------------- | ------------------- | ----- |
| **id**                | `id`                | --    |
| **title**             | `title`             | --    |
| **description**       | `description`       | --    |
| **status**            | `status`            | --    |
| **priority**          | `priority`          | --    |
| **category**          | `category`          | --    |
| **location**          | `location`          | --    |
| **createdBy**         | `createdBy`         | --    |
| **assignedTo**        | `assignedTo`        | --    |
| **assignmentGroup**   | `assignmentGroup`   | --    |
| **createdAt**         | `createdAt`         | --    |
| **updatedAt**         | `updatedAt`         | --    |
| **dueDate**           | `dueDate`           | --    |
| **resolutionDetails** | `resolutionDetails` | --    |
| **lastComment**       | `lastComment`       | --    |
| **externalUrl**       | `url`               | --    |

### Polling Schedule

* **WorkOrder**

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 work order in ServiceNow

| Field                    | Type       | Required | Input     | Options / Default                           |
| ------------------------ | ---------- | -------- | --------- | ------------------------------------------- |
| **Priority**             | STRING     | Yes      | Drop Down | Static: priority options                    |
| **Category**             | STRING     | Yes      | Drop Down | Dynamic: fetched from ServiceNow categories |
| **Location**             | STRING     | Yes      | Text Area | --                                          |
| **Description**          | STRING     | Yes      | Text Box  | --                                          |
| **Due Date**             | DATE\_TIME | No       | Text Box  | --                                          |
| **Assigned To**          | STRING     | No       | Text Box  | --                                          |
| **KODE Work Order Link** | URL        | No       | Text Box  | --                                          |

#### Example Request

```json theme={null}
{
  "priority": "priority options",
  "category": "example-value",
  "location": "example-value",
  "description": "example-value",
  "due_date": "2026-03-29T10:00:00Z",
  "assigned_to": "example-value"
}
```

#### 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 maintenance requests and work order status from facility management systems
* Create and update work orders directly from KODE OS when issues are detected
* Track maintenance KPIs including response time, completion rate, and cost

## 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 Service Now developer portal.
  </Accordion>

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