ServiceNow Enterprise Integration Guide

ServiceNow Enterprise is a powerful platform-as-a-service, which offers advanced automation and process workflow for the enterprise environment. With this integration, you will be able to leverage ServiceNow’s workflow and ticketing capabilities with PagerDuty’s robust on-call scheduling, notifications and escalations.

This guide is certified for ServiceNow Istanbul and Helsinki, and will walk you through the process of integrating your environment with PagerDuty. If you’re using ServiceNow Geneva or earlier, please use the Legacy Integration Guide. There is a third integration guide available for ServiceNow Express.

Check out our Knowledge Base to find out more about What’s New in ServiceNow v3.5.

Communication between ServiceNow Enterprise and PagerDuty is supported in both directions allowing incidents to be acknowledged, delegated (assigned to another group) and resolved in either system. The following workflows are supported:

  1. User uses PagerDuty for notifications only. Once notified, they use ServiceNow to assign, investigate, resolve the incident.

  2. User gets a notification from PagerDuty and takes incident ownership via PagerDuty (by acknowledging) then uses ServiceNow for investigation and resolution.

  3. User uses PagerDuty to get a notification, then takes incident ownership (by acknowledging), and resolves the incident.

You can see a visual representation of these workflows here:

ServiceNow Requirements Prior to Install

Application Access Controls

In order for the PagerDuty integration to function, the following changes are required in ServiceNow prior to installation. This work should be performed by a ServiceNow administrator.

  1. From the System Definition → Tables module, open the record for the User (sys_user) table.

  2. Enable the Allow configuration option to support the action to provision PagerDuty users from a user form.

  1. From the System Definition → Tables module, open the record for the Group (sys_user_group) table.

  2. Enable the Allow configuration option to support the action to provision PagerDuty service and policy from a group form.

  3. Enable the Can create and Can update options to allow PagerDuty to write the group’s service and policy IDs to the group record.

In ServiceNow

  1. Log into the ServiceNow Store and search for the PagerDuty Incident Resolution Platform application.

  2. Select the option to purchase the application. There is no charge for this application. Make sure to select the most recent version of the app available for your version of ServiceNow.

  3. Log in to your ServiceNow Enterprise account as an admin.

  4. Open the System Applications → Applications module and click the Downloads tab to view the new application.

  5. Click Install on the PagerDuty application.

Add PagerDuty Fields to Views

If you wish to view the PagerDuty ID fields, they will manually need to be added. The following is the list of available fields. Adding these fields on the form views will also allow you to use the quick link to the related PagerDuty record.

  • User

    • PagerDuty ID

  • Group

    • PagerDuty service

    • PagerDuty escalation

    • PagerDuty webhook

  • Incident

    • PagerDuty ID

In PagerDuty

Create a REST API Key

  1. From the Configuration menu, select API Access.

  2. On the API Access page, click the Create New API Key button.

  3. In the dialog that pops up, you’ll be prompted to enter a Description for your key, and choose an API version. You will also have the option to create the key as Read-only; leaving this box unchecked will create a full access key.

    A note about versioning: For version 3.5 of the app and higher, you will want to create a v2 key with full access privileges.

  4. Once you have filled in your options, click Create Key.

  5. Once you click Create Key, you will see a dialog displaying your key and confirming the options you filled in on the previous step. Make sure to copy this key into any application that needs it now, as you will not have access to the key after this step. If you lose a key that you created previously and need access to it again, you should remove the key and create a new one. Click Close once you have successfully copied your key.

In ServiceNow

Configure the PagerDuty App

  1. Go to PagerDuty → Configuration → Properties.

  2. Enter your PagerDuty account URL, the default PagerDuty user ID, and the REST API endpoint URL (https://api.pagerduty.com) per the example below and paste in your API key from the previous steps. It is also suggested that you change the security key to a long unique string. This key is required for all webhook URLs.

    Note: The webhook key cannot contain any special characters—only numbers and letters are allowed.

  3. Validate that the integration works by clicking on Configuration → Test API Connection. You should get a Connection test successful (200) response if everything is working properly:

Migration Script

Note: If you’re upgrading from v3.2.1 or earlier, you must run the migration script before provisioning anything in your PagerDuty account. If you’re installing the PagerDuty application in your ServiceNow instance for the first time, skip ahead to the next section of this guide.

  1. Go to PagerDuty → MIGRATE WEBHOOKS to v3.5.

  2. Verify that the migration worked by going into your Services in PagerDuty. Make sure that the generic webhooks have been removed from the services and the new ServiceNow v3.5 extension is present.

Additional Properties to Review

  • Default PagerDuty User ID to use if auto-provisioning is disabled: Enter a valid PagerDuty user ID to be used if the integration cannot identify a PagerDuty account for the ServiceNow user performing the action

  • Incident state value to use when PagerDuty resolves an incident: If you have modified the default ServiceNow incident states, enter the value of you want incidents set to when PagerDuty resolves the related incident

  • Resolve PagerDuty incident if ServiceNow incident is assigned to a group that doesn’t exist in PagerDuty: If a ServiceNow incident is linked to a PagerDuty incident and the ServiceNow incident is re-assigned to a group that does not have a PagerDuty servcie, should the PagerDuty incident be set to resolved and unlinked from ServiceNow

  • Automatically create a PagerDuty user if one is not found matching the user’s email: If a user cannot be found in PagerDuty, should the integration automatically provision a user based on the user’s email address from ServiceNow

  • Only assign based on an acknowledgment from PagerDuty user: If enabled, PagerDuty assignments will only be updated in ServiceNow when the incident is acknowledged in PagerDuty

Provisioning Assignment Groups to PagerDuty

ServiceNow has the concept of assignment groups. With the PagerDuty integration, each assignment group will have a corresponding PagerDuty service and escalation policy. This integration offers an easy way to quickly generate a new PagerDuty service and escalation policy. It will also populate the associated fields within ServiceNow.

Note: The user provisioning assignment groups to PagerDuty must have a PagerDuty user ID attached to their account in SNOW.

  1. Below is a list of all assignment groups within our ServiceNow instance. You will notice that the PagerDuty escalation, PagerDuty service, and PagerDuty webhook fields are empty for the listed groups.

  2. Select an assignment group that you would like to provision to PagerDuty. Then, click on the Provision PagerDuty Service link to deploy this group to your PagerDuty instance.

  3. You should see a notification that the assignment group will be created. Once it’s complete, the PagerDuty service, PagerDuty escalation, and PagerDuty webhook fields will be populated.

  4. Lastly, you will find that the corresponding service and escalation policy have been created in PagerDuty. The service also has the webhook automatically created, which powers the bi-directional sync between PagerDuty and ServiceNow. The webhook contains the shared secret in the URL, enhancing the security of the communications.

Provisioning Users to PagerDuty

  1. The integration also allows for the provisioning of users from ServiceNow to PagerDuty. Below is the list of ServiceNow users. You can see directly which users have already been created in PagerDuty as their PagerDuty ID field has already been populated:

  2. We’ll select a user that has not already been provisioned to PagerDuty. We can then click on the Provision PagerDuty User link to add them to our PagerDuty account:

  3. You then see a notice that the user is being provisioned. Upon completion, the PagerDuty ID field is automatically populated:

    The user also shows up within PagerDuty:

  4. If the user has their Business phone or Mobile phone fields populated in ServiceNow, these settings will also be automatically provisioned as Contact Methods and Notification Rules in PagerDuty:

  5. You can also provision multiple users at once by selecting them and clicking on the Provision PagerDuty User option from the dropdown menu on the Users screen.

Verify that ServiceNow and PagerDuty are Communicating

You can verify that PagerDuty and ServiceNow are communicating by assigning an incident to the group in ServiceNow. Below is an incident that was assigned to the Database group which is tied to a PagerDuty service. It was then reassigned to the CAB Approval escalation policy within PagerDuty.

Once the incident is resolved in PagerDuty, it will be resolved in ServiceNow and vice-versa. ServiceNow also maintains a log of what activities have taken place within PagerDuty.

Note: Once you have successfully installed and configured the PagerDuty application in your ServiceNow instance, it is highly recommended that you index the incident.x_pd_integration_incident column on your incident table. This will ensure optimal performance when the PagerDuty application is querying the incidents table.

FAQ

Can a PagerDuty incident create a ServiceNow incident?

Yes. When provisioning PagerDuty Services from your ServiceNow Assignment Groups, an Extension is added to your PagerDuty Service. This enables the bi-directional integration, ensuring that a ServiceNow incident is created when an incident originates in PagerDuty.

What’s new in the latest version of the application?

You can check out What’s New in ServiceNow v3.5 for more information on some of the new features and functionality in the integration.

What’s the latest version of the PagerDuty application for ServiceNow?

The most current version of the application is v3.5. You can find the latest version of the app by going to the ServiceNow app store and searching for PagerDuty.

Can I upgrade from Geneva?

Version 3.5 of the PagerDuty app is certified for Istanbul and Helsinki. If you’re on Geneva, you will want to use the Legacy ServiceNow Integration which uses v3.2.1 of the app.

Can I set up services in PagerDuty using generic webhooks?

No. Version 3.5 of the ServiceNow PagerDuty integration requires that you use the ServiceNow extension.

After completing an upgrade from v3.2.1, there is a Generic Webhook and a ServiceNow Extension on my PagerDuty Service. Which should I keep?

Version 3.5 of the ServiceNow PagerDuty integration requires that you use the ServiceNow Extension. You can manually remove any Generic Webhooks that may be pointing to your ServiceNow instance.

Can I manually create a PagerDuty Service that is tied to ServiceNow?

Yes:

  • Create the PagerDuty Service and corresponding Escalation Policy.
  • Grab the seven character ID for both the Service and Escalation Policy. These can be found in the URL while viewing the objects themselves.
  • Locate the corresponding Assignment Group in ServiceNow. You will need to make the PagerDuty service and PagerDuty escalation fields to be non-read-only.
  • Add the two IDs from PagerDuty into the corresponding ServiceNow fields. Do not fill out the PagerDuty webhook field.
  • Save the Assignment Group.
  • Create a new incident on the Assignment Group in ServiceNow.
  • ServiceNow will auto-provision the Extension in your PagerDuty Service.
  • You’ve now created a bi-directional integration between PagerDuty and ServiceNow.

Why are PagerDuty notes not showing up in the ServiceNow activity stream?

PagerDuty currently sends webhooks only for trigger, acknowledge, resolve and reassign actions on incidents. To ensure that all of your PagerDuty notes are synced into ServiceNow, you will want to locate your incident in ServiceNow, click on the top menu bar, and then select Refresh PagerDuty Notes.