From fec115b3b5e730678da30bdad3afca84b3521d8e Mon Sep 17 00:00:00 2001
From: Janine Chan <64388808+janine-c@users.noreply.github.com>
Date: Wed, 20 Aug 2025 18:58:50 -0600
Subject: [PATCH 01/11] First chunk of adaptation work
---
content/en/integrations/guide/_index.md | 28 +++---
.../guide/servicenow-itom-itsm-setup.md | 91 +++++++++++++++++++
.../notifications_integrations.md | 12 +--
3 files changed, 113 insertions(+), 18 deletions(-)
create mode 100644 content/en/integrations/guide/servicenow-itom-itsm-setup.md
diff --git a/content/en/integrations/guide/_index.md b/content/en/integrations/guide/_index.md
index 61e9dae32f7ab..d7606413f07f1 100644
--- a/content/en/integrations/guide/_index.md
+++ b/content/en/integrations/guide/_index.md
@@ -9,7 +9,7 @@ cascade:
subcategory: Integrations Guides
---
-{{< whatsnext desc="General guides:" >}}
+{{< header-list header="General guides:" >}}
{{< nextlink href="integrations/guide/requests" tag=" documentation" >}}Request Datadog integrations{{< /nextlink >}}
{{< nextlink href="/integrations/guide/reference-tables/" tag=" Documentation" >}}Add Custom Metadata with Reference Tables{{< /nextlink >}}
{{< nextlink href="integrations/guide/source-code-integration" tag=" Documentation" >}}Datadog Source Code Integration{{< /nextlink >}}
@@ -31,9 +31,9 @@ cascade:
{{< nextlink href="integrations/guide/application-monitoring-vmware-tanzu" tag=" VMWare Tanzu" >}}Datadog Application Monitoring for VMware Tanzu{{< /nextlink >}}
{{< nextlink href="integrations/guide/cluster-monitoring-vmware-tanzu" tag=" VMWare Tanzu" >}}Datadog Cluster Monitoring for VMware Tanzu{{< /nextlink >}}
{{< nextlink href="integrations/guide/fips-integrations" tag=" fips" >}}FIPS Verified Agent Integrations{{< /nextlink >}}
-{{< /whatsnext >}}
+{{< /header-list >}}
-{{< whatsnext desc="AWS guides:" >}}
+{{< header-list header="AWS guides:" >}}
{{< nextlink href="getting_started/integrations/aws/" tag=" AWS" >}}AWS integration automatic setup with CloudFormation{{< /nextlink >}}
{{< nextlink href="integrations/guide/aws-terraform-setup" tag=" AWS" >}}AWS integration automatic setup with Terraform{{< /nextlink >}}
{{< nextlink href="integrations/guide/aws-organizations-setup" tag=" AWS" >}}AWS integration multi-account setup for Organizations{{< /nextlink >}}
@@ -45,9 +45,9 @@ cascade:
{{< nextlink href="integrations/guide/amazon_cloudformation" tag=" AWS" >}}Using Amazon CloudFormation{{< /nextlink >}}
{{< nextlink href="integrations/guide/events-from-sns-emails" tag=" AWS" >}}Create Datadog events from Amazon SNS emails{{< /nextlink >}}
{{< nextlink href="integrations/guide/aws-integration-and-cloudwatch-faq" tag=" AWS" >}}AWS integration and CloudWatch FAQ{{< /nextlink >}}
-{{< /whatsnext >}}
+{{< /header-list >}}
-{{< whatsnext desc="Azure guides:" >}}
+{{< header-list header="Azure guides:" >}}
{{< nextlink href="integrations/guide/azure-manual-setup" tag=" Azure" >}}Azure manual setup guide{{< /nextlink >}}
{{< nextlink href="integrations/guide/azure-native-manual-setup" tag=" Azure" >}}Azure Native manual setup guide{{< /nextlink >}}
{{< nextlink href="integrations/guide/azure-programmatic-management" tag=" Azure" >}}Azure integration programmatic management guide{{< /nextlink >}}
@@ -61,21 +61,25 @@ cascade:
{{< nextlink href="integrations/guide/powered-down-azure-vm-on-infrastructure-list" tag=" Azure" >}}Powered-down Azure VMs on the Infrastructure list{{< /nextlink >}}
{{< nextlink href="integrations/guide/powershell-command-to-install-azure-datadog-extension" tag=" Azure" >}}Commands to install the Azure Datadog extension{{< /nextlink >}}
{{< nextlink href="integrations/guide/azure-graph-api-permissions" tag=" Azure" >}}Microsoft Graph API Permissions for Monitoring Azure{{< /nextlink >}}
-{{< /whatsnext >}}
+{{< /header-list >}}
-{{< whatsnext desc="Google Cloud guides:" >}}
+{{< header-list header="Google Cloud guides:" >}}
{{< nextlink href="integrations/guide/gcp-metric-discrepancy" tag=" gcp" >}}Google Cloud Metric Discrepancy{{< /nextlink >}}
-{{< /whatsnext >}}
+{{< /header-list >}}
-{{< whatsnext desc="JMX guides:" >}}
+{{< header-list header="JMX guides:" >}}
{{< nextlink href="integrations/guide/running-jmx-commands-in-windows" tag=" jmx" >}}Running JMX commands in Windows{{< /nextlink >}}
{{< nextlink href="integrations/guide/collecting-composite-type-jmx-attributes" tag=" jmx" >}}Collecting composite-type JMX attributes{{< /nextlink >}}
{{< nextlink href="integrations/guide/use-bean-regexes-to-filter-your-jmx-metrics-and-supply-additional-tags" tag=" jmx" >}}Use Bean regexes to filter your JMX metrics and supply additional tags{{< /nextlink >}}
{{< nextlink href="integrations/guide/jmx_integrations/" tag=" jmx" >}}Which integrations use Jmxfetch?{{< /nextlink >}}
{{< nextlink href="integrations/guide/jmxfetch-fips/" tag=" jmx" >}}JMXFetch FIPS-140 mode{{< /nextlink >}}
-{{< /whatsnext >}}
+{{< /header-list >}}
-{{< whatsnext desc="Database guides:" >}}
+{{< header-list header="ServiceNow guides:" >}}
+ {{< nextlink href="integrations/guide/servicenow-itom-itsm-setup" >}}Set up ServiceNow ITOM and ITSM{{< /nextlink >}}
+{{< /header-list >}}
+
+{{< header-list header="Database guides:" >}}
{{< nextlink href="integrations/guide/collect-more-metrics-from-the-sql-server-integration" tag=" SQL Server" >}}Collect more metrics from the SQL Server integration{{< /nextlink >}}
{{< nextlink href="integrations/guide/collect-sql-server-custom-metrics" tag=" SQL Server" >}}Collect SQL Server custom metrics{{< /nextlink >}}
{{< nextlink href="integrations/guide/use-wmi-to-collect-more-sql-server-performance-metrics" tag=" SQL Server" >}}Use WMI to collect more SQL Server performance metrics{{< /nextlink >}}
@@ -83,5 +87,5 @@ cascade:
{{< nextlink href="integrations/guide/mysql-custom-queries" tag=" MySQL" >}}MySQL custom queries{{< /nextlink >}}
{{< nextlink href="integrations/guide/oracle-check-upgrade-7.50.1" tag=" Oracle" >}}Configuring the Oracle Integration on Agent 7.50.1+{{< /nextlink >}}
{{< nextlink href="integrations/guide/deprecated-oracle-integration" tag=" Oracle" >}}Configuring the Oracle Integration on Agent versions lower than 7.50.1{{< /nextlink >}}
-{{< /whatsnext >}}
+{{< /header-list >}}
diff --git a/content/en/integrations/guide/servicenow-itom-itsm-setup.md b/content/en/integrations/guide/servicenow-itom-itsm-setup.md
new file mode 100644
index 0000000000000..a9902cec216d0
--- /dev/null
+++ b/content/en/integrations/guide/servicenow-itom-itsm-setup.md
@@ -0,0 +1,91 @@
+---
+title: Set up ServiceNow ITOM and ITSM
+further_reading:
+- link: "/integrations/servicenow/"
+ tag: "Documentation"
+ text: "ServiceNow integration"
+---
+ServiceNow's ITOM/ITSM integration allows you to send alerts, cases, and incidents generated in Datadog to ServiceNow as records in the Incident or Event tables. The integration relies on interim tables and transform maps.
+
+To use the integration, follow the instructions to install the app, and then configure the integration for each product:
+1. [Install the ITOM/ITSM app](#install)
+1. Configure the app
+ 1. [Configure Datadog templated monitor notifications](#monitor-notifications)
+ 1. [Configure Datadog Case Management](#case-management)
+ 1. [Configure Datadog Incident Management](#incident-management)
+1. [Customize data with transform maps](#transform-maps)
+
+## Install the ITOM/ITSM app {#install}
+There are two ways to install the app:
+- Install the latest version of the [ITOM/ITSM Integration for Datadog][1] app from the ServiceNow store.
+- Download the latest Update Set ([Datadog-Snow_Update_Set_v2.7.2.xml][2]) and upload it to your ServiceNow instance manually.
+
+Before proceeding, make sure you have [added your ServiceNow instance][3] into your ServiceNow tile in Datadog.
+
+## Configure the app
+
+### Configure templated monitor notifications {#monitor-notifications}
+
+
These features require ITOM/ITSM integration app version 2.6.0 or newer.
+
+#### Configure instance priority mapping
+
+By default, Datadog doesn't include ServiceNow impact and urgency levels when sending events to ServiceNow. For each ServiceNow configuration, you can configure mappings between those ServiceNow levels and Datadog's Monitor Priority levels for inclusion in Datadog-generated events.
+
+1. In Datadog, go to the [ServiceNow integration settings][4] page.
+1. Go to the **Configure** tab, then the **ITOM/ITSM** tab, then the **Monitors** tab.
+1. Under **Instance Priority Mapping for Templates**, open the settings for your ServiceNow instance.
+1. Turn on the **Use Instance Priority Mapping** toggle.
+1. In the **ServiceNow Urgency** and **ServiceNow Impact**, select the levels you want to correspond with Datadog's Monitor Priority levels.
+1. Click **Update**.
+
+#### Create a custom ServiceNow @-handle for monitor notifications
+
+To create a ServiceNow record from a monitor, you need to configure an @-handle to use within the monitor notification rules or notification recipients.
+
+1. In Datadog, go to the [ServiceNow integration settings][4] page.
+1. Go to the **Configure** tab, then the **ITOM/ITSM** tab, then the **Monitors** tab.
+1. Beside **Templates**, click **+ New** to create a new template.
+1. Define an @-handle **Name**, **Instance**, and **Target Table** for the monitor notification to be delivered to.
+1. Optionally, you can also set **Assignment Group**, **Business Service**, and/or **User** in the template.
**Note**: If you set both an assignment group and user, the user must belong to the selected assignment group for the ServiceNow record creation to successfully complete.
+1. Optionally, you can add additional variables from Datadog by expanding the **Customize notification payload** section and clicking **Add field**.
+1. Click **Save**.
+
+To use the new template, add `@servicenow-` in a monitor description. When the monitor alerts, ServiceNow also creates a corresponding record, and automatically sets it to **Resolved** when the underlying alert recovers.
+
+### Configure Datadog Case Management {#case-management}
+
+You can choose to send cases from Datadog to either the Datadog Cases ITOM or ITSM table in ServiceNow. ServiceNow stores the records and transforms them using the installed update set to records in the Event or Incident table. Datadog doesn't support custom payloads for these tables, or updates to the Events table.
+
+The user configuring the settings in ServiceNow must have both the x_datad_datadog.user
and admin
roles.
+
+1. **Configure settings in Datadog**:
+ 1. In Datadog, go to the [ServiceNow integration settings][4] page.
+ 1. Go to the **Configure** tab, then the **ITOM/ITSM** tab, then the **Case Management** tab.
+ 1. Under **Sync ServiceNow with Case Management**, open the settings for your ServiceNow instance.
+ 1. Beside **Case Table**, choose to send cases to either **Datadog Cases ITOM** or **Datadog Cases ITSM**.
+ 1. Navigate to the [Case Management > Settings][5] page, and expand your project. Then, [set up the ServiceNow integration][6] for that project.
+ 1. Follow the instructions to [create a service account application key][7].
**Note**: Datadog recommends creating this key instead of using a personal one, which risks breaking the ServiceNow sync if the user's account is deactivated or if their permissions change.
+1. **Configure settings in ServiceNow**:
+ 1. In ServiceNow, click the globe icon in the top-right corner, then make sure the **Application Scope** is set to **ITOM/ITSM Integration for Datadog**.
+ 1. In the top-left navigation menu, click **All**.
+ 1. Type **ITOM/ITSM Integration for Datadog** in the filter.
+ 1. Click the **Configuration** link from the filtered results, then enter the required settings:
+ 1. Select your **Datadog Data Center**.
+ 1. Paste in your **Datadog API Key**.
+ 1. Paste in your **Service Account Application Key** you created.
+ 1. Check the **Enabled** box.
+ 1. Click **Save**.
+ 1. (Optional) If you have ITOM/ITSM integration app version 2.7.0 or newer, you can use information from correlated alerts to populate values in ServiceNow.
The transform maps for Datadog Cases ITOM and ITSM tables contain an example transform script that runs onBefore. By default, the script is commented out, but you can enable it by uncommenting it and modifying it to fit your use case.
+
+### Configure Datadog Incident Management {#incident-management}
+
+## Customize data with transform maps {#transform-maps}
+
+[1]: https://store.servicenow.com/store/app/e0e963a21b246a50a85b16db234bcb67
+[2]: https://docs.datadoghq.com/resources/xml/Datadog-Snow_Update_Set_v2.7.2.xml
+[3]: /integrations/servicenow/#configure-the-servicenow-tile-in-datadog
+[4]: https://app.datadoghq.com/integrations?integrationId=servicenow
+[5]: https://app.datadoghq.com/cases/settings
+[6]: /service_management/case_management/notifications_integrations/#servicenow
+[7]: /account_management/org_settings/service_accounts/#create-or-revoke-application-keys
\ No newline at end of file
diff --git a/content/en/service_management/case_management/notifications_integrations.md b/content/en/service_management/case_management/notifications_integrations.md
index 170f445311e96..b0613c5b7db28 100644
--- a/content/en/service_management/case_management/notifications_integrations.md
+++ b/content/en/service_management/case_management/notifications_integrations.md
@@ -49,11 +49,11 @@ In Project Settings, you can manage membership, configure the auto-closing of ca
1. Select a Jira account, a project to create issues in, and the desired issue type (such as story, epic, bug, or task).
1. You can opt into the automatic creation of a Jira issue for each case created in the project.
1. For the following attributes—case title, description, assignee, comments, status, and priority—select one of the options below:
- | Option | Description |
- | --- | ----------- |
- |Once to Jira at case creation|The field syncs from Case Management to Jira only at the time the case is created. Subsequent changes are not reflected on either side.|
- |Two-way sync (bi-directional)|Changes in Case Management are reflected in Jira, and vice versa|
- |Don't sync|The field does not sync to Jira.|
+ | Option | Description |
+ |-------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------|
+ | Once to Jira at case creation | The field syncs from Case Management to Jira only at the time the case is created. Subsequent changes are not reflected on either side. |
+ | Two-way sync (bi-directional) | Changes in Case Management are reflected in Jira, and vice versa |
+ | Don't sync | The field does not sync to Jira. |
1. For case status and priority, select which values they map to on the Jira side.
1. Save changes.
@@ -64,7 +64,7 @@ In Project Settings, you can manage membership, configure the auto-closing of ca
- Available for Jira Cloud, not Jira Data Center.
{{% /collapse-content %}}
-{{% collapse-content title="ServiceNow Configuration" level="h4" expanded=false %}}
+{{% collapse-content title="ServiceNow Configuration" level="h4" expanded=false id="servicenow" %}}
1. Configure the ServiceNow integration by following the [ITOM and ITSM setup instructions][2].
1. In Case Management project settings, enable ServiceNow for manual ServiceNow incident creation from the project.
1. Select a ServiceNow instance and assignment group.
From 3517be29ea7775d46d517d6db62d16d77ddc787c Mon Sep 17 00:00:00 2001
From: Janine Chan <64388808+janine-c@users.noreply.github.com>
Date: Fri, 22 Aug 2025 17:42:12 -0600
Subject: [PATCH 02/11] Finish ITOM/ITSM draft
---
.../guide/servicenow-itom-itsm-setup.md | 298 ++++++++++++++++--
1 file changed, 279 insertions(+), 19 deletions(-)
diff --git a/content/en/integrations/guide/servicenow-itom-itsm-setup.md b/content/en/integrations/guide/servicenow-itom-itsm-setup.md
index a9902cec216d0..e44e2769e90e9 100644
--- a/content/en/integrations/guide/servicenow-itom-itsm-setup.md
+++ b/content/en/integrations/guide/servicenow-itom-itsm-setup.md
@@ -22,6 +22,27 @@ There are two ways to install the app:
Before proceeding, make sure you have [added your ServiceNow instance][3] into your ServiceNow tile in Datadog.
+
+
+### Install the update set in ServiceNow
+
+**Note**: If you have custom transform map modifications, ServiceNow notifies you of any conflicts and can choose the appropriate changes based on your requirements. Datadog recommends backing up your existing transform map customizations before making any updates.
+
+1. Manually import the Update Set XML file that you downloaded to your ServiceNow instance.
+1. After you import the XML file, the Update Set should show a state of `Loaded`. Click the name of the Update Set to preview the changes.
+1. After you preview the Update Set to ensure there are no errors, select **Commit Update Set** to merge the application into your system.
+
+After you have installed the app, search for **Datadog** in the ServiceNow navigation menu to access all of the tables and the Configuration Page for bidirectional syncing setup:
+
+- `Configuration`
+- `Datadog Incidents ITSM`
+- `Cases ITOM`, formerly `Datadog Cases ITOM`
+- `Cases ITSM`, formerly `Datadog Cases ITSM`
+- `Legacy Monitors ITOM`, formerly `Datadog Monitors ITOM`
+- `Legacy Monitors ITSM`, formerly `Datadog Monitors ITSM`
+- `Templated Monitors ITOM`
+- `Templated Monitors ITSM`
+
## Configure the app
### Configure templated monitor notifications {#monitor-notifications}
@@ -53,39 +74,278 @@ To create a ServiceNow record from a monitor, you need to configure an @-handle
To use the new template, add `@servicenow-` in a monitor description. When the monitor alerts, ServiceNow also creates a corresponding record, and automatically sets it to **Resolved** when the underlying alert recovers.
+#### Configure legacy monitor notifications
+
+To configure legacy monitor notifications using `@servicenow-`:
+
+1. In Datadog, go to the [ServiceNow integration settings][4] page.
+1. Go to the **Configure** tab, then the **ITOM/ITSM** tab, then the **Monitors** tab.
+1. Under **Manage Legacy Monitor Notifications**, select the instance you want to configure notifications for, then select the table that legacy monitor notifications write to.
+1. To validate the integration is set up correctly, add `@servicenow-` in a monitor or event notification. The raw data populates rows in the interim table and is forwarded to the ServiceNow table specified by the app.
+1. Use [transform maps](#transform-maps) in ServiceNow to customize the transformation of the data sent to the interim tables.
+1. Customize the notification payload with available Datadog variables or custom strings.
+1. To set priority in ServiceNow incidents, follow the instructions in [Incident Priority field mapping](#legacy-incident-priority-field-mapping)
+
### Configure Datadog Case Management {#case-management}
+{{% site-region region="gov" %}}
+
+Case Management integration is not supported in the {{< region-param key=dd_datacenter code="true" >}} site.
+
+{{% /site-region %}}
+
You can choose to send cases from Datadog to either the Datadog Cases ITOM or ITSM table in ServiceNow. ServiceNow stores the records and transforms them using the installed update set to records in the Event or Incident table. Datadog doesn't support custom payloads for these tables, or updates to the Events table.
The user configuring the settings in ServiceNow must have both the x_datad_datadog.user
and admin
roles.
-1. **Configure settings in Datadog**:
- 1. In Datadog, go to the [ServiceNow integration settings][4] page.
- 1. Go to the **Configure** tab, then the **ITOM/ITSM** tab, then the **Case Management** tab.
- 1. Under **Sync ServiceNow with Case Management**, open the settings for your ServiceNow instance.
- 1. Beside **Case Table**, choose to send cases to either **Datadog Cases ITOM** or **Datadog Cases ITSM**.
- 1. Navigate to the [Case Management > Settings][5] page, and expand your project. Then, [set up the ServiceNow integration][6] for that project.
- 1. Follow the instructions to [create a service account application key][7].
**Note**: Datadog recommends creating this key instead of using a personal one, which risks breaking the ServiceNow sync if the user's account is deactivated or if their permissions change.
-1. **Configure settings in ServiceNow**:
- 1. In ServiceNow, click the globe icon in the top-right corner, then make sure the **Application Scope** is set to **ITOM/ITSM Integration for Datadog**.
- 1. In the top-left navigation menu, click **All**.
- 1. Type **ITOM/ITSM Integration for Datadog** in the filter.
- 1. Click the **Configuration** link from the filtered results, then enter the required settings:
- 1. Select your **Datadog Data Center**.
- 1. Paste in your **Datadog API Key**.
- 1. Paste in your **Service Account Application Key** you created.
- 1. Check the **Enabled** box.
- 1. Click **Save**.
- 1. (Optional) If you have ITOM/ITSM integration app version 2.7.0 or newer, you can use information from correlated alerts to populate values in ServiceNow.
The transform maps for Datadog Cases ITOM and ITSM tables contain an example transform script that runs onBefore. By default, the script is commented out, but you can enable it by uncommenting it and modifying it to fit your use case.
+1. In Datadog, go to the [ServiceNow integration settings][4] page.
+1. Go to the **Configure** tab, then the **ITOM/ITSM** tab, then the **Case Management** tab.
+1. Under **Sync ServiceNow with Case Management**, open the settings for your ServiceNow instance.
+1. Beside **Case Table**, choose to send cases to either **Datadog Cases ITOM** or **Datadog Cases ITSM**.
+1. Navigate to the [Case Management > Settings][5] page, and expand your project. Then, [set up the ServiceNow integration][6] for that project.
+1. Follow the instructions to [create a service account application key][7].
**Note**: Datadog recommends creating this key instead of using a personal one, which risks breaking the ServiceNow sync if the user's account is deactivated or if their permissions change.
### Configure Datadog Incident Management {#incident-management}
+After installing the app, in Datadog, go to the [Integration Settings][9] page. Click the **ServiceNow** tile to configure ServiceNow incident creation.
+
+#### Incident Management field mappings
+
+This section describes the fields that are synced between Incident Management and ServiceNow:
+
+| **Incident Management** | **ServiceNow Cases Table** | **ServiceNow Incident** | **Sync Status** |
+| ----------------------- | -------------------------- | ----------------------- | --------------------------------------- |
+| Title | Title - String | Short Description | One way sync from Datadog -> ServiceNow |
+| What Happened | Description - String | Description | One way sync from Datadog -> ServiceNow |
+| State | State - String | State | Bi-directionally synced |
+| DD Incident URL | Incident URL - String | Work Notes | One way sync from Datadog -> ServiceNow |
+| Severity | Incident Urgency (int) | Urgency | Bi-directionally synced |
+| Severity | Incident Impact (int) | Impact | Bi-directionally synced |
+
+| **Datadog Monitor State** | **ServiceNow Incident State** |
+| ---------------------------------------------- | ----------------------------- |
+| Alert | In Progress |
+| Warn | In Progress |
+| OK | Resolved |
+| Completed _(optional, configured in settings)_ | Resolved |
+
+| **Datadog Incident Severity*** | **ServiceNow Urgency** | **ServiceNow Impact** | **ServiceNow Priority** |
+|--------------------------------|------------------------|-----------------------|-------------------------|
+| SEV-1 | 1 | 1 | 1 - Critical |
+| SEV-2 | 1 | 2 | 2 - High |
+| SEV-2 | 2 | 1 | 2 - High |
+| SEV-3 | 1 | 3 | 3 - Moderate |
+| SEV-3 | 2 | 2 | 3 - Moderate |
+| SEV-3 | 3 | 1 | 3 - Moderate |
+| SEV-4 | 2 | 3 | 4 - Low |
+| SEV-4 | 3 | 2 | 4 - Low |
+| SEV-5 (Minor) | 3 | 3 | 5 - Planning |
+| Unknown | 3 | 3 | 5 - Planning |
+
+\***Note**: If `Start at SEV-0` is enabled in Incident Management settings, the values in `ServiceNow Urgency`, `ServiceNow Impact`, and `ServiceNow Priority` will all stay the same, but the `Datadog Incident Severity` shifts down by 1. For example, in the first row of this table, the Datadog Incident Severity would be 0, but the rest of the values in the rest of the row would stay the same.
+
+#### Legacy Incident Priority field mapping
+
+**Note:** `Impact` and `Urgency` in monitor descriptions work only for [legacy monitor configurations](#configure-legacy-monitor-notifications). For [templated monitors](#monitor-notifications), configure [instance priority mapping](#configure-instance-priority-mapping).
+
+The `priority` field in ServiceNow incidents is _read only_ and can only be updated using [priority lookup rules][8].
+
+### Sync data bidirectionally between ServiceNow and Case/Incident Management
+
+In ServiceNow, you can sync state, impact, and urgency bidirectionally with both Case Management and Incident Management.
+
+1. In ServiceNow, click the globe icon in the top-right corner, then make sure the **Application Scope** is set to **ITOM/ITSM Integration for Datadog**.
+1. In the top-left navigation menu, click **All**.
+1. Type **ITOM/ITSM Integration for Datadog** in the filter.
+1. Click the **Configuration** link from the filtered results, then enter the required settings:
+ 1. Select your **Datadog Data Center**.
+ 1. Paste in your **Datadog API Key**.
+ 1. Paste in your **Service Account Application Key** you created.
+ 1. Check the **Enabled** box.
+1. Click **Save**.
+1. (Optional) If you have ITOM/ITSM integration app version 2.7.0 or newer, you can use information from correlated alerts to populate values in ServiceNow.
The transform maps for Datadog Cases ITOM and ITSM tables contain an example transform script that runs onBefore. By default, the script is commented out, but you can enable it by uncommenting it and modifying it to fit your use case.
+
## Customize data with transform maps {#transform-maps}
+The ServiceNow integration writes from Datadog to interim tables, which transform to records in ServiceNow. For any customizations (for example, custom field mappings, etc.), you can extend the transform maps to specify what fields you want to map to from Datadog to ServiceNow.
+
+### Templated Monitors ITXM table fields and transform maps
+
+`action`
+: **Type**: String
+The action being taken on the monitor: `create`, `update`, `acknowledge`, or `resolve`
+
+`additional_information`
+: **Type**: String
+**ITOM Transform**: `additional_info`
+Formatted string containing all event details
+
+`aggreg_key`
+: **Type**: String
+Aggregation key representing a hash of the alerting monitor's ID
+
+`alert_cycle_key`
+: **Type**: String
+Key representing a hash of a single monitor's alert cycle (tracks Alert → Warn → Resolve)
+
+`alert_id`
+: **Type**: String
+ID of the alerting monitor
+
+`alert_metric`
+: **Type**: String
+**ITOM Transform**: `metric_name`
+Metric that triggered the alert
+
+`alert_query`
+: **Type**: String
+Query that triggered the alert
+
+`alert_scope`
+: **Type**: String
+Scope that triggered the alert
+
+`alert_status`
+: **Type**: String
+Current state of the alert
+
+`alert_title`
+: **Type**: String
+Name of the alert
+
+`alert_transition`
+: **Type**: String
+**ITSM Transform**: (script) -> state
+Alert transition state: `Triggered`, `Warn`, or `Recovered`
+
+`assignment_group_sys_id`
+: **Type**: Reference
+**ITSM Transform**: `assignment_group`
+**Reference Table**: Group
+ServiceNow sys_id for the templated handle's assignment group
+
+`business_service_sys_id`
+: **Type**: Reference
+**ITSM Transform**: `business_service`
+**Reference Table**: Service
+ServiceNow sys_id for the templated handle's business service
+
+`custom_fields`
+: **Type**: String
+User-configured key-value fields formatted as JSON-convertible string
+
+`datadog_tags`
+: **Type**: String
+Datadog tags from the alerting monitor
+
+`description`
+: **Type**: String
+**ITSM Transform**: `description`
+**ITOM Transform**: `description`
+Summary description of the monitor alert
+
+`event_details`
+: **Type**: String
+**ITSM Transform**: `work_notes`
+Event details with formatted, clickable links to Datadog
+
+`event_id`
+: **Type**: String
+Datadog ID of the event
+
+`event_link`
+: **Type**: String
+Link to the event created from the monitor alert
+
+`event_msg`
+: **Type**: String
+Message from the event
+
+`event_title`
+: **Type**: String
+**ITSM Transform**: `short_description`
+Title of the event
+
+`event_type`
+: **Type**: String
+**ITOM Transform**: `type`
+Type of event
+
+`hostname`
+: **Type**: String
+**ITSM Transform**: `cmdb_ci`
+**ITOM Transform**: `node`
+Host of the affected monitor
+
+`impact`
+: **Type**: Integer
+**ITSM Transform**: `impact`
+Impact value based on user-defined mapping of monitor priority
+
+`logs_sample`
+: **Type**: String
+Sample of relevant logs
+
+`monitor_priority`
+: **Type**: Integer
+**ITOM Transform**: `severity`
+Priority of the alerting monitor as an integer
+
+`org_name`
+: **Type**: String
+Name of the alerting monitor's organization
+
+`sys_created_by`
+: **Type**: String
+**ITSM Transform**: `caller_id`
+Creator of the record (usually the configured ServiceNow API account)
+
+`ticket_state`
+: **Type**: String
+**ITSM Transform**: `state`, (script) -> close_code, (script) -> close_notes
+**ITOM Transform**: (script) -> resolution_notes
+State of the ServiceNow record: `new` or `resolved`
+
+`u_correlation_id`
+: **Type**: String
+**ITSM Transform**: `correlation_id`
+**ITOM Transform**: `message_key`
+Combined alert_cycle_key and aggreg_key used to coalesce records to the same target incident
+
+`urgency`
+: **Type**: Integer
+**ITSM Transform**: `urgency`
+Urgency set from the user defined mapping on the integration tile based on monitor defined priority
+
+`user_sys_id`
+: **Type**: Reference
+**ITSM Transform**: `assigned_to`
+**Reference Table**: User
+sys_id from the templated handle passed in for user.
+
+## Troubleshooting
+
+- Error message in your Datadog integration tile or an `Error while trying to post to your ServiceNow instance` notification:
+ - Verify only the subdomain was used when entering your instance name.
+ - Verify the user you created has the required permissions.
+ - Verify the username and password are correct.
+- The integration is configured, an alert triggered, and no ticket is created:
+ - Confirm that the interim table is populated. If so, the issue is with mappings and transformations. You can debug your mappings and scripts further by navigating to **Transform Errors** in ServiceNow.
+ - Confirm that you're working with the interim table you specified in the tile.
+
+ The ServiceNow user needs `rest_service` and `x_datad_datadog.user` roles so that it can access the import tables. If you're using the legacy way of sending notifications directly to either the Incident table or Event table, you need the permissions `itil` and `evt_mgmt_integration`.
+
+If you're seeing updates from Datadog Case Management to ServiceNow, but not seeing updates from ServiceNow to Datadog, this is expected behavior for ServiceNow ITOM. Bidirectional syncing with Case Management is only supported for ServiceNow ITSM.
+
+Need additional help? Contact [Datadog support][10].
+
[1]: https://store.servicenow.com/store/app/e0e963a21b246a50a85b16db234bcb67
[2]: https://docs.datadoghq.com/resources/xml/Datadog-Snow_Update_Set_v2.7.2.xml
[3]: /integrations/servicenow/#configure-the-servicenow-tile-in-datadog
[4]: https://app.datadoghq.com/integrations?integrationId=servicenow
[5]: https://app.datadoghq.com/cases/settings
[6]: /service_management/case_management/notifications_integrations/#servicenow
-[7]: /account_management/org_settings/service_accounts/#create-or-revoke-application-keys
\ No newline at end of file
+[7]: /account_management/org_settings/service_accounts/#create-or-revoke-application-keys
+[8]: https://docs.servicenow.com/en-US/bundle/sandiego-it-service-management/page/product/incident-management/task/def-prio-lookup-rules.html
+[9]: https://app.datadoghq.com/incidents/settings?section=integrations
+[10]: https://docs.datadoghq.com/help/
\ No newline at end of file
From 4765ea8295f9a2baf544f77d3d610cdaff276197 Mon Sep 17 00:00:00 2001
From: Janine Chan <64388808+janine-c@users.noreply.github.com>
Date: Mon, 25 Aug 2025 12:28:09 -0600
Subject: [PATCH 03/11] Bit of ITOM/ITSM cleanup
---
content/en/integrations/guide/servicenow-itom-itsm-setup.md | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/content/en/integrations/guide/servicenow-itom-itsm-setup.md b/content/en/integrations/guide/servicenow-itom-itsm-setup.md
index e44e2769e90e9..b4098ea9b2dfc 100644
--- a/content/en/integrations/guide/servicenow-itom-itsm-setup.md
+++ b/content/en/integrations/guide/servicenow-itom-itsm-setup.md
@@ -169,8 +169,7 @@ In ServiceNow, you can sync state, impact, and urgency bidirectionally with both
The ServiceNow integration writes from Datadog to interim tables, which transform to records in ServiceNow. For any customizations (for example, custom field mappings, etc.), you can extend the transform maps to specify what fields you want to map to from Datadog to ServiceNow.
-### Templated Monitors ITXM table fields and transform maps
-
+{{% collapse-content title="Templated monitor table fields and transform maps" level="h4" expanded=false id="templated-monitor-table-fields-transform-maps" %}}
`action`
: **Type**: String
The action being taken on the monitor: `create`, `update`, `acknowledge`, or `resolve`
@@ -323,6 +322,8 @@ Urgency set from the user defined mapping on the integration tile based on monit
**Reference Table**: User
sys_id from the templated handle passed in for user.
+{{% /collapse-content %}}
+
## Troubleshooting
- Error message in your Datadog integration tile or an `Error while trying to post to your ServiceNow instance` notification:
From 344bbf83a2f9844032a64a0699c239a0d4ec7cc8 Mon Sep 17 00:00:00 2001
From: Janine Chan <64388808+janine-c@users.noreply.github.com>
Date: Mon, 25 Aug 2025 16:51:01 -0600
Subject: [PATCH 04/11] Add guide pages from Esther's doc
---
content/en/integrations/guide/_index.md | 2 +
.../guide/servicenow-cmdb-enrichment-setup.md | 159 ++++++++++++++++++
...ervicenow-service-graph-connector-setup.md | 50 ++++++
3 files changed, 211 insertions(+)
create mode 100644 content/en/integrations/guide/servicenow-cmdb-enrichment-setup.md
create mode 100644 content/en/integrations/guide/servicenow-service-graph-connector-setup.md
diff --git a/content/en/integrations/guide/_index.md b/content/en/integrations/guide/_index.md
index d7606413f07f1..44531e7f71516 100644
--- a/content/en/integrations/guide/_index.md
+++ b/content/en/integrations/guide/_index.md
@@ -77,6 +77,8 @@ cascade:
{{< header-list header="ServiceNow guides:" >}}
{{< nextlink href="integrations/guide/servicenow-itom-itsm-setup" >}}Set up ServiceNow ITOM and ITSM{{< /nextlink >}}
+ {{< nextlink href="integrations/guide/servicenow-cmdb-enrichment-setup" >}}Set up ServiceNow CMDB Enrichment{{< /nextlink >}}
+ {{< nextlink href="integrations/guide/servicenow-service-graph-connector-setup" >}}Set up ServiceNow Service Graph Connector{{< /nextlink >}}
{{< /header-list >}}
{{< header-list header="Database guides:" >}}
diff --git a/content/en/integrations/guide/servicenow-cmdb-enrichment-setup.md b/content/en/integrations/guide/servicenow-cmdb-enrichment-setup.md
new file mode 100644
index 0000000000000..917f247b0bbe8
--- /dev/null
+++ b/content/en/integrations/guide/servicenow-cmdb-enrichment-setup.md
@@ -0,0 +1,159 @@
+---
+title: Set up ServiceNow CMDB Enrichment
+further_reading:
+- link: "/integrations/servicenow/"
+ tag: "Documentation"
+ text: "ServiceNow integration"
+- link: https://www.datadoghq.com/blog/servicenow-cmdb-it-management-datadog
+ tag: Blog
+ text: Manage your infrastructure with ServiceNow CMDB and Datadog
+---
+
+## Overview
+
+The **ServiceNow Integration** uses ServiceNow's Configuration Management Database (CMDB) to enrich and contextualize your data within Datadog. This integration provides the following key capabilities:
+
+- **Host Tagging**: Enriches Datadog hosts with metadata from the ServiceNow CMDB, which allows for improved data organization and filtering.
+- **Service Tagging**: Populates the Datadog Service Catalog with services and their associated metadata from the ServiceNow CMDB.
+- **Network Device Tagging**: Adds tags to network devices monitored by Datadog, using metadata from the ServiceNow CMDB.
+- **Reference Tables**: Automatically enriches logs and events in Datadog with additional fields from ServiceNow CIs by mapping value fields to a primary key.
+
+## Host tagging
+
+Enrich your Datadog hosts with ServiceNow CMDB metadata through host tagging.
+To enable ingestion of host tags:
+
+1. Configure a [Query Builder][1] query in your ServiceNow instance that returns all of the hosts you wish to tag in Datadog.
+1. Schedule the query to execute at your desired refresh interval.
+1. Once the query has been saved in ServiceNow, go to Datadog's ServiceNow integration tile. Select the **Host Tagging** in the **CMDB Enrichment** tab within \*\*\*Configure\*\*.
+1. Under **Query Configuration**, click **Add New Query**.
+1. Select the **ServiceNow Instance** and the **Query** from the dropdown menus.
+1. Select a value for the **Hostname Column** that maps your query's root CI hostname field to Datadog's hostname field. The dropdown options come from the starting node of your querybuilder query.
+1. Select any optional field name remapping with **Column Name Maps**. By default, tags are applied to the host in the format `tagName:columnValue`, where tagName is a combination of the VI table name and the column name.
+1. Click **Save**.
+
+Expect host tags to populate in Datadog shortly after your queries' scheduled executions.
+
+
+Monitor the ingestion process in the Datadog [Events Explorer][2] by scoping your search query on `source:servicenow`.
+
+
+### Additional Non-CMDB fields tagging
+
+Some ServiceNow tables are non-CMDB and cannot be selected in the Query Builder. To enrich Datadog hosts with tags from these tables, click **Additional Fields** on the configuration tile and configure a host tagging query as described above, providing a full dot-walked path. Paths should start from the first attribute name on the root table configured for the query. For example, entering `vendor.manufacturer.name` for a query with root CI `cmdb_ci_server` populates hosts with the tag `cmdb_ci_server_manufacturer_name`.
+
+**Note**: Only dot-walkable paths that are supported by the ServiceNow Table API are available for use in Additional Fields. Many-to-many relationships may not work out of the box and may require additional configuration.
+
+### Host tagging troubleshooting
+
+For host tagging to work correctly, ensure that the following are true in your system:
+
+- The user who created and executes the Query Builder query matches a username in your Datadog configuration. The user in ServiceNow must have the role `cmdb_query_builder_read`.
+- The number of results returned by your query must be less than or equal to the `glide.cmdb.query.max_results_limit` setting in ServiceNow. By default, the maximum number of results is 10000\. To change the setting, go to **Configuration \> CMDB Properties \> Query Builder Properties**.
+- All CIs configured in your Query Builder query must have a `1` label. This ensures you have not created any duplicate CIs, which the parser does not support.
+
+### Limitations
+
+- Ingestion is limited to 100k hosts per execution.
+- Updates to hosts are throttled to a few thousand per hour. Take this limit into consideration when choosing your schedule interval.
+- Host aliases in Datadog are case sensitive. Your ingested CMDB hostnames must exactly match the corresponding hostnames in Datadog.
+
+## Service tagging
+
+Enrich your Datadog Service Catalog with ServiceNow CMDB metadata through service tagging.
+With service tagging, you can populate your Datadog [Service Catalog][3] with services from your ServiceNow CMDB.
+
+To enable ingestion of service data:
+
+1. Configure a [Query Builder][1] query in your ServiceNow instance that returns all of the services with which you wish to enrich the Service Catalog.
+1. Schedule the query to execute at your desired refresh interval.
+1. Once the query is saved in ServiceNow, go to Datadog's ServiceNow integration tile. Select **Service Tagging** in the **CMDB Enrichment** tab within **Configure**.
+1. Under **Query Configuration**, click **Add New Query**.
+1. Select the **ServiceNow Instance** and the **Query** from the dropdown menus.
+1. Select a value from the **Service Name Column** dropdown menu. The value matches the column name on your query's root service CI, and populates the service name in the service catalog.
+1. Configure schema mappings to pull additional metadata about your service into the service catalog. See [Service definitions][4] for details. For Datadog to accept the ingestion, each field in the mapping needs to be of the correct type to map to the service catalog service definition schema.
+1. Click **Save**.
+
+Expect to see service data populated in Datadog a few minutes after your queries' scheduled executions. To view ingestion errors, go to the [Events Explorer][2] and search for events with `source:servicenow`.
+
+
+### Service tagging troubleshooting
+
+For service ingestion to work correctly, ensure that the following are true in your system:
+
+- The user who created and executes the Query Builder query matches a username in your Datadog configuration. The user in ServiceNow must have the role `cmdb_query_builder_read`.
+- The number of results returned by your query must be less than or equal to the `glide.cmdb.query.max_results_limit` setting in ServiceNow. By default, the maximum number of results is 10000. To change the setting, go to **Configuration \> CMDB Properties \> Query Builder Properties**.
+- All CIs configured in your Query Builder query must have a `1` label. This ensures you have not created any duplicate CIs, which the parser does not support.
+
+## Network device tagging
+
+Add tags to your network devices in Datadog populated with data from your ServiceNow CMDB.
+
+With device tagging, you can dynamically enrich network devices monitored by Datadog [Network Device Monitoring][5] with device metadata from your ServiceNow CMDB.
+
+To enable ingestion of device tags:
+
+1. Configure a [Query Builder][1] query in your ServiceNow instance. Make sure it is returning the device IP Address.
+1. Schedule the query to execute at your desired refresh interval.
+1. If you are using a custom IP namespace in Datadog, you need to add it to ServiceNow. Create a column on the Network device CI called `u_dd_device_namespace`, populated by the corresponding namespace for each device. If this column is not present, the default namespace is used.
+1. After the query is saved in ServiceNow, go to Datadog's ServiceNow integration tile. Select Device Tagging in the CMDB Enrichment tab within Configure.
+1. Under Query Configuration, click the Add New Query button.
+1. Select the ServiceNow Instance and the Query from the dropdown menus.
+1. Select the IP Address column that maps your query's IP Address field to Datadog's IP Address field.
+1. Select any optional field name remappings.
+1. Click **Save**.
+
+You can expect to see network device tags populated in Datadog within a few minutes after your queries' scheduled executions. Any ingestion errors are reported through events viewable in your events explorer.
+
+Monitor the ingestion process in the Datadog [Events Explorer][2] by scoping your search query on `source:servicenow`.
+
+
+### Network device tagging troubleshooting
+
+- Verify that the user who created or is executing the querybuilder query is the same user in your Datadog configuration and has the role `cmdb_query_builder_read`.
+- Check that your query isn't returning more results than your `glide.cmdb.query.max_results_limit` setting in Servicenow is configured to allow.
+- Make sure all CIs in your querybuilder query have a `1` label.
+- You must not have any duplicate CIs, as the parser is not able to process them.
+
+### Limitations
+
+- Ingestion is limited to 100k hosts per execution.
+- Network device tagging is limited to [SNMP devices][6].
+- Updates to devices are throttled to a few thousand per hour. Take this into consideration when choosing your schedule interval.
+
+## Reference Tables
+
+Use [Reference Tables][7] to automatically enrich logs and events with additional fields from your ServiceNow CIs. With Reference Tables, you can map sets of value fields to a primary key, such as a hostname, and automatically append these fields to all logs or events that contain the specified key.
+To enable ingestion of Reference Tables:
+
+1. Configure a [Query Builder][8] query in your ServiceNow instance.
+1. Schedule the query to run at your desired refresh interval.
+1. Save the query.
+1. Select, **Add New Query**, and choose your query from the dropdown menu.
+1. In the primary key dropdown, select the column name you want to use as your primary key.
Optionally, create a [Processing Pipeline][9] with this primary key to enrich and correlate logs and events.
+1. Enter a name for your reference table. The Reference Table name must be unique.
+1. Click **Save**. The [Reference Table][7] populates with the data from the query shortly after saving.
+
+### Additional non-CMDB fields in Reference Tables
+
+Some ServiceNow tables are non-CMDB and cannot be selected in the Query Builder. To include data from these tables, you can use **Additional Fields** by specifying a **full dot-walked path**. These fields are added as extra columns to the reference table, along with the ones defined by the Query Builder.
+
+**Note**: Only paths supported by the ServiceNow Table API are available for use in Additional Fields. The generated columns are based on the root table name and the last two columns of the field spec. For example, `vendor.manufacturer.name` generates a column named `cmdb_ci_server_manufacturer_name`, and `location.city` generates a column named `cmdb_ci_server_location_city` assuming a root table of `cmdb_ci_server`.
+
+### Limitations
+
+Deletions and schema updates of existing tables are not supported.
+
+## Further reading
+
+{{< partial name="whats-next/whats-next.html" >}}
+
+[1]: https://docs.servicenow.com/bundle/xanadu-servicenow-platform/page/product/configuration-management/concept/cmdb-query-builder-landing-page.html
+[2]: https://app.datadoghq.com/event/explorer
+[3]: https://docs.datadoghq.com/tracing/service_catalog/
+[4]: https://docs.datadoghq.com/tracing/service_catalog/adding_metadata/
+[5]: https://docs.datadoghq.com/network_monitoring/devices/
+[6]: https://docs.datadoghq.com/network_monitoring/devices/snmp_metrics/
+[7]: https://app.datadoghq.com/reference-tables
+[8]: https://docs.servicenow.com/bundle/rome-servicenow-platform/page/product/configuration-management/task/use-cmdb-query-builder.html
+[9]: https://app.datadoghq.com/event/pipelines
\ No newline at end of file
diff --git a/content/en/integrations/guide/servicenow-service-graph-connector-setup.md b/content/en/integrations/guide/servicenow-service-graph-connector-setup.md
new file mode 100644
index 0000000000000..59ffe1c16ad65
--- /dev/null
+++ b/content/en/integrations/guide/servicenow-service-graph-connector-setup.md
@@ -0,0 +1,50 @@
+---
+title: Set up ServiceNow Service Graph Connector
+further_reading:
+- link: "/integrations/servicenow/"
+ tag: "Documentation"
+ text: "ServiceNow integration"
+---
+
+## Overview
+
+The [Service Graph Connector for Observability \- Datadog][1] allows Datadog to automatically populate server and database Configuration Items (**CIs**) in your ServiceNow CMDB for newly discovered resources. You can obtain this connector from the ServiceNow [store][2].
+
+For initial setup, follow the **guided setup instructions** provided by the Service Graph Connector.
+
+The connector supports the following CI types:
+
+- **Server**
+- **Amazon RDS**
+
+### Notes for existing integrations
+
+If you already have the integration configured for **ServiceNow ITOM/ITSM**:
+
+- The Service Graph Connector does not use the `Target table` and `Custom table` values from the configuration tile. You can save the integration with the Target table default values.
+- You can reuse your existing ITOM/ITSM user, but you must grant them the `cmdb_import_api_admin` role. This is outlined in the Service Graph Connector's guided setup instructions.
+
+## Customizing CI fields
+
+In the [Datadog ServiceNow][3] integration tile, click the **Configure** tab, then the **Service Graph Connector** tab. Expand the **Customize CI** fields section. The following options are available:
+
+CI Type
+: The type of CI this field applies to.
+
+ServiceNow Field
+: The field in ServiceNow to apply it to.
+
+Datadog Tag
+: The tag to send from Datadog resources. (If multiple tags are found with the same name, they'll be comma-separated.)
+
+For example, to add a CI field with a CI Type of `Host` and a ServiceNow Field of `Host Name`, add any *host* tag attribute to the `Datadog Tag` field.
+
+**Note**: The `Datadog Tag` field must be a *host* tag that exists on Datadog hosts, not an attribute tag on a host.
+
+## Further reading
+
+{{< partial name="whats-next/whats-next.html" >}}
+
+[1]: https://store.servicenow.com/sn_appstore_store.do#!/store/application/c877cb86687e0050f8774bfad236c950/1.2.1
+[2]: https://store.servicenow.com/
+[3]: https://app.datadoghq.com/integrations/servicenow
\ No newline at end of file
From b9a88e6bd0014ba5e6ff275c90df85bc2f0251d2 Mon Sep 17 00:00:00 2001
From: Janine Chan <64388808+janine-c@users.noreply.github.com>
Date: Mon, 25 Aug 2025 17:43:52 -0600
Subject: [PATCH 05/11] Remove colons from guides page
---
content/en/integrations/guide/_index.md | 14 +++++++-------
1 file changed, 7 insertions(+), 7 deletions(-)
diff --git a/content/en/integrations/guide/_index.md b/content/en/integrations/guide/_index.md
index 44531e7f71516..ab242a2f652be 100644
--- a/content/en/integrations/guide/_index.md
+++ b/content/en/integrations/guide/_index.md
@@ -9,7 +9,7 @@ cascade:
subcategory: Integrations Guides
---
-{{< header-list header="General guides:" >}}
+{{< header-list header="General guides" >}}
{{< nextlink href="integrations/guide/requests" tag=" documentation" >}}Request Datadog integrations{{< /nextlink >}}
{{< nextlink href="/integrations/guide/reference-tables/" tag=" Documentation" >}}Add Custom Metadata with Reference Tables{{< /nextlink >}}
{{< nextlink href="integrations/guide/source-code-integration" tag=" Documentation" >}}Datadog Source Code Integration{{< /nextlink >}}
@@ -33,7 +33,7 @@ cascade:
{{< nextlink href="integrations/guide/fips-integrations" tag=" fips" >}}FIPS Verified Agent Integrations{{< /nextlink >}}
{{< /header-list >}}
-{{< header-list header="AWS guides:" >}}
+{{< header-list header="AWS guides" >}}
{{< nextlink href="getting_started/integrations/aws/" tag=" AWS" >}}AWS integration automatic setup with CloudFormation{{< /nextlink >}}
{{< nextlink href="integrations/guide/aws-terraform-setup" tag=" AWS" >}}AWS integration automatic setup with Terraform{{< /nextlink >}}
{{< nextlink href="integrations/guide/aws-organizations-setup" tag=" AWS" >}}AWS integration multi-account setup for Organizations{{< /nextlink >}}
@@ -47,7 +47,7 @@ cascade:
{{< nextlink href="integrations/guide/aws-integration-and-cloudwatch-faq" tag=" AWS" >}}AWS integration and CloudWatch FAQ{{< /nextlink >}}
{{< /header-list >}}
-{{< header-list header="Azure guides:" >}}
+{{< header-list header="Azure guides" >}}
{{< nextlink href="integrations/guide/azure-manual-setup" tag=" Azure" >}}Azure manual setup guide{{< /nextlink >}}
{{< nextlink href="integrations/guide/azure-native-manual-setup" tag=" Azure" >}}Azure Native manual setup guide{{< /nextlink >}}
{{< nextlink href="integrations/guide/azure-programmatic-management" tag=" Azure" >}}Azure integration programmatic management guide{{< /nextlink >}}
@@ -63,11 +63,11 @@ cascade:
{{< nextlink href="integrations/guide/azure-graph-api-permissions" tag=" Azure" >}}Microsoft Graph API Permissions for Monitoring Azure{{< /nextlink >}}
{{< /header-list >}}
-{{< header-list header="Google Cloud guides:" >}}
+{{< header-list header="Google Cloud guides" >}}
{{< nextlink href="integrations/guide/gcp-metric-discrepancy" tag=" gcp" >}}Google Cloud Metric Discrepancy{{< /nextlink >}}
{{< /header-list >}}
-{{< header-list header="JMX guides:" >}}
+{{< header-list header="JMX guides" >}}
{{< nextlink href="integrations/guide/running-jmx-commands-in-windows" tag=" jmx" >}}Running JMX commands in Windows{{< /nextlink >}}
{{< nextlink href="integrations/guide/collecting-composite-type-jmx-attributes" tag=" jmx" >}}Collecting composite-type JMX attributes{{< /nextlink >}}
{{< nextlink href="integrations/guide/use-bean-regexes-to-filter-your-jmx-metrics-and-supply-additional-tags" tag=" jmx" >}}Use Bean regexes to filter your JMX metrics and supply additional tags{{< /nextlink >}}
@@ -75,13 +75,13 @@ cascade:
{{< nextlink href="integrations/guide/jmxfetch-fips/" tag=" jmx" >}}JMXFetch FIPS-140 mode{{< /nextlink >}}
{{< /header-list >}}
-{{< header-list header="ServiceNow guides:" >}}
+{{< header-list header="ServiceNow guides" >}}
{{< nextlink href="integrations/guide/servicenow-itom-itsm-setup" >}}Set up ServiceNow ITOM and ITSM{{< /nextlink >}}
{{< nextlink href="integrations/guide/servicenow-cmdb-enrichment-setup" >}}Set up ServiceNow CMDB Enrichment{{< /nextlink >}}
{{< nextlink href="integrations/guide/servicenow-service-graph-connector-setup" >}}Set up ServiceNow Service Graph Connector{{< /nextlink >}}
{{< /header-list >}}
-{{< header-list header="Database guides:" >}}
+{{< header-list header="Database guides" >}}
{{< nextlink href="integrations/guide/collect-more-metrics-from-the-sql-server-integration" tag=" SQL Server" >}}Collect more metrics from the SQL Server integration{{< /nextlink >}}
{{< nextlink href="integrations/guide/collect-sql-server-custom-metrics" tag=" SQL Server" >}}Collect SQL Server custom metrics{{< /nextlink >}}
{{< nextlink href="integrations/guide/use-wmi-to-collect-more-sql-server-performance-metrics" tag=" SQL Server" >}}Use WMI to collect more SQL Server performance metrics{{< /nextlink >}}
From b349925f93a0f101c2493fe31ee55b5e0d2c9a64 Mon Sep 17 00:00:00 2001
From: Janine Chan <64388808+janine-c@users.noreply.github.com>
Date: Tue, 26 Aug 2025 15:51:56 -0600
Subject: [PATCH 06/11] Guide cleanup
---
.../guide/servicenow-cmdb-enrichment-setup.md | 92 +++++++------------
...ervicenow-service-graph-connector-setup.md | 21 ++---
2 files changed, 40 insertions(+), 73 deletions(-)
diff --git a/content/en/integrations/guide/servicenow-cmdb-enrichment-setup.md b/content/en/integrations/guide/servicenow-cmdb-enrichment-setup.md
index 917f247b0bbe8..c8dce83d19fc0 100644
--- a/content/en/integrations/guide/servicenow-cmdb-enrichment-setup.md
+++ b/content/en/integrations/guide/servicenow-cmdb-enrichment-setup.md
@@ -13,23 +13,22 @@ further_reading:
The **ServiceNow Integration** uses ServiceNow's Configuration Management Database (CMDB) to enrich and contextualize your data within Datadog. This integration provides the following key capabilities:
-- **Host Tagging**: Enriches Datadog hosts with metadata from the ServiceNow CMDB, which allows for improved data organization and filtering.
-- **Service Tagging**: Populates the Datadog Service Catalog with services and their associated metadata from the ServiceNow CMDB.
-- **Network Device Tagging**: Adds tags to network devices monitored by Datadog, using metadata from the ServiceNow CMDB.
-- **Reference Tables**: Automatically enriches logs and events in Datadog with additional fields from ServiceNow CIs by mapping value fields to a primary key.
+- [**Host Tagging**](#host-tagging): Enriches Datadog hosts with metadata from the ServiceNow CMDB, which allows for improved data organization and filtering.
+- [**Service Tagging**](#service-tagging): Populates the Datadog Service Catalog with services and their associated metadata from the ServiceNow CMDB.
+- [**Network Device Tagging**](#network-device-tagging): Adds tags to network devices monitored by Datadog, using metadata from the ServiceNow CMDB.
+- [**Reference Tables**](#reference-tables): Automatically enriches logs and events in Datadog with additional fields from ServiceNow CIs by mapping value fields to a primary key.
## Host tagging
Enrich your Datadog hosts with ServiceNow CMDB metadata through host tagging.
To enable ingestion of host tags:
-1. Configure a [Query Builder][1] query in your ServiceNow instance that returns all of the hosts you wish to tag in Datadog.
-1. Schedule the query to execute at your desired refresh interval.
-1. Once the query has been saved in ServiceNow, go to Datadog's ServiceNow integration tile. Select the **Host Tagging** in the **CMDB Enrichment** tab within \*\*\*Configure\*\*.
+1. In ServiceNow, configure a [Query Builder][1] query that returns all of the hosts you wish to tag in Datadog. Schedule the query to execute at your desired refresh interval and save it.
+1. Navigate to Datadog's ServiceNow integration tile. In the **Configure** section, in the **CMDB Enrichment** tab, select **Host Tagging**.
1. Under **Query Configuration**, click **Add New Query**.
1. Select the **ServiceNow Instance** and the **Query** from the dropdown menus.
1. Select a value for the **Hostname Column** that maps your query's root CI hostname field to Datadog's hostname field. The dropdown options come from the starting node of your querybuilder query.
-1. Select any optional field name remapping with **Column Name Maps**. By default, tags are applied to the host in the format `tagName:columnValue`, where tagName is a combination of the VI table name and the column name.
+1. Select any optional field name remapping with **Column Name Maps**. By default, tags are applied to the host in the format `tagName:columnValue`, where `tagName` is a combination of the table name and the column name.
1. Click **Save**.
Expect host tags to populate in Datadog shortly after your queries' scheduled executions.
@@ -38,26 +37,12 @@ Expect host tags to populate in Datadog shortly after your queries' scheduled ex
Monitor the ingestion process in the Datadog [Events Explorer][2] by scoping your search query on `source:servicenow`.
-### Additional Non-CMDB fields tagging
+### Additional Non-CMDB field tagging
Some ServiceNow tables are non-CMDB and cannot be selected in the Query Builder. To enrich Datadog hosts with tags from these tables, click **Additional Fields** on the configuration tile and configure a host tagging query as described above, providing a full dot-walked path. Paths should start from the first attribute name on the root table configured for the query. For example, entering `vendor.manufacturer.name` for a query with root CI `cmdb_ci_server` populates hosts with the tag `cmdb_ci_server_manufacturer_name`.
**Note**: Only dot-walkable paths that are supported by the ServiceNow Table API are available for use in Additional Fields. Many-to-many relationships may not work out of the box and may require additional configuration.
-### Host tagging troubleshooting
-
-For host tagging to work correctly, ensure that the following are true in your system:
-
-- The user who created and executes the Query Builder query matches a username in your Datadog configuration. The user in ServiceNow must have the role `cmdb_query_builder_read`.
-- The number of results returned by your query must be less than or equal to the `glide.cmdb.query.max_results_limit` setting in ServiceNow. By default, the maximum number of results is 10000\. To change the setting, go to **Configuration \> CMDB Properties \> Query Builder Properties**.
-- All CIs configured in your Query Builder query must have a `1` label. This ensures you have not created any duplicate CIs, which the parser does not support.
-
-### Limitations
-
-- Ingestion is limited to 100k hosts per execution.
-- Updates to hosts are throttled to a few thousand per hour. Take this limit into consideration when choosing your schedule interval.
-- Host aliases in Datadog are case sensitive. Your ingested CMDB hostnames must exactly match the corresponding hostnames in Datadog.
-
## Service tagging
Enrich your Datadog Service Catalog with ServiceNow CMDB metadata through service tagging.
@@ -65,9 +50,8 @@ With service tagging, you can populate your Datadog [Service Catalog][3] with se
To enable ingestion of service data:
-1. Configure a [Query Builder][1] query in your ServiceNow instance that returns all of the services with which you wish to enrich the Service Catalog.
-1. Schedule the query to execute at your desired refresh interval.
-1. Once the query is saved in ServiceNow, go to Datadog's ServiceNow integration tile. Select **Service Tagging** in the **CMDB Enrichment** tab within **Configure**.
+1. In ServiceNow, configure a [Query Builder][1] query that returns all of the services with which you wish to enrich the Service Catalog. Schedule the query to execute at your desired refresh interval and save it.
+1. Navigate to Datadog's ServiceNow integration tile. In the **Configure** section, in the **CMDB Enrichment** tab, select **Service Tagging**.
1. Under **Query Configuration**, click **Add New Query**.
1. Select the **ServiceNow Instance** and the **Query** from the dropdown menus.
1. Select a value from the **Service Name Column** dropdown menu. The value matches the column name on your query's root service CI, and populates the service name in the service catalog.
@@ -77,14 +61,6 @@ To enable ingestion of service data:
Expect to see service data populated in Datadog a few minutes after your queries' scheduled executions. To view ingestion errors, go to the [Events Explorer][2] and search for events with `source:servicenow`.
-### Service tagging troubleshooting
-
-For service ingestion to work correctly, ensure that the following are true in your system:
-
-- The user who created and executes the Query Builder query matches a username in your Datadog configuration. The user in ServiceNow must have the role `cmdb_query_builder_read`.
-- The number of results returned by your query must be less than or equal to the `glide.cmdb.query.max_results_limit` setting in ServiceNow. By default, the maximum number of results is 10000. To change the setting, go to **Configuration \> CMDB Properties \> Query Builder Properties**.
-- All CIs configured in your Query Builder query must have a `1` label. This ensures you have not created any duplicate CIs, which the parser does not support.
-
## Network device tagging
Add tags to your network devices in Datadog populated with data from your ServiceNow CMDB.
@@ -93,13 +69,12 @@ With device tagging, you can dynamically enrich network devices monitored by Dat
To enable ingestion of device tags:
-1. Configure a [Query Builder][1] query in your ServiceNow instance. Make sure it is returning the device IP Address.
-1. Schedule the query to execute at your desired refresh interval.
-1. If you are using a custom IP namespace in Datadog, you need to add it to ServiceNow. Create a column on the Network device CI called `u_dd_device_namespace`, populated by the corresponding namespace for each device. If this column is not present, the default namespace is used.
-1. After the query is saved in ServiceNow, go to Datadog's ServiceNow integration tile. Select Device Tagging in the CMDB Enrichment tab within Configure.
-1. Under Query Configuration, click the Add New Query button.
-1. Select the ServiceNow Instance and the Query from the dropdown menus.
-1. Select the IP Address column that maps your query's IP Address field to Datadog's IP Address field.
+1. Configure a [Query Builder][1] query in your ServiceNow instance. Make sure it is returning the device IP address. Schedule the query to execute at your desired refresh interval.
+1. If you are using a custom IP namespace in Datadog, you need to add it to ServiceNow. Create a column on the Network device CI called `u_dd_device_namespace`, populated by the corresponding namespace for each device. If this column is not present, ServiceNow uses the default namespace.
+1. After the query is saved in ServiceNow, go to Datadog's ServiceNow integration tile. In the **Configure** section, in the **CMDB Enrichment** tab, select **Device Tagging**.
+1. Under **Query Configuration**, click **Add New Query**.
+1. Select the **ServiceNow Instance** and the **Query** from the dropdown menus.
+1. Select the **IP Address** column that maps your query's IP Address field to Datadog's IP Address field.
1. Select any optional field name remappings.
1. Click **Save**.
@@ -108,28 +83,13 @@ You can expect to see network device tags populated in Datadog within a few minu
Monitor the ingestion process in the Datadog [Events Explorer][2] by scoping your search query on `source:servicenow`.
-### Network device tagging troubleshooting
-
-- Verify that the user who created or is executing the querybuilder query is the same user in your Datadog configuration and has the role `cmdb_query_builder_read`.
-- Check that your query isn't returning more results than your `glide.cmdb.query.max_results_limit` setting in Servicenow is configured to allow.
-- Make sure all CIs in your querybuilder query have a `1` label.
-- You must not have any duplicate CIs, as the parser is not able to process them.
-
-### Limitations
-
-- Ingestion is limited to 100k hosts per execution.
-- Network device tagging is limited to [SNMP devices][6].
-- Updates to devices are throttled to a few thousand per hour. Take this into consideration when choosing your schedule interval.
-
## Reference Tables
Use [Reference Tables][7] to automatically enrich logs and events with additional fields from your ServiceNow CIs. With Reference Tables, you can map sets of value fields to a primary key, such as a hostname, and automatically append these fields to all logs or events that contain the specified key.
To enable ingestion of Reference Tables:
-1. Configure a [Query Builder][8] query in your ServiceNow instance.
-1. Schedule the query to run at your desired refresh interval.
-1. Save the query.
-1. Select, **Add New Query**, and choose your query from the dropdown menu.
+1. Configure a [Query Builder][8] query in your ServiceNow instance. Schedule the query to run at your desired refresh interval and save it.
+1. Select **Add New Query** and choose your query from the dropdown menu.
1. In the primary key dropdown, select the column name you want to use as your primary key.
Optionally, create a [Processing Pipeline][9] with this primary key to enrich and correlate logs and events.
1. Enter a name for your reference table. The Reference Table name must be unique.
1. Click **Save**. The [Reference Table][7] populates with the data from the query shortly after saving.
@@ -140,9 +100,21 @@ Some ServiceNow tables are non-CMDB and cannot be selected in the Query Builder.
**Note**: Only paths supported by the ServiceNow Table API are available for use in Additional Fields. The generated columns are based on the root table name and the last two columns of the field spec. For example, `vendor.manufacturer.name` generates a column named `cmdb_ci_server_manufacturer_name`, and `location.city` generates a column named `cmdb_ci_server_location_city` assuming a root table of `cmdb_ci_server`.
-### Limitations
+## Troubleshooting
+
+For tagging to work correctly, ensure that the following are true in your system:
-Deletions and schema updates of existing tables are not supported.
+- The user who created and executes the Query Builder query matches a username in your Datadog configuration. The user in ServiceNow must have the role `cmdb_query_builder_read`.
+- The number of results returned by your query must be less than or equal to the `glide.cmdb.query.max_results_limit` setting in ServiceNow. By default, the maximum number of results is 10000. To change the setting, go to **Configuration** > **CMDB Properties** > **Query Builder Properties**.
+- All CIs configured in your Query Builder query must have a `1` label. This ensures you have not created any duplicate CIs, which the parser does not support.
+
+## Limitations
+
+- Ingestion is limited to 100k hosts per execution.
+- Updates to hosts and devices are throttled to a few thousand per hour. Take this limit into consideration when choosing your schedule interval.
+- Host aliases in Datadog are case sensitive. Your ingested CMDB hostnames must exactly match the corresponding hostnames in Datadog.
+- Network device tagging is limited to [SNMP devices][6].
+- Deletions and schema updates of existing tables are not supported.
## Further reading
diff --git a/content/en/integrations/guide/servicenow-service-graph-connector-setup.md b/content/en/integrations/guide/servicenow-service-graph-connector-setup.md
index 59ffe1c16ad65..ba4e90d298ffc 100644
--- a/content/en/integrations/guide/servicenow-service-graph-connector-setup.md
+++ b/content/en/integrations/guide/servicenow-service-graph-connector-setup.md
@@ -8,23 +8,22 @@ further_reading:
## Overview
-The [Service Graph Connector for Observability \- Datadog][1] allows Datadog to automatically populate server and database Configuration Items (**CIs**) in your ServiceNow CMDB for newly discovered resources. You can obtain this connector from the ServiceNow [store][2].
+The [Service Graph Connector for Observability - Datadog][1] integration allows Datadog to automatically populate server and database Configuration Items (CIs) in your ServiceNow CMDB for newly discovered resources. You can obtain this connector from the ServiceNow [store][2].
-For initial setup, follow the **guided setup instructions** provided by the Service Graph Connector.
+For initial setup, follow the guided setup instructions included in the integration.
The connector supports the following CI types:
+- Server
+- Amazon RDS
-- **Server**
-- **Amazon RDS**
+### Notes for existing ITOM/ITSM configurations
-### Notes for existing integrations
-
-If you already have the integration configured for **ServiceNow ITOM/ITSM**:
+If you already have the integration configured for ServiceNow ITOM/ITSM:
- The Service Graph Connector does not use the `Target table` and `Custom table` values from the configuration tile. You can save the integration with the Target table default values.
- You can reuse your existing ITOM/ITSM user, but you must grant them the `cmdb_import_api_admin` role. This is outlined in the Service Graph Connector's guided setup instructions.
-## Customizing CI fields
+## Customize CI fields
In the [Datadog ServiceNow][3] integration tile, click the **Configure** tab, then the **Service Graph Connector** tab. Expand the **Customize CI** fields section. The following options are available:
@@ -35,11 +34,7 @@ ServiceNow Field
: The field in ServiceNow to apply it to.
Datadog Tag
-: The tag to send from Datadog resources. (If multiple tags are found with the same name, they'll be comma-separated.)
-
-For example, to add a CI field with a CI Type of `Host` and a ServiceNow Field of `Host Name`, add any *host* tag attribute to the `Datadog Tag` field.
-
-**Note**: The `Datadog Tag` field must be a *host* tag that exists on Datadog hosts, not an attribute tag on a host.
+: The tag to send from Datadog resources. (If multiple tags are found with the same name, they'll be comma-separated.)
For example, to add a CI field with a CI Type of `Host` and a ServiceNow Field of `Host Name`, add any host tag attribute to the `Datadog Tag` field.
**Note**: The `Datadog Tag` field must be a host tag that exists on Datadog hosts, not an attribute tag on a host.
## Further reading
From 17ebf746f8b15c872ee73a326df8206d79c5834c Mon Sep 17 00:00:00 2001
From: Janine Chan <64388808+janine-c@users.noreply.github.com>
Date: Thu, 4 Sep 2025 13:26:50 -0600
Subject: [PATCH 07/11] Apply feedback
---
.../guide/servicenow-itom-itsm-setup.md | 54 ++++++-------------
1 file changed, 17 insertions(+), 37 deletions(-)
diff --git a/content/en/integrations/guide/servicenow-itom-itsm-setup.md b/content/en/integrations/guide/servicenow-itom-itsm-setup.md
index b4098ea9b2dfc..1c5133053bb4f 100644
--- a/content/en/integrations/guide/servicenow-itom-itsm-setup.md
+++ b/content/en/integrations/guide/servicenow-itom-itsm-setup.md
@@ -7,47 +7,26 @@ further_reading:
---
ServiceNow's ITOM/ITSM integration allows you to send alerts, cases, and incidents generated in Datadog to ServiceNow as records in the Incident or Event tables. The integration relies on interim tables and transform maps.
-To use the integration, follow the instructions to install the app, and then configure the integration for each product:
-1. [Install the ITOM/ITSM app](#install)
-1. Configure the app
+To use the integration, follow the instructions to install the integration, and then configure the integration for each product:
+1. [Install the ITOM/ITSM integration](#install)
+1. Configure the integration
1. [Configure Datadog templated monitor notifications](#monitor-notifications)
1. [Configure Datadog Case Management](#case-management)
1. [Configure Datadog Incident Management](#incident-management)
1. [Customize data with transform maps](#transform-maps)
-## Install the ITOM/ITSM app {#install}
-There are two ways to install the app:
-- Install the latest version of the [ITOM/ITSM Integration for Datadog][1] app from the ServiceNow store.
+## Install the ITOM/ITSM integration {#install}
+There are two ways to install the integration:
+- Install the latest version of the [ITOM/ITSM Integration for Datadog][1] integration from the ServiceNow store.
- Download the latest Update Set ([Datadog-Snow_Update_Set_v2.7.2.xml][2]) and upload it to your ServiceNow instance manually.
Before proceeding, make sure you have [added your ServiceNow instance][3] into your ServiceNow tile in Datadog.
-
-
-### Install the update set in ServiceNow
-
-**Note**: If you have custom transform map modifications, ServiceNow notifies you of any conflicts and can choose the appropriate changes based on your requirements. Datadog recommends backing up your existing transform map customizations before making any updates.
-
-1. Manually import the Update Set XML file that you downloaded to your ServiceNow instance.
-1. After you import the XML file, the Update Set should show a state of `Loaded`. Click the name of the Update Set to preview the changes.
-1. After you preview the Update Set to ensure there are no errors, select **Commit Update Set** to merge the application into your system.
-
-After you have installed the app, search for **Datadog** in the ServiceNow navigation menu to access all of the tables and the Configuration Page for bidirectional syncing setup:
-
-- `Configuration`
-- `Datadog Incidents ITSM`
-- `Cases ITOM`, formerly `Datadog Cases ITOM`
-- `Cases ITSM`, formerly `Datadog Cases ITSM`
-- `Legacy Monitors ITOM`, formerly `Datadog Monitors ITOM`
-- `Legacy Monitors ITSM`, formerly `Datadog Monitors ITSM`
-- `Templated Monitors ITOM`
-- `Templated Monitors ITSM`
-
-## Configure the app
+## Configure the integration
### Configure templated monitor notifications {#monitor-notifications}
-These features require ITOM/ITSM integration app version 2.6.0 or newer.
+These features require ITOM/ITSM integration version 2.6.0 or newer.
#### Configure instance priority mapping
@@ -74,17 +53,18 @@ To create a ServiceNow record from a monitor, you need to configure an @-handle
To use the new template, add `@servicenow-` in a monitor description. When the monitor alerts, ServiceNow also creates a corresponding record, and automatically sets it to **Resolved** when the underlying alert recovers.
-#### Configure legacy monitor notifications
-
+{{% collapse-content title="Configure legacy monitor notifications" level="h4" expanded=false id="configure-legacy-monitor-notifications" %}}
To configure legacy monitor notifications using `@servicenow-`:
1. In Datadog, go to the [ServiceNow integration settings][4] page.
1. Go to the **Configure** tab, then the **ITOM/ITSM** tab, then the **Monitors** tab.
1. Under **Manage Legacy Monitor Notifications**, select the instance you want to configure notifications for, then select the table that legacy monitor notifications write to.
-1. To validate the integration is set up correctly, add `@servicenow-` in a monitor or event notification. The raw data populates rows in the interim table and is forwarded to the ServiceNow table specified by the app.
+1. To validate the integration is set up correctly, add `@servicenow-` in a monitor or event notification. The raw data populates rows in the interim table and is forwarded to the ServiceNow table specified by the integration.
1. Use [transform maps](#transform-maps) in ServiceNow to customize the transformation of the data sent to the interim tables.
1. Customize the notification payload with available Datadog variables or custom strings.
1. To set priority in ServiceNow incidents, follow the instructions in [Incident Priority field mapping](#legacy-incident-priority-field-mapping)
+{{% /collapse-content %}}
+
### Configure Datadog Case Management {#case-management}
@@ -107,7 +87,7 @@ You can choose to send cases from Datadog to either the Datadog Cases ITOM or IT
### Configure Datadog Incident Management {#incident-management}
-After installing the app, in Datadog, go to the [Integration Settings][9] page. Click the **ServiceNow** tile to configure ServiceNow incident creation.
+After installing the integration, in Datadog, go to the [Integration Settings][9] page. Click the **ServiceNow** tile to configure ServiceNow incident creation.
#### Incident Management field mappings
@@ -144,13 +124,13 @@ This section describes the fields that are synced between Incident Management an
\***Note**: If `Start at SEV-0` is enabled in Incident Management settings, the values in `ServiceNow Urgency`, `ServiceNow Impact`, and `ServiceNow Priority` will all stay the same, but the `Datadog Incident Severity` shifts down by 1. For example, in the first row of this table, the Datadog Incident Severity would be 0, but the rest of the values in the rest of the row would stay the same.
-#### Legacy Incident Priority field mapping
-
+{{% collapse-content title="Legacy Incident Priority field mapping" level="h4" expanded=false id="legacy-incident-priority-field-mapping" %}}
**Note:** `Impact` and `Urgency` in monitor descriptions work only for [legacy monitor configurations](#configure-legacy-monitor-notifications). For [templated monitors](#monitor-notifications), configure [instance priority mapping](#configure-instance-priority-mapping).
The `priority` field in ServiceNow incidents is _read only_ and can only be updated using [priority lookup rules][8].
+{{% /collapse-content %}}
-### Sync data bidirectionally between ServiceNow and Case/Incident Management
+#### Sync data bidirectionally between ServiceNow and Case/Incident Management
In ServiceNow, you can sync state, impact, and urgency bidirectionally with both Case Management and Incident Management.
@@ -163,7 +143,7 @@ In ServiceNow, you can sync state, impact, and urgency bidirectionally with both
1. Paste in your **Service Account Application Key** you created.
1. Check the **Enabled** box.
1. Click **Save**.
-1. (Optional) If you have ITOM/ITSM integration app version 2.7.0 or newer, you can use information from correlated alerts to populate values in ServiceNow.
The transform maps for Datadog Cases ITOM and ITSM tables contain an example transform script that runs onBefore. By default, the script is commented out, but you can enable it by uncommenting it and modifying it to fit your use case.
+1. (Optional) If you have ITOM/ITSM integration version 2.7.0 or newer, you can use information from correlated alerts to populate values in ServiceNow.
The transform maps for Datadog Cases ITOM and ITSM tables contain an example transform script that runs onBefore. By default, the script is commented out, but you can enable it by uncommenting it and modifying it to fit your use case.
## Customize data with transform maps {#transform-maps}
From 0df9585fe5058aba0e117fc9432f89b44cbbe7c8 Mon Sep 17 00:00:00 2001
From: Janine Chan <64388808+janine-c@users.noreply.github.com>
Date: Fri, 12 Sep 2025 12:25:17 -0600
Subject: [PATCH 08/11] Apply edits
---
.../guide/servicenow-itom-itsm-setup.md | 238 +++++++++++-------
.../guide/servicenow/servicenow-click-new.png | Bin 0 -> 34361 bytes
.../servicenow-click-transform-map.png | Bin 0 -> 24445 bytes
.../servicenow/servicenow-script-example.png | Bin 0 -> 45106 bytes
.../servicenow-select-source-target.png | Bin 0 -> 26392 bytes
.../servicenow-source-target-fields.png | Bin 0 -> 22004 bytes
6 files changed, 141 insertions(+), 97 deletions(-)
create mode 100755 static/images/integrations/guide/servicenow/servicenow-click-new.png
create mode 100755 static/images/integrations/guide/servicenow/servicenow-click-transform-map.png
create mode 100755 static/images/integrations/guide/servicenow/servicenow-script-example.png
create mode 100755 static/images/integrations/guide/servicenow/servicenow-select-source-target.png
create mode 100755 static/images/integrations/guide/servicenow/servicenow-source-target-fields.png
diff --git a/content/en/integrations/guide/servicenow-itom-itsm-setup.md b/content/en/integrations/guide/servicenow-itom-itsm-setup.md
index 1c5133053bb4f..085c41393d053 100644
--- a/content/en/integrations/guide/servicenow-itom-itsm-setup.md
+++ b/content/en/integrations/guide/servicenow-itom-itsm-setup.md
@@ -17,8 +17,8 @@ To use the integration, follow the instructions to install the integration, and
## Install the ITOM/ITSM integration {#install}
There are two ways to install the integration:
-- Install the latest version of the [ITOM/ITSM Integration for Datadog][1] integration from the ServiceNow store.
-- Download the latest Update Set ([Datadog-Snow_Update_Set_v2.7.2.xml][2]) and upload it to your ServiceNow instance manually.
+- Datadog recommends installing the latest version of the [ITOM/ITSM Integration for Datadog][1] integration from the ServiceNow store.
+- Alternatively, you can download the latest Update Set ([Datadog-Snow_Update_Set_v2.7.2.xml][2]) and upload it to your ServiceNow instance manually.
Before proceeding, make sure you have [added your ServiceNow instance][3] into your ServiceNow tile in Datadog.
@@ -36,7 +36,9 @@ By default, Datadog doesn't include ServiceNow impact and urgency levels when se
1. Go to the **Configure** tab, then the **ITOM/ITSM** tab, then the **Monitors** tab.
1. Under **Instance Priority Mapping for Templates**, open the settings for your ServiceNow instance.
1. Turn on the **Use Instance Priority Mapping** toggle.
-1. In the **ServiceNow Urgency** and **ServiceNow Impact**, select the levels you want to correspond with Datadog's Monitor Priority levels.
+1. In the **ServiceNow Urgency** and **ServiceNow Impact**, select the levels you want to correspond with Datadog's Monitor Priority levels. For example:
+ - Impact: 4
+ - Urgency: 5
1. Click **Update**.
#### Create a custom ServiceNow @-handle for monitor notifications
@@ -62,93 +64,10 @@ To configure legacy monitor notifications using `@servicenow-`:
1. To validate the integration is set up correctly, add `@servicenow-` in a monitor or event notification. The raw data populates rows in the interim table and is forwarded to the ServiceNow table specified by the integration.
1. Use [transform maps](#transform-maps) in ServiceNow to customize the transformation of the data sent to the interim tables.
1. Customize the notification payload with available Datadog variables or custom strings.
-1. To set priority in ServiceNow incidents, follow the instructions in [Incident Priority field mapping](#legacy-incident-priority-field-mapping)
-{{% /collapse-content %}}
-
-
-### Configure Datadog Case Management {#case-management}
-
-{{% site-region region="gov" %}}
-
-Case Management integration is not supported in the {{< region-param key=dd_datacenter code="true" >}} site.
-
-{{% /site-region %}}
-
-You can choose to send cases from Datadog to either the Datadog Cases ITOM or ITSM table in ServiceNow. ServiceNow stores the records and transforms them using the installed update set to records in the Event or Incident table. Datadog doesn't support custom payloads for these tables, or updates to the Events table.
-
-The user configuring the settings in ServiceNow must have both the x_datad_datadog.user
and admin
roles.
-
-1. In Datadog, go to the [ServiceNow integration settings][4] page.
-1. Go to the **Configure** tab, then the **ITOM/ITSM** tab, then the **Case Management** tab.
-1. Under **Sync ServiceNow with Case Management**, open the settings for your ServiceNow instance.
-1. Beside **Case Table**, choose to send cases to either **Datadog Cases ITOM** or **Datadog Cases ITSM**.
-1. Navigate to the [Case Management > Settings][5] page, and expand your project. Then, [set up the ServiceNow integration][6] for that project.
-1. Follow the instructions to [create a service account application key][7].
**Note**: Datadog recommends creating this key instead of using a personal one, which risks breaking the ServiceNow sync if the user's account is deactivated or if their permissions change.
-
-### Configure Datadog Incident Management {#incident-management}
-
-After installing the integration, in Datadog, go to the [Integration Settings][9] page. Click the **ServiceNow** tile to configure ServiceNow incident creation.
-
-#### Incident Management field mappings
-
-This section describes the fields that are synced between Incident Management and ServiceNow:
-
-| **Incident Management** | **ServiceNow Cases Table** | **ServiceNow Incident** | **Sync Status** |
-| ----------------------- | -------------------------- | ----------------------- | --------------------------------------- |
-| Title | Title - String | Short Description | One way sync from Datadog -> ServiceNow |
-| What Happened | Description - String | Description | One way sync from Datadog -> ServiceNow |
-| State | State - String | State | Bi-directionally synced |
-| DD Incident URL | Incident URL - String | Work Notes | One way sync from Datadog -> ServiceNow |
-| Severity | Incident Urgency (int) | Urgency | Bi-directionally synced |
-| Severity | Incident Impact (int) | Impact | Bi-directionally synced |
-
-| **Datadog Monitor State** | **ServiceNow Incident State** |
-| ---------------------------------------------- | ----------------------------- |
-| Alert | In Progress |
-| Warn | In Progress |
-| OK | Resolved |
-| Completed _(optional, configured in settings)_ | Resolved |
-| **Datadog Incident Severity*** | **ServiceNow Urgency** | **ServiceNow Impact** | **ServiceNow Priority** |
-|--------------------------------|------------------------|-----------------------|-------------------------|
-| SEV-1 | 1 | 1 | 1 - Critical |
-| SEV-2 | 1 | 2 | 2 - High |
-| SEV-2 | 2 | 1 | 2 - High |
-| SEV-3 | 1 | 3 | 3 - Moderate |
-| SEV-3 | 2 | 2 | 3 - Moderate |
-| SEV-3 | 3 | 1 | 3 - Moderate |
-| SEV-4 | 2 | 3 | 4 - Low |
-| SEV-4 | 3 | 2 | 4 - Low |
-| SEV-5 (Minor) | 3 | 3 | 5 - Planning |
-| Unknown | 3 | 3 | 5 - Planning |
-
-\***Note**: If `Start at SEV-0` is enabled in Incident Management settings, the values in `ServiceNow Urgency`, `ServiceNow Impact`, and `ServiceNow Priority` will all stay the same, but the `Datadog Incident Severity` shifts down by 1. For example, in the first row of this table, the Datadog Incident Severity would be 0, but the rest of the values in the rest of the row would stay the same.
-
-{{% collapse-content title="Legacy Incident Priority field mapping" level="h4" expanded=false id="legacy-incident-priority-field-mapping" %}}
-**Note:** `Impact` and `Urgency` in monitor descriptions work only for [legacy monitor configurations](#configure-legacy-monitor-notifications). For [templated monitors](#monitor-notifications), configure [instance priority mapping](#configure-instance-priority-mapping).
-
-The `priority` field in ServiceNow incidents is _read only_ and can only be updated using [priority lookup rules][8].
+**Note**: `Impact` and `Urgency` in monitor descriptions work only for legacy monitor configurations. For templated monitors, configure instance priority mapping. The `priority` field in ServiceNow incidents is read-only, and can only be updated using [priority lookup rules][8].
{{% /collapse-content %}}
-#### Sync data bidirectionally between ServiceNow and Case/Incident Management
-
-In ServiceNow, you can sync state, impact, and urgency bidirectionally with both Case Management and Incident Management.
-
-1. In ServiceNow, click the globe icon in the top-right corner, then make sure the **Application Scope** is set to **ITOM/ITSM Integration for Datadog**.
-1. In the top-left navigation menu, click **All**.
-1. Type **ITOM/ITSM Integration for Datadog** in the filter.
-1. Click the **Configuration** link from the filtered results, then enter the required settings:
- 1. Select your **Datadog Data Center**.
- 1. Paste in your **Datadog API Key**.
- 1. Paste in your **Service Account Application Key** you created.
- 1. Check the **Enabled** box.
-1. Click **Save**.
-1. (Optional) If you have ITOM/ITSM integration version 2.7.0 or newer, you can use information from correlated alerts to populate values in ServiceNow.
The transform maps for Datadog Cases ITOM and ITSM tables contain an example transform script that runs onBefore. By default, the script is commented out, but you can enable it by uncommenting it and modifying it to fit your use case.
-
-## Customize data with transform maps {#transform-maps}
-
-The ServiceNow integration writes from Datadog to interim tables, which transform to records in ServiceNow. For any customizations (for example, custom field mappings, etc.), you can extend the transform maps to specify what fields you want to map to from Datadog to ServiceNow.
-
{{% collapse-content title="Templated monitor table fields and transform maps" level="h4" expanded=false id="templated-monitor-table-fields-transform-maps" %}}
`action`
: **Type**: String
@@ -304,24 +223,148 @@ sys_id from the templated handle passed in for user.
{{% /collapse-content %}}
+### Configure Datadog Case Management {#case-management}
+
+{{% site-region region="gov" %}}
+
+Case Management integration is not supported in the {{< region-param key=dd_datacenter code="true" >}} site.
+
+{{% /site-region %}}
+
+You can choose to send cases from Datadog to either the Datadog Cases ITOM or ITSM table in ServiceNow. ServiceNow stores the records and transforms them using the installed update set to records in the Event or Incident table. Datadog doesn't support custom payloads for these tables, or updates to the Events table.
+
+The user configuring the settings in ServiceNow must have both the x_datad_datadog.user
and admin
roles.
+
+1. In Datadog, go to the [ServiceNow integration settings][4] page.
+1. Go to the **Configure** tab, then the **ITOM/ITSM** tab, then the **Case Management** tab.
+1. Under **Sync ServiceNow with Case Management**, open the settings for your ServiceNow instance.
+1. Beside **Case Table**, choose to send cases to either **Datadog Cases ITOM** or **Datadog Cases ITSM**.
+1. Navigate to the [Case Management > Settings][5] page, and expand your project. Then, [set up the ServiceNow integration][6] for that project.
+
+### Configure Datadog Incident Management {#incident-management}
+
+After installing the integration, in Datadog, go to the [Integration Settings][9] page. Click the **ServiceNow** tile to configure ServiceNow incident creation.
+
+#### Sync data bidirectionally between ServiceNow and Case/Incident Management
+
+In ServiceNow, you can sync state, impact, and urgency bidirectionally with both Case Management and Incident Management.
+
+1. In Datadog, follow the instructions to [create a service account application key][7].
**Note**: Datadog recommends creating this key instead of using a personal one, which risks breaking the ServiceNow sync if the user's account is deactivated or if their permissions change.
+1. In ServiceNow, click the globe icon in the top-right corner, then make sure the **Application Scope** is set to **ITOM/ITSM Integration for Datadog**.
+1. In the top-left navigation menu, click **All**.
+1. Type **ITOM/ITSM Integration for Datadog** in the filter.
+1. Click the **Configuration** link from the filtered results, then enter the required settings:
+ 1. Select your **Datadog Data Center**.
+ 1. Paste in your **Datadog API Key**.
+ 1. Paste in your **Service Account Application Key** you created.
+ 1. Check the **Enabled** box.
+1. Click **Save**.
+1. (Optional) If you have ITOM/ITSM integration version 2.7.0 or newer, you can use information from correlated alerts to populate values in ServiceNow.
The transform maps for Datadog Cases ITOM and ITSM tables contain an example transform script that runs onBefore. By default, the script is commented out, but you can enable it by uncommenting it and modifying it to fit your use case.
+
+{{% collapse-content title="Incident Management field mappings" level="h4" expanded=false id="incident-management-field-mappings" %}}
+This section describes the fields that are synced between Incident Management and ServiceNow:
+
+| **Incident Management** | **ServiceNow Cases Table** | **ServiceNow Incident** | **Sync Status** |
+| ----------------------- | -------------------------- | ----------------------- | --------------------------------------- |
+| Title | Title - String | Short Description | One way sync from Datadog -> ServiceNow |
+| What Happened | Description - String | Description | One way sync from Datadog -> ServiceNow |
+| State | State - String | State | Bi-directionally synced |
+| DD Incident URL | Incident URL - String | Work Notes | One way sync from Datadog -> ServiceNow |
+| Severity | Incident Urgency (int) | Urgency | Bi-directionally synced |
+| Severity | Incident Impact (int) | Impact | Bi-directionally synced |
+
+| **Datadog Monitor State** | **ServiceNow Incident State** |
+| ---------------------------------------------- | ----------------------------- |
+| Alert | In Progress |
+| Warn | In Progress |
+| OK | Resolved |
+| Completed _(optional, configured in settings)_ | Resolved |
+
+| **Datadog Incident Severity*** | **ServiceNow Urgency** | **ServiceNow Impact** | **ServiceNow Priority** |
+|--------------------------------|------------------------|-----------------------|-------------------------|
+| SEV-1 | 1 | 1 | 1 - Critical |
+| SEV-2 | 1 | 2 | 2 - High |
+| SEV-2 | 2 | 1 | 2 - High |
+| SEV-3 | 1 | 3 | 3 - Moderate |
+| SEV-3 | 2 | 2 | 3 - Moderate |
+| SEV-3 | 3 | 1 | 3 - Moderate |
+| SEV-4 | 2 | 3 | 4 - Low |
+| SEV-4 | 3 | 2 | 4 - Low |
+| SEV-5 (Minor) | 3 | 3 | 5 - Planning |
+| Unknown | 3 | 3 | 5 - Planning |
+
+\***Note**: If `Start at SEV-0` is enabled in Incident Management settings, the values in `ServiceNow Urgency`, `ServiceNow Impact`, and `ServiceNow Priority` will all stay the same, but the `Datadog Incident Severity` shifts down by 1. For example, in the first row of this table, the Datadog Incident Severity would be 0, but the rest of the values in the rest of the row would stay the same.
+{{% /collapse-content %}}
+
+## Customize data with transform maps {#transform-maps}
+
+The ServiceNow integration writes from Datadog to interim tables, which transform to records in ServiceNow. For any customizations (for example, custom field mappings, etc.), you can extend the transform maps to specify what fields you want to map to from Datadog to ServiceNow.
+
+## Additional configuration options
+
+{{% collapse-content title="Datadog import host auto-flush rule" level="h4" expanded=false id="import-host-auto-flush" %}}
+To prevent the import set table `x_datad_datadog_import_host` from accumulating too many rows, an auto-flush rule has been added to the Table Cleaner tool to keep only the last 24 hours of data. This configuration setting can be changed as needed by navigating to `sys_auto_flush_list.do` in the filter navigator and going into the rule for the `x_datad_datadog_import_host` table. The `Age in seconds` field can be updated accordingly.
+{{% /collapse-content %}}
+
+{{% collapse-content title="Create custom field mappings in ServiceNow" level="h4" expanded=false id="custom-field-mappings" %}}
+To create a custom field mapping in ServiceNow:
+
+1. Click one of the tables (for example, **Datadog Monitors ITSM Tables**), and scroll to the bottom of the record to see the link for the associated transform map.
+1. Click on the name of the transform map to view the record:
+ {{< img src="integrations/guide/servicenow/servicenow-click-transform-map.png" alt="Your image description" style="width:100%;" >}}
+ At the top are two important fields on the Transform record: Source table
and Target table
:
+ {{< img src="integrations/guide/servicenow/servicenow-source-target-fields.png" alt="Your image description" style="width:100%;" >}}
+1. Click **New**:
+ {{< img src="integrations/guide/servicenow/servicenow-click-new.png" alt="Your image description" style="width:100%;" >}}
+1. Select the source and target fields for one to one mappings:
+ {{< img src="integrations/guide/servicenow/servicenow-select-source-target.png" alt="Your image description" style="width:100%;" >}}
+ Or check the Use source script box and define transformations:
+ {{< img src="integrations/guide/servicenow/servicenow-script-example.png" alt="Your image description" style="width:100%;" >}}
+
+**Note:** For mapping any custom fields in the integration tile, you can use the following mapping script for either the Datadog Monitors ITOM and Datadog Monitors ITSM Transform maps. In this example, the field `my_field` was defined as a custom field in the integration tile:
+
+```
+answer = (function transformEntry(source)
+{
+ var additional_info = JSON.parse(source.additional_info);
+ return additional_info.my_field;
+})(source);
+```
+
+**Notes**:
+- The source is the import set table you selected (in this example, Datadog Monitors ITSM Tables) and the target is your actual incident table (or event table) where events are stored.
+- The field mappings are at the bottom of the record. Some basic mappings are included. This is where you select the fields to include, define the format, and select the target fields in your ServiceNow instance.
+{{% /collapse-content %}}
+
## Troubleshooting
-- Error message in your Datadog integration tile or an `Error while trying to post to your ServiceNow instance` notification:
- - Verify only the subdomain was used when entering your instance name.
- - Verify the user you created has the required permissions.
- - Verify the username and password are correct.
-- The integration is configured, an alert triggered, and no ticket is created:
- - Confirm that the interim table is populated. If so, the issue is with mappings and transformations. You can debug your mappings and scripts further by navigating to **Transform Errors** in ServiceNow.
- - Confirm that you're working with the interim table you specified in the tile.
+{{% collapse-content title="Error message in your Datadog integration" level="h4" expanded=false id="troubleshooting-error-messages" %}}
+If you get an error message in your Datadog integration tile, or an `Error while trying to post to your ServiceNow instance` notification:
+- Verify only the subdomain was used when entering your instance name.
+- Verify the user you created has the required permissions.
+- Verify the username and password are correct.
+{{% /collapse-content %}}
+
+{{% collapse-content title="No ticket created" level="h4" expanded=false id="troubleshooting-no-ticket" %}}
+If the integration is configured and an alert triggered, but no ticket is created:
+- Confirm that the interim table is populated. If so, the issue is with mappings and transformations. You can debug your mappings and scripts further by navigating to **Transform Errors** in ServiceNow.
+- Confirm that you're working with the interim table you specified in the tile.
- The ServiceNow user needs `rest_service` and `x_datad_datadog.user` roles so that it can access the import tables. If you're using the legacy way of sending notifications directly to either the Incident table or Event table, you need the permissions `itil` and `evt_mgmt_integration`.
+The ServiceNow user needs `rest_service` and `x_datad_datadog.user` roles so that it can access the import tables. If you're using the legacy way of sending notifications directly to either the Incident table or Event table, you need the permissions `itil` and `evt_mgmt_integration`.
+{{% /collapse-content %}}
+{{% collapse-content title="No updates from ServiceNow to Datadog" level="h4" expanded=false id="troubleshooting-no-updates" %}}
If you're seeing updates from Datadog Case Management to ServiceNow, but not seeing updates from ServiceNow to Datadog, this is expected behavior for ServiceNow ITOM. Bidirectional syncing with Case Management is only supported for ServiceNow ITSM.
+{{% /collapse-content %}}
+
+{{% collapse-content title="Monitors duplicating incidents" level="h4" expanded=false id="troubleshooting-monitors-duplicating-incidents" %}}
+If a monitor is reopening the same incident instead of creating a new one for each warning, ensure it is not set as a simple alert. Convert the monitor to a [multi-alert][11] by grouping it using a tag in the metric. This way, each alert will trigger a separate incident.
+{{% /collapse-content %}}
Need additional help? Contact [Datadog support][10].
[1]: https://store.servicenow.com/store/app/e0e963a21b246a50a85b16db234bcb67
-[2]: https://docs.datadoghq.com/resources/xml/Datadog-Snow_Update_Set_v2.7.2.xml
+[2]: /resources/xml/Datadog-Snow_Update_Set_v2.7.2.xml
[3]: /integrations/servicenow/#configure-the-servicenow-tile-in-datadog
[4]: https://app.datadoghq.com/integrations?integrationId=servicenow
[5]: https://app.datadoghq.com/cases/settings
@@ -329,4 +372,5 @@ Need additional help? Contact [Datadog support][10].
[7]: /account_management/org_settings/service_accounts/#create-or-revoke-application-keys
[8]: https://docs.servicenow.com/en-US/bundle/sandiego-it-service-management/page/product/incident-management/task/def-prio-lookup-rules.html
[9]: https://app.datadoghq.com/incidents/settings?section=integrations
-[10]: https://docs.datadoghq.com/help/
\ No newline at end of file
+[10]: /help/
+[11]: /monitors/configuration/?tab=thresholdalert#multi-alert
\ No newline at end of file
diff --git a/static/images/integrations/guide/servicenow/servicenow-click-new.png b/static/images/integrations/guide/servicenow/servicenow-click-new.png
new file mode 100755
index 0000000000000000000000000000000000000000..98bef818e1d498b351bb9dbf84904e317c8f7d68
GIT binary patch
literal 34361
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