What's New: ServiceNow v5 Integration

integrations
howto

(Sean Higgins) #1

Today, I’m excited to announce availability of the latest version of PagerDuty’s certified integration for ServiceNow. The latest version (version 5) is now available as a certified integration in the ServiceNow AppStore for Kingston and London users. Jakarta will soon be available on the store.

If you’re ready to get started, follow the installation guide available here.

What's New in v5.0

Real time notes sync between PagerDuty and ServiceNow

We’ve heard you loud and clear – the need to “refresh” PagerDuty notes from ServiceNow is painful. Upon upgrading, you’ll notice that notes from PagerDuty now flow into ServiceNow in real-time. No more manual refresh!

Easy one-click provisioning of Assignment Groups into PagerDuty

When provisioning Assignment Groups from ServiceNow into PagerDuty, it’s now even easier to get your teams up and running. A number of new provisioning related improvements have been added. Each of these capabilities can be enabled automatically or used ad-hoc on a group-by-group basis:

  • Provision all group members into PagerDuty when provisioning an Assignment Group
  • Create a PagerDuty Schedule for the Assignment Group
  • Create a PagerDuty Team for the Assignment Group. All group members will be automatically added to the PagerDuty Team.
  • The newly created schedule and group members are added to the PagerDuty Escalation Policy



Group Member Synchronization (from ServiceNow to PagerDuty)

When an Assignment Group is mapped to PagerDuty, you can enable a 1-way sync of group members with PagerDuty.

  • Once enabled, if new team members are added to your ServiceNow Assignment Group, they’ll be automatically provisioned into PagerDuty and added to the corresponding team.
  • If you remove a user from an Assignment Group, they’ll be removed from the corresponding PagerDuty Team

Redesigned PagerDuty Settings Page

The PagerDuty Properties page in ServiceNow was long overdue for an update. You’ll now find a new “PagerDuty Settings” page in the navigation menu once updating. A few highlights:

  • Inline field validation will check the input provided and notify you if corrections are required. This makes it even easier to configure the PagerDuty integration for the first time.
  • Each of the new provisioning features mentioned above are configurable from the Settings page.

Integration with ServiceNow Security Incident Response & Emergency Change Requests

PagerDuty now integrates with ServiceNow’s Security Incident Response module and Change Requests. With our new integrations, you can quickly add real-time response capabilities for security incidents & emergency change requests. These new integrations will be on the app store very soon, so bookmark this post for updates.

Tips for Upgrading

Before you start the upgrade process for the PagerDuty integration, here are a few things to consider:

  • Consider testing the upgrade path in your development environments first.
  • If you have made customizations to the PagerDuty Integration, you must first backup, then revert your customizations. You can then upgrade and re-apply the customizations if necessary.
  • Why? The ServiceNow App Store won’t patch files that have been modified/customized by customers. If you have customizations.

How can I find out if the integration has been modified?

The easiest way is to check the Updated By attribute for each of the files in the PagerDuty integration.

  • In ServiceNow, navigate to PagerDuty → Configuration → Configuration Files
  • Update the Form Layout to show the Updated by and Updated columns to the view for all of the tabs (Business Rules, Script Actions, Includes, UI Actions, etc.)
  • If the Updated by value is not PagerDuty, you will want to save these customizations.
  • Review the Version History and restore to the Store version.

Upgrading PagerDuty Extensions (Webhooks)

As part of the Integration update, there’s a new type of Extension (or Webhook) in PagerDuty. The integration ships with a script to update the PagerDuty Extensions with a single click.

  • After upgrading, verify that the PagerDuty Settings page is up to date. In particular, ensure that “ServiceNow user for authentication” and “ServiceNow user password for authentication” are present, as these are needed by PagerDuty to communicate with ServiceNow.
  • Run both the Test REST API Connection and the Test ServiceNow User Authentication scripts. Both should return a “success (200)”.
  • Run the MIGRATE WEBHOOKS to v5.0 script. Output will be displayed and upon completion, a success message will display. This script removes your existing v3.5 or v4.0 Extensions from your PagerDuty account and adds new v5.0 Extensions.

Using ServiceNow Clone Data Preservers to maintain Dev Settings

If you already have a ServiceNow development instance configured with non-production instance of PagerDuty, using a Clone Data Preserver can help maintain configuration settings across instances. By configuring a Clone Data Preserver in your Production instance of ServiceNow, your PagerDuty Settings won’t be overwritten when you sync from Production.

Questions? Feedback?

If you have any questions or feedback on the integration, let us know.

Sean


(Wesley Breshears) #2

Hi Sean,

Sales person at Knowledge 18 said that version 5.0 would have the capability to pass ServiceNow fields to the PD App. So that when a User ‘resovles’ an incident, a ServiceNow drop down ‘closure code’ field or ‘cause’ and ‘resolution’ string fields could be in the PD App for the user to enter data which would populate these ServiceNow fields when the resolve the incident. Basically remvoving the need to return to ServiceNow to update these mandatory fields for the incident record. Can you share the documenation on how this can be configured?

Thank you,
-Wesley


(Tyler Wells) #3

There are two rules with the out of the box v5 integration that accomplish this - one to populate resolution/close code and the other to populate the note.

If you’re using an older version of the PD integration and on Jakarta or Kingston, you can accomplish the same thing by modifying the PagerDutyInboundCustomScript to include the following:

var payloadString = new global.JSON().decode(source.payload);
        var logEntry = payloadString.log_entries[0];
        var pd_note = logEntry.channel.summary;
        var pd_user = logEntry.agent.summary;
        
        if (source.message_type == "incident.annotate") {
            if (pd_note.substring(0,10) == 'Resolution') {
                target.close_notes = logEntry.channel.summary.slice(16);
                gs.debug("in the conditional statement");
            }
            else
                target.work_notes = pd_user + ":" + logEntry.channel.summary;
            target.update();
        }

(system) #4