ServiceNow

Overview

ServiceNow is a CMDB (configuration management database) to define, manage, automate and structure IT services. Integrate your ServiceNow instance with Cortex to import your services and teams. Use this integration to drive insights into values such as:

  • Service discovery

  • Ownership

  • Team membership

After the integration is configured, your teams and ownership information from ServiceNow will be visible in Cortex.

How to configure ServiceNow with Cortex

Prerequisites

Your ServiceNow user must have the sn_cmdb_user permission enabled.

Step 1: Configure the integration in Cortex

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

    1. In Cortex, click your avatar in the lower left corner, then click Settings.

    2. Under "Integrations", click ServiceNow.

  2. Click Add configuration.

  3. Configure the ServiceNow integration form:

    • Instance name: Enter your instance identifier.

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

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

    • 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 for instructions on importing services, importing teams, and importing domains.

Note that the domain relationships cannot be manually imported; these are automatically imported via the automatic discovery setting described below.

Enable automated discovery of domains for ServiceNow

  1. In Cortex, go to the Entities > Domains settings page:

    1. Click your avatar in the lower left corner, then click Settings.

    2. Under "Workspace," click Entities > Domains.

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

    • To force a sync of newly-discovered domains, go to Catalogs > Domains, then click Sync domains in the upper left corner.

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

Editing the entity descriptor

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

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

Configuring ownership of your ServiceNow entities

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.

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

Scorecards and CQL

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)

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

  • Chat: Available in the 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?