ServiceNow

ServiceNow is a CMDB (configuration management database) to define, manage, automate and structure IT services. Cortex integrates with ServiceNow to provide engineers with better developer experience while adhering to governance standards. The integration syncs data between systems so both stay current.

Integrating your ServiceNow instance with Cortex allows you to:

How to configure ServiceNow with Cortex

Prerequisites

Your ServiceNow user must have the sn_cmdb_user permission enabled.

You must have the Configure Integrations permission in Cortex.

Step 1: Configure the integration in Cortex

  1. In Cortex, navigate to the ServiceNow settings page:

    • Click Integrations from the main nav. Search for and select ServiceNow.

  2. Click Add configuration.

  3. Configure the ServiceNow integration form:

    • Instance name: Enter your instance identifier.

      • This can be found in your instance URL, e.g., <instance-identifier>.service-now.com.

    • Username and Password: Enter your ServiceNow username and password.

  4. Click Save.

Stay on this page for the next steps.

Step 2: Configure table mappings

  1. On the ServiceNow integrations settings page, click Add table mapping on the right.

  2. Configure the "Add table mapping" form:

    • Choose a mapping type: Select whether your data will map to a Service, Team, Team members, Team & Team member relationships, Domain, or Domain relationships. Select a mapping type

    • Table name: Enter a descriptive name.

    • Table filter query: Optionally, enter a table filter query.

    • ID column name: Enter the column name that contains the ID of the record.

    • Name column name: Enter the column name that contains the name of the record.

    • Description column name: Enter the column name that contains the description of the record. Configure the table mappings form

    • Note: To import teams, you must configure table mappings for the team, its team members, and their relationships.

  3. Click Save table mapping.

How to connect Cortex entities to ServiceNow

To import entities from ServiceNow, follow the steps described below.

Import entities from ServiceNow

See the documentation on:

Enable automated import of domains for ServiceNow

You must have the Configure Settings permission.

Enabling automated domain import ensures that your domain structure in Cortex stays up-to-date with your ServiceNow configuration.

  1. Toggle the setting on to enable the automated import of any domains and domain relationships from ServiceNow. Toggle the setting on to automatically import ServiceNow domains and domain relationships

The automatic sync runs daily at 2 p.m. UTC.

Manually sync domains

You must have the Enable Relationship graph permission.

To force a sync of newly-discovered domains:

  1. Go to Tools > Relationship graphs and select Domains.

  2. Click the 3 dots icon in the upper right, then click Sync.

Editing the entity descriptor

When an entity is connected to ServiceNow, the entity YAML will look like the following:

x-cortex-servicenow:
  services:
  - tableName: cortex-services
    id: 1

Configuring your ServiceNow teams as owners

To import teams, configure the table mappings to pull teams, team members, and their relationships from ServiceNow. After doing so, follow the steps to import them.

When an entity is owned by a ServiceNow team, the YAML will look like the following:

x-cortex-owners:
  - type: group
    name: My ServiceNow Team
    provider: SERVICE_NOW
    description: This is a description for this owner # optional

The value for name should be the name of the team as defined in ServiceNow (case-sensitive).

Learn more about ownership in Defining ownership.

Using the ServiceNow integration

Scorecards and CQL

With the ServiceNow integration, you can create Scorecard rules and write CQL queries based on ownership and team details.

See more examples in the CQL Explorer in Cortex.

All ownership details

A special built-in type that supports a null check or a count check, used to enforce ownership of entities.

Definition: ownership: Ownership | Null

Example

An initial level in a security Scorecard might include a rule to ensure an entity has at least one team as an owner:

ownership.teams().length > 0
All owner details

List of owners, including team members and individual users, for each entity

Definition: ownership.allOwners()

Example

The Scorecard might include a rule to ensure that entity owners all have an email set:

ownership.allOwners().all((member) => member.email != null)
Team details

List of teams for each entity

Definition: ownership.teams(): List<Team>

Example

The Scorecard might include a rule to ensure that an entity owners all have a description and are not archived:

ownership.teams().all(team => team.description != null and team.isArchived == false)

View integration logs

On the integration settings page, click the Logs tab to view logs from the last 7 days. Learn more in Troubleshooting with integration logs.

Workflows

After integrating, you can set up Workflows to trigger actions in ServiceNow. See an example of this in Guides > Create ServiceNow incident.

ServiceNow Incidents plugin

You can install a plugin that makes ServiceNow incidents more visible on your entity details pages:

Learn more about installing the plugin in Cortex Plugin Marketplace. You must have the Edit Plugins permission.

Background sync

Cortex conducts a background sync of ServiceNow domains, domain relationships, and services every day at 2 p.m. UTC.

Still need help?

The following options are available to get assistance from the Cortex Customer Engineering team:

  • Email: [email protected], or open a support ticket in the in app Resource Center

  • Slack: Users with a connected Slack channel will have a workflow added to their account. From here, you can either @CortexTechnicalSupport or add a :ticket: reaction to a question in Slack, and the team will respond directly.

Don’t have a Slack channel? Talk with your Customer Success Manager.

Last updated

Was this helpful?