ServiceNow
Visualize ServiceNow resources and monitor them through queries and alerts.
- Installation
- Authorization
- Data Model
- Types
- Release Notes
Installation
Before configuring this integration in JupiterOne, you need to create a dedicated service account with appropriate permissions in ServiceNow:
Required in ServiceNow:
- A dedicated user account (e.g.,
JupiterOne) - A custom role with read-only access (e.g.,
jupiterone_reader) - Access Control Lists (ACLs) configured for the required tables
- Your ServiceNow instance hostname (e.g.,
yourcompany.service-now.com)
Authentication: This integration uses HTTP Basic authentication with username and password.
Required Table Access: The service account must have read access to these tables:
sys_user- for user datasys_user_group- for group datasys_user_grmember- for group membership dataincident- for incident datasys_db_object- for database object information- CMDB tables (if ingesting CMDB data) - requires the
cmdb_readerrole
Optional Permissions: If you want JupiterOne to create ServiceNow incidents from alert rules, create an additional jupiterone_incident_creator role with write access to the incident table.
Detailed setup instructions are provided in the Configuration in ServiceNow section below.
In order to allow JupiterOne to fetch data from your ServiceNow account, we recommend creating a new ServiceNow role with read-only access to your account and assigning that read-only role to a dedicated ServiceNow user.
Configuration in ServiceNow
-
Follow the ServiceNow documentation to create a new ServiceNow role called
jupiterone_reader. -
Create a new access control rule (ACL) to allow access to the
jupiterone_readerrole withType: Record,Operation: Read, andRole: jupiterone_reader. This should be enabled for the following tables (Namefield):sys_usersys_user_groupsys_user_grmemberincidentsys_db_object
-
Create a new ServiceNow User called
JupiterOne. Make a note of the new username/password; you'll need it when configuring your integration in JupiterOne. -
Open the
JupiterOneuser and assign thejupiterone_readerrole to your newly created user. Note: if ingesting any part of the cmdb, also add thecmdb_readerrole. See this link for more information. -
(OPTIONAL) For JupiterOne users who wish to create ServiceNow incidents based on JupiterOne alert rules, we suggest creating a
jupiterone_incident_creatorrole. Repeat steps 1, 2, and 4 above with the following parameters:1. ServiceNow Role:
name: jupiterone_incident_creator2. Access Control Rule (ACL) :
Type: Record,Operation: Create,Name(table): incident,Name(fields): *,Role: jupiterone_incident_creator4. Role Assignment: Assign
jupiterone_incident_creatorrole toJupiterOneuser
Configuration in JupiterOne
To install the ServiceNow integration in JupiterOne, navigate to the Integrations tab in JupiterOne and select ServiceNow. Click New Instance to begin configuring your integration.
Creating an instance requires the following:
-
The Account Name used to identify the ServiceNow account in JupiterOne. Ingested entities will have this value stored in
tag.AccountNamewhen theAccountNametoggle is enabled. -
Description to assist in identifying the integration instance, if desired.
-
Polling Interval that you feel is sufficient for your monitoring needs. You may leave this as
DISABLEDand manually execute the integration. -
Your ServiceNow Hostname (e.g.,
j1.service-now.com), Username, and Password. -
Your ServiceNow CMDB Classes to ingest, a comma separated value of classes.
Click Create once all values are provided to finalize the integration.
Advanced Options
Additional configuration can be set to customize the ingested data:
- User Configuration: Custom Fields allows for custom fields to be added to the user entity.
- User Configuration: Excluded User Classes allows for some users to be excluded based on their sysClassName.
- Host Configuration: Host Classes allows for specific sysClassNames to be mapped to the JupiterOne Device data model.
Excluded User Classes configuration option:
This J1QL Query can be executed to determine which system class names (sysClassName) of users exist within ServiceNow, after a successful job run without any User Class Exclusions:
FIND service_now_user RETURN count(service_now_user), service_now_user.sysClassName
Next steps
Now that your integration instance has been configured, it will begin running on the polling interval you provided, populating data within JupiterOne. Continue on to our Instance management guide to learn more about working with and editing integration instances.
Entities
The following entities are created:
| Resources | Entity _type | Entity _class |
|---|---|---|
| Account | service_now_account | Account |
| CMDB Host Object | service_now_cmdb_host | Host |
| CMDB Object | service_now_cmdb_object | Configuration |
| Incident | service_now_incident | Incident |
| User | service_now_user | User |
| User Group | service_now_group | UserGroup |
| Vulnerable Item | service_now_vulnerable_item | Finding |
Relationships
The following relationships are created:
Source Entity _type | Relationship _class | Target Entity _type |
|---|---|---|
service_now_account | HAS | service_now_user |
service_now_account | HAS | service_now_group |
service_now_cmdb_object | ASSIGNED | service_now_user |
service_now_cmdb_object | ASSIGNED | service_now_group |
service_now_cmdb_object | CONNECTS | service_now_cmdb_object |
service_now_group | HAS | service_now_group |
service_now_group | HAS | service_now_user |
service_now_group | MANAGES | service_now_cmdb_object |
service_now_incident | ASSIGNED | service_now_user |
service_now_user | MANAGES | service_now_group |
service_now_user | MANAGES | service_now_user |
service_now_user | MANAGES | service_now_cmdb_object |
service_now_user | OWNS | service_now_cmdb_object |
Mapped Relationships
The following mapped relationships are created:
Source Entity _type | Relationship _class | Target Entity _type | Direction |
|---|---|---|---|
service_now_cmdb_object | CONNECTS | service_now_cmdb_object | FORWARD |
service_now_cmdb_object | HAS | service_now_vulnerable_item | FORWARD |
Service Now Cmdb Host
service_now_cmdb_host inherits from Host
| Property | Type | Description | Specifications |
|---|---|---|---|
assetFunction | string | Derived from the property named: "asset_function" | |
assetTag | string | Derived from the property named: "asset_tag" | |
assignedTo | string | Derived from the property named: "assigned_to.value" | |
attributes | string | Derived from the property named: "attributes" | |
businessUnit | string | Derived from the property named: "business_unit.value" | |
comments | string | Derived from the property named: "comments" | |
correlationId | string | Derived from the property named: "correlation_id" | |
department | string | Derived from the property named: "department.value" | |
discoverySource | string | Derived from the property named: "discovery_source" | |
dnsDomain | string | Derived from the property named: "dns_domain" | |
environment | string | Derived from the property named: "environment" | |
hardwareStatus | string | Derived from the property named: "hardware_status" | |
hardwareSubStatus | string | Derived from the property named: "hardware_substatus" | |
installDate | number | Derived from the property named: "install_date" | |
installStatus | string | Derived from the property named: "install_status". This property shows the recovered label. | |
location | string | Derived from the property named: "location.value" | |
managedBy | string | Derived from the property named: "managed_by.value" | |
managedByGroup | string | Derived from the property named: "managed_by_group.value" | |
mode | string | Derived from the property named: "mode" | |
numericInstallStatus | string | Derived from the property named: "install_status". This property shows the raw value. | |
numericOperationalStatus | string | Derived from the property named: "operational_status". This property shows the raw value. | |
operationalStatus | string | Derived from the property named: "operational_status". This property shows the recovered label. | |
orderDate | number | Derived from the property named: "order_date" | |
ownedBy | string | Derived from the property named: "owned_by.value" | |
subcategory | string | Derived from the property named: "subcategory" | |
substatus | string | Derived from the property named: "substatus" | |
sysClassNames * | array of strings | ||
warrantyExpiration | number | Derived from the property named: "warranty_expiration" |
Service Now User
service_now_user inherits from User
| Property | Type | Description | Specifications |
|---|---|---|---|
employeeNumber | string | ||
sysClassName | string | ||
title | string |
Release Notes
- 2026-03-31 — Added additional vulnerability states to ServiceNow vulnerable item ingestion, supporting Awaiting Implementation, Resolved, and Deferred states.
- 2026-03-24 — Added configurable default filtering for ServiceNow vulnerability ingestion, defaulting to open and under-investigation states and critical, high, and medium severities.
- 2026-03-23 — Added Vulnerable Items ingestion step, bringing in ServiceNow vulnerable item entities from the vulnerable items table with host and vulnerability relationships.
- 2026-02-24 — Added configuration field to specify custom fields for special handling during CMDB object ingestion.
- 2026-02-18 — Added user to group manager relationships for ServiceNow, linking the manager of each user group to the groups they manage.
- 2025-11-14 — Added ServiceNow user manages user relationship for assignment group managers.
- 2025-10-22 — Added strict filtering on sys class names configuration, improving CMDB object ingestion accuracy.
- 2025-10-02 — Added ServiceNow user manages user relationship derived from manager field.
- 2025-10-01 — Added integration filters for ServiceNow CMDB object entities, enabling subset ingestion by sys class name.
- 2025-08-27 — Added host custom fields configuration option for promoting custom CMDB host fields (mirrors existing user custom fields behavior).
- 2025-06-09 — Added ingestion of CMDB configuration item relationships as graph relationships between CMDB objects.