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

# Integration

> How Prizm creates ServiceNow incidents, what data is included, how bidirectional sync works, and how resolution data and conversations are pulled back into Prizm.

<script type="application/ld+json">
  {`{
            "@context": "https://schema.org",
            "@type": "TechArticle",
            "headline": "ServiceNow Integration",
            "description": "How Prizm creates ServiceNow incidents, what data is included, how bidirectional sync works, and how resolution data and conversations are pulled back into Prizm.",
            "url": "https://docs.dqlabs.ai/integrations/servicenow/integration",
            "publisher": {
              "@type": "Organization",
              "name": "DQLabs Inc",
              "logo": "https://media.brand.dev/332adc35-5bc4-4d2b-bf78-256aa4a5e414.svg"
            }
            }`}
</script>

## How the ServiceNow integration works

Once the ServiceNow integration is configured and active, Prizm automatically creates a ServiceNow incident whenever a data quality issue or alert that matches the configured priority routing is created in Prizm. A direct link to the ServiceNow incident appears on the Prizm issue detail page. When the incident is resolved in ServiceNow, Prizm imports the resolution metadata and closes the linked issue.

If the webhook is enabled, changes to status, priority, comments, and assignee sync bidirectionally between both systems in near-real time.

<Frame>
  <img src="https://mintcdn.com/dqlabs/zvhyMoXaSfHLzAih/images/image-69.png?fit=max&auto=format&n=zvhyMoXaSfHLzAih&q=85&s=65600836b2cecb583880dbb8824c6300" alt="Image" width="2410" height="1140" data-path="images/image-69.png" />
</Frame>

***

## Automatic incident creation

When a Prizm issue or alert matching the configured priority filter is created, Prizm calls the ServiceNow Table API and creates an incident. The incident is populated with:

* **Issue Name**: the Prizm issue title
* **Description**: see the template below
* **Priority**: mapped from Prizm severity (Critical → 1, High → 2, Medium → 3, Low → 4 by default)
* **Status**: Open
* **Assignee**: the owner set on the Prizm issue
* **Reporter / Owner**: the Prizm user who created the issue
* **Associated screenshot**: any screenshot attached to the Prizm issue at time of creation
* **Comments**: any existing comments on the Prizm issue at time of creation

Any mandatory fields configured in the integration settings are also included in the payload.

### Incident description template

Every ServiceNow incident created by Prizm includes the following fields in the description body:

| Field               | Description                                            |   |
| ------------------- | ------------------------------------------------------ | - |
| **Asset**           | Name of the data asset with the quality issue          |   |
| **Attribute**       | Specific column or attribute affected                  |   |
| **Measure**         | The quality measure or metric that triggered the issue |   |
| **Connection Type** | Type of data source (e.g., Snowflake, BigQuery)        |   |
| **Connection Name** | Name of the connection in Prizm                        |   |
| **Created By**      | Prizm user who created the issue                       |   |
| **Issue Key**       | Prizm issue identifier                                 |   |
| **Asset ID**        | Internal Prizm ID for the asset                        |   |
| **Attribute ID**    | Internal Prizm ID for the attribute                    |   |
| **Measure ID**      | Internal Prizm ID for the measure                      |   |
| **Application**     | Application context from the Prizm asset               |   |
| **Domain**          | Data domain classification                             |   |
| **Product**         | Associated data product                                |   |
| **Issue ID**        | Prizm issue ID                                         |   |
| **Creator User ID** | Prizm user ID of the creator                           |   |

The description also includes a direct URL back to the Prizm issue page, allowing ServiceNow agents to navigate to the full data quality context with one click.

***

## Viewing the ServiceNow incident in Prizm

After a ServiceNow incident is created, the incident number (e.g., `INC0012345`) and a direct link to the incident appear on the Prizm issue detail page. Clicking the link opens the ServiceNow incident directly in a new tab.

***

## Bidirectional sync

When **Enable Webhook** is on, the following fields sync bidirectionally between Prizm and ServiceNow in near-real time:

| Field                | Prizm → ServiceNow | ServiceNow → Prizm |
| -------------------- | ------------------ | ------------------ |
| **Description**      | ✓                  | ✓                  |
| **Comment**          | ✓                  | ✓                  |
| **Priority**         | ✓                  | ✓                  |
| **Status**           | ✓                  | ✓                  |
| **Assignee**         | ✓                  | ✓                  |
| **Resolution Code**  | —                  | ✓                  |
| **Resolution Notes** | —                  | ✓                  |
| **Resolution At**    | —                  | ✓                  |
| **Resolution By**    | —                  | ✓                  |

### Status sync behavior

When a ServiceNow incident transitions to **Resolved** or **Closed**, Prizm automatically closes the linked data quality issue. Status changes made in Prizm (e.g., acknowledging or resolving an issue) are pushed to the ServiceNow incident via the REST API.

### Comment sync

Comments added to a ServiceNow incident are forwarded to the Prizm issue conversation thread via the webhook. Comments added in Prizm are posted to the ServiceNow incident. This keeps the full conversation visible to both data teams in Prizm and IT teams in ServiceNow without switching tools.

***

## Resolution metadata pull

When a ServiceNow incident is resolved, Prizm imports the following resolution fields from ServiceNow into the linked Prizm issue:

| ServiceNow Field     | Where it appears in Prizm                      |
| -------------------- | ---------------------------------------------- |
| **Resolution Code**  | Issue resolution details                       |
| **Resolution Notes** | Issue resolution notes field + audit log entry |
| **Resolution At**    | Timestamp of resolution                        |
| **Resolution By**    | User who resolved the incident                 |

Resolution notes are also written to the Prizm issue audit log with a source label of "ServiceNow", giving a complete trail of how and when the issue was resolved.

***

## Conversation sync

Prizm pulls all ServiceNow ticket conversations into the Prizm issue conversation thread. This includes:

* **Author** — the ServiceNow user who added the comment
* **Timestamp** — when the comment was created
* **Message body** — the full comment text
* **Attachment references** — links to attachments if exposed by the ServiceNow API
* **Edit/delete markers** — if exposed by the ServiceNow API

This means data quality teams in Prizm have full visibility into incident discussion happening in ServiceNow — including investigation notes, workarounds, and resolution decisions — without needing to log into ServiceNow.

***

## Audit log

Every sync event between Prizm and ServiceNow generates an entry in the Prizm issue audit log. Examples of logged events include:

* "Incident created in ServiceNow: INC001234"
* "Status updated: In Progress → Resolved (from ServiceNow)"
* "Assignee changed to Jane Doe (from ServiceNow)"
* "Resolution notes imported"
* "New ServiceNow comment imported"

Each audit log entry includes the source system (ServiceNow or Prizm), the actor (user or system), a timestamp, and the field changes (before and after values).

***

## Webhook vs. polling sync

### Webhook-based sync (preferred)

When the webhook is configured, ServiceNow pushes changes to Prizm in real time. This covers incident updates, comment additions, status transitions, assignment changes, and resolution events. Latency is typically 30–60 seconds.

### Polling-based sync (fallback)

When webhooks are blocked by a firewall or ServiceNow webhook delivery fails, Prizm can fall back to polling-based sync. Polling pulls all incidents updated since the last sync watermark on a configurable interval (1 min / 5 min / 15 min). Contact your Prizm administrator to configure the polling interval.

<Tip>
  Use polling as a fallback during firewall changes or ServiceNow maintenance windows to ensure sync continuity. Once the webhook is restored, Prizm automatically resumes real-time sync.
</Tip>

***

## AI features (Prizm Copilot)

Prizm Copilot can assist with ServiceNow-integrated issues in the following ways:

**Conversation summarization** — Prizm Copilot can summarize long ServiceNow ticket conversations into key decisions, next steps, and ownership assignments, saving time during incident review.

**Resolution recommendations** — Based on similar past incidents, exception patterns, and job failure logs, Prizm Copilot can recommend remediation steps and draft resolution notes for data steward approval.
