Skip to main content

ServiceNow ITSM

Outline

Introduction

ServiceNow ITSM (IT Service Management) enables organizations to manage incidents, service requests, and remediation tasks through structured workflows. ServiceNow ticketing supports both incident and request management modules, enabling teams to assign, track, and resolve tickets efficiently while maintaining process consistency and accountability. The SAFE integration seamlessly connects with ServiceNow ITSM.

This integration supports both incident management and request management modules. ServiceNow ticketing allows teams to assign, track, and resolve tickets efficiently while maintaining process consistency and accountability.

Summary

This integration enables SAFE to create incident and request tickets in ServiceNow with all mandatory and custom fields populated.

  • Integration Type: Outbound API integration to create ServiceNow incidents and RITM tickets.

  • Types of Data Fetched: Supports both mandatory and optional fields, as well as custom fields.

Prerequisites

Create ServiceNow API Credentials & Permissions

Before configuring the SAFE connector, you must create ServiceNow ITSM API credentials with the appropriate permissions. These credentials will be used during the connector setup process to enable secure communication with ServiceNow.

ServiceNow ITSM supports the following authentication methods:

  • Basic authentication using a username and a password

  • OAuth 2.0 using an OAuth provider and profile

  • API Key

Required Permissions

The following permissions are required to obtain the form dynamically from ServiceNow:

  • Read access to the following tables and the columns inside the tables.

  • Create, read, and write access to the incident table.

  • Read access to reference fields used in Incident or Request forms.

  • Permissions for Reference Drop-downs: Access to any references that the incident form uses as well.

ITSM Module

Required User Roles

Required Table Access

Incident Management

  • personalize_dictionary

  • personalize_choices incident_manager

  • sys_dictionary (table access is required to show a list of all the fields that are part of an incident table and its parent table)

  • sys_choice (table access is required to know the choices of the field whose values are derived from that table.)

  • sys_user

  • sys_user_group

  • sys_user_has_role

  • Any referenced table that we will use in the Incident Form

Request Management

  • catalog

  • itil

  • catalog_manager

  • catalog_editor

  • sn_request_write

  • sys_user

  • Any referenced table that we will use in the Request Form

Create a Role

You can create a role or use an existing role with the appropriate permissions.

To create a role:

  1. In ServiceNow, go to All > User Administration > Roles.

  2. Click New. Enter a role name like "safe_integration_role".

  3. Click Submit, then open the role.

  4. Click Contains Roles.

  5. Click Edit and add the necessary roles.

  6. Click Save.

Create a Service Account

After you have a role with the required permissions and access, you need to create a service account.

To create a service account:

  1. In ServiceNow, go to All > User Administration > Users.

  2. Click New. Enter a User ID (for example, safe_integration_user).

  3. Enter any other required information.

  4. Check Web service access only.

  5. Check Internal Integration User (bypasses password expiration for technical accounts).

  6. Submit, then open your new service account

  7. Click Set password and configure a password for the account.

  8. Save the password and close the dialog box.

  9. On the Roles tab, click Edit.

  10. Add the role you created

  11. Click Save

  12. Click Update

Create an OAuth application (OAuth authentication only)

Note

This step is required only if you plan to use OAuth as the authentication type for the SAFE connector.

To create an OAuth application:

  1. In ServiceNow, go to All > System OAuth > Application registry.

  2. Click New.

  3. Select Create an OAuth API endpoint for external clients.

  4. Enter a unique name like "safe-integration".

  5. Leave the Client Secret field blank to have ServiceNow generate the value.

  6. Add a user account in AuthScope

  7. Keep the Token Lifespan values in the default state.

  8. Click Submit.

  9. Open the OAuth app and copy the Client ID and Client Secret values. You will enter these later when configuring the connector in SAFE.

Form Layout Setup Notice

If you do not see fields such as Default Grant Type, auth_type, or OAuth Application User:

  1. On the same OAuth application form, select Configure.

  2. Choose Form Layout.

  3. Add the following fields to the layout:

    1. Default Grant Type

    2. OAuth Application User

    3. Auth Scopes

[Optional] Enable client_credentials grant type for OAuth

Inbound OAuth Note

ServiceNow disables the client_credentials grant by default. You must enable it using a system property if you plan to use this grant type with SAFE.

  1. Open the following URL directly in your ServiceNow instance:

  2. https://<instance>.service-now.com/sys_properties.do

  3. Create a new property with the following details and submit:

    1. Name: glide.oauth.inbound.client.credential.grant_type.enabled

    2. Description (optional): Enables the OAuth 2.0 Client Credentials grant for inbound OAuth

    3. Type: true|false

    4. Value: true

Generate Connection Details

Use the appropriate option based on your chosen authentication method.

Username and Password

Use the service account created in the prerequisites:

  • Username: Service account username

  • Password: Service account password. You will enter these directly in the Username and Password fields on the SAFE configuration page when you select the Username and Password authentication option.

OAuth 2.0

The connector supports two OAuth grant types:

  1. Client Credentials

  2. Password (Resource Owner Password Credentials)

Client credentials

As stated in the prerequisites:

  1. Create an OAuth application in ServiceNow.

  2. Set the Default Grant Type to Client Credentials.

  3. Ensure the system property glide.oauth.inbound.client.credential.grant_type.enabled is set to true.

  4. From the OAuth application, you will need:

    1. Client ID: From the ServiceNow OAuth application

    2. Client Secret: From the ServiceNow OAuth application

Password

As stated in the prerequisites:

  1. Create an OAuth application, but configure the grant type as: Resource Owner Password Credentials

  2. From ServiceNow, you will need:

    1. Username: Service account username

    2. Password: Service account password

    3. Client ID: From the ServiceNow OAuth application

    4. Client Secret: From the ServiceNow OAuth application

Configure ServiceNow ITSM Integration in SAFE

To configure the ServiceNow ITSM integration in SAFE, follow these steps:

  1. From the left navigation panel, click Integrations.

  2. Click the + button and search for ServiceNow ITSM.

  3. Click the ServiceNow ITSM card.

  4. Select the applicable ServiceNow Ticket Type as Incident or Request Item.

  5. [Optional] Enter the Customer Incident Table. If you want your incidents to be created on a custom table, enter the name of the table in the Custom Incidents Table. If left blank, the default table name incident will be assumed.

  6. In the configuration page, enter the following details:

    1. Integration Name: Enter Integration Name, for example: ServiceNow-ITSM

    2. ServiceNow URL: Enter URL in this format

    3. https://<instance-name>.service-now.com/api/now/v2/table/

      Example: https://xyz.service-now.com/api/now/v2/table/

  7. Select the appropriate Authentication option and enter the details:

    1. Username and password

    2. OAuth 2.0

    3. API Key

  8. Click the Test Connection button.

  9. Once verified, click Save.

  10. Click the SyncNow button to trigger the on-demand sync.

Create Tickets

  1. Navigate to the findings list, apply filters, and select up to 100 findings.

  2. Click on the three-dot (⋯) menu and select Create Ticket.

  1. Select the ServiceNow integration from the dropdown (use separate instances for ServiceNow RITM and ITSM if both are used).

  2. Choose the ticket type: Consolidated Ticket (one ticket for all selected findings) or Individual Ticket Per Finding (one ticket per finding).

  3. Click Next.

  1. Fill in the required fields to create the ticket (Incident/Request Item) in ServiceNow.

  2. Click Create Ticket; tickets will be created asynchronously in ServiceNow.

  1. Go to the Projects tab from the left navigation to view the created ticket(s) (it may take a few seconds to appear).

  2. Once created, the External Ticket ID will be visible in SAFE.

FAQs

What if I change the ticket type from Incident to Request Item or vice versa in the same integration instance?

SAFE recommends creating a new instance if you want to have both Incident and Request Items.

What are the allowed data types of fields coming dynamically from ServiceNow?

  • SAFE natively allows the following types: text, number, dropdown, and dropdown-multi-select.
    These types are dynamically mapped to the friendly-type in ServiceNow fields

  • Allowed Friendly Types for Request Items:

    ["multiple_choice", "choice", "reference", "select_box","multi_line_text", "check_box", "single_line_text", "label", "yes_no"]

  • Allowed Friendly Types for Incidents:

    {"string", "text", "integer", "choice", "boolean", "journal_input", "reference"}

  • If any field does not come under one of these types, it is skipped in the UI.

One of my dropdown fields has a reference type, but the options are not coming up. Why?

If a field has a reference type in ServiceNow, for eg users or groups, you need to make sure that the API token has the necessary roles required to access the options of that table. Once the role is provided, the options will start showing up in the UI.

I created a ticket, but it is not showing up in the Tickets Page.

Tickets and the corresponding ServiceNow tickets take a few seconds to show up in the UI as they are bulk-created.

I changed the status of my ticket in ServiceNow, but the updated status is not being reflected in the SAFE Projects page.

Status sync is a part of the connector. The ServiceNow connector has a default autoSyncFrequency of 1 day, which means it runs once daily to sync the statuses of all tickets present in SAFE. You can manually click on Sync Now to sync the statuses of all the tickets in SAFE on demand.

To check sync status and errors for this integration, see Integration History.

Did this article help?

Let us know by leaving a star rating at the top of this article.