# Connecting SailPoint and ServiceNow Service Desk

The ServiceNow Service Desk Integration Module helps to perform effective and efficient service management for SailPoint services offered to the organization in the ServiceNow Service Desk managed system and enables customers to create and manage Service Requests or Incidents.

> [!NOTE]
>
> ServiceNow Service Desk SDIM supports Incident and Service Request ticket types.

You can integrate a SailPoint source with ServiceNow Service Desk for access requests and to monitor it.

To create an integration, on the **Service Desk Integrations** page, go to **Admin \> Connections \> Service Desk**, and select **Create**.

> [!NOTE]
>
> **Screenshot**
>
> [![Service Desk Integrations landing page](<https://documentation.sailpoint.com/connectors/service_desk_integrations/servicenow/help/img/landing_page.jpg>)](<https://documentation.sailpoint.com/connectors/service_desk_integrations/servicenow/help/img/landing_page.jpg>)

## General Settings

The following are the steps to set up your ServiceNow Service Desk integration:

> [!NOTE]
>
> **Screenshot**
>
> [![General Settings](<https://documentation.sailpoint.com/connectors/service_desk_integrations/servicenow/help/img/general_settings.png>)](<https://documentation.sailpoint.com/connectors/service_desk_integrations/servicenow/help/img/general_settings.png>)

> [!NOTE]
>
> Ensure that the name and description of each connection are unique. Because you can configure multiple source types to use this connection, you should specify the sources in the description. The tickets for those sources will be processed on the managed system while the status of the tickets is synchronized in SailPoint.

1. Enter a unique **Name** for the integration that you are setting up.
2. Enter a unique **Description** for the integration. The description will help you identify the associated sources and tasks associated with an integration.
3. Select ServiceNow Service Desk for the **Integration Type**.
4. Select **Incident** in the **Ticket Type** dropdown list.
5. Select the Connection Type:

   - [VA-Based Connection Type](<#va-based-connection-type>) - Select the **VA-Based** connection type if you want to use a Virtual Appliance Cluster.
   - [SaaS Connection Type](<#saas-connection-type>) - Select the **SaaS** connection type if you want to create a SaaS application without using a Virtual Appliance Cluster.

   > **Notes**
   >
   > - SaaS Connection types don't support Credential Providers.
   > - Once you create an integration, you cannot edit the connection type.
6. (Optional) If Credential Providers are supported for this integration, you can select **Use a Credential Provider** to use a credential provider configured in your tenant.
7. Enter the name of the **Integration Owner**.

### VA-Based Connection Type

> [!NOTE]
>
> **Screenshot**
>
> [![VA-Based Connection Type](<https://documentation.sailpoint.com/connectors/service_desk_integrations/servicenow/help/img/va_connection_settings.png>)](<https://documentation.sailpoint.com/connectors/service_desk_integrations/servicenow/help/img/va_connection_settings.png>)

1. Select **VA-Based** connection type if you want to use a Virtual Appliance Cluster.
2. Select **Save**.

### SaaS Connection Type

> [!NOTE]
>
> **Screenshot**
>
> [![SaaS Connection Type](<https://documentation.sailpoint.com/connectors/service_desk_integrations/servicenow/help/img/saas_connection_type.png>)](<https://documentation.sailpoint.com/connectors/service_desk_integrations/servicenow/help/img/saas_connection_type.png>)

1. Select **SaaS** connection type if you want to create a SaaS application without using a Virtual Appliance Cluster.

> [!NOTE]
>
> When you select the SaaS connection type, the [Enable Debug Logging](<#administrator-settings>) feature is available. It is only supported for Service Desk SaaS integration.

#### Administrator Settings

> [!NOTE]
>
> **Screenshot**
>
> [![Administrator Settings](<https://documentation.sailpoint.com/connectors/service_desk_integrations/servicenow/help/img/enable_debug_logging.png>)](<https://documentation.sailpoint.com/connectors/service_desk_integrations/servicenow/help/img/enable_debug_logging.png>)

1. Select the **Enable Debug Logging** checkbox to enable the integration to create and send debug log files to SailPoint Support to help troubleshoot issues.
2. If the **Enable Debug Logging** feature is needed, please contact SailPoint.

   > **Note**
   >
   > **Enable Debug Logging** should not be enabled without SailPoint guidance.

### Sources

> [!NOTE]
>
> **Screenshot**
>
> [![Sources](<https://documentation.sailpoint.com/connectors/service_desk_integrations/servicenow/help/img/general_settings_sources.png>)](<https://documentation.sailpoint.com/connectors/service_desk_integrations/servicenow/help/img/general_settings_sources.png>)

In the **Sources** dropdown list, select sources to configure from the available sources. For each source you want to integrate with the ServiceNow Service Desk system, verify that it is configured for provisioning.

> [!TIP]
>
> Edit the **Description** field for these sources to indicate they are used in the ServiceNow Service Desk integration.

## Connectivity and Authentication

1. In the **URL** field, enter the URL of the ServiceNow instance that you want to integrate with. For example, `https://<demo>.service-now.com`.
2. Select **Basic** or **OAuth2** in **Authentication Type**.
3. Complete the authentication steps:

   - [Basic Authentication](<#basic-authentication>)
   - [OAuth2 Authentication](<#oauth2-authentication>)

### Basic Authentication

> [!NOTE]
>
> **Screenshot**
>
> [![Basic Authentication](<https://documentation.sailpoint.com/connectors/service_desk_integrations/servicenow/help/img/basic_authentication.jpg>)](<https://documentation.sailpoint.com/connectors/service_desk_integrations/servicenow/help/img/basic_authentication.jpg>)

For the **Basic** authentication type, enter the **Username** and **Password** in the respective fields.

### OAuth2 Authentication

> [!NOTE]
>
> **Screenshot**
>
> [![OAuth2 Authentication](<https://documentation.sailpoint.com/connectors/service_desk_integrations/servicenow/help/img/oauth2_authentication.jpg>)](<https://documentation.sailpoint.com/connectors/service_desk_integrations/servicenow/help/img/oauth2_authentication.jpg>)

For OAuth2 authentication, there are two grant types:

- Password
- Refresh Token

> [!NOTE]
>
> For the most current information about using OAuth2 authentication, refer to [OAuth API Request Parameters](<https://docs.servicenow.com/bundle/quebec-platform-administration/page/administer/security/reference/r_OAuthAPIRequestParameters.html>) in the ServiceNow documentation.

In the **Grant Type** drop-down list, select either **Password** or **Refresh Token** grant type.

#### Password Grant Type

> [!NOTE]
>
> **Screenshot**
>
> [![Password Grant Type](<https://documentation.sailpoint.com/connectors/service_desk_integrations/servicenow/help/img/password_grant_type.jpg>)](<https://documentation.sailpoint.com/connectors/service_desk_integrations/servicenow/help/img/password_grant_type.jpg>)

1. In the **Token URL** field, enter the location of the token endpoint that the instance uses to retrieve the token. For example, `https://<instancename>.service-now.com/oauth_token.do`.
2. In the **Username**, **Password**, **Client ID**, and **Client Secret** fields, enter the respective values for OAuth2 authentication.

#### Refresh Token Grant Type

> [!NOTE]
>
> **Screenshot**
>
> [![Refresh Token Grant Type](<https://documentation.sailpoint.com/connectors/service_desk_integrations/servicenow/help/img/refresh_token_grant_type.jpg>)](<https://documentation.sailpoint.com/connectors/service_desk_integrations/servicenow/help/img/refresh_token_grant_type.jpg>)

1. In the **Token URL** field, enter the location of the token endpoint that the instance uses to retrieve the token.
2. In the **Refresh Token** field, enter the refresh token for OAuth2 authentication. Refer to the ServiceNow documentation for information about [creating an endpoint for a client to access a ServiceNow instance](<https://docs.servicenow.com/bundle/quebec-platform-administration/page/administer/security/task/t_CreateEndpointforExternalClients.html>).

   Use the following curl command to create a refresh token:

   ```text
   curl -d "grant_type=password&client_id=<your_client_id>&client_secret=<your_client_password>&username=admin&password=admin" POST https://instancename.service-now.com/oauth_token.do
   ```
3. In the **Client ID** and **Client Secret** fields, enter the values for OAuth2 authentication.
