ServiceNow Integration Guide

Prev Next

Summary

ServiceNow provides companies a single platform to manage their services, including such actions as closing incidents, responding to alerts, managing customer requests, solving employee issues, and addressing routine tasks. You can connect Catchpoint and ServiceNow to receive Catchpoint alerts directly in your ServiceNow centralized alerting system. For more information, go to https://docs.servicenow.com This document outlines the steps to integrate Catchpoint and ServiceNow using Catchpoint’s Alert Webhook.

Catchpoint Alert Webhook

Catchpoint’s Alert Webhook allows Catchpoint to integrate with other tools by pushing data when a test triggers an alert. Any tool supporting Webhooks or providing a URL to POST data can be used. Alert Webhook templates can be customized to fit a tool’s format and content-type using Macros. If a template needs modification, please contact Catchpoint Support. We are happy to assist you in creating a template meeting your requirements. Below, you will find the integration guide for setting up and customizing templates. These guides are standard workflows created by Catchpoint focused on creating and confirming an API template to be consumed by this tool. Catchpoint does its best to ensure the relevance of these guides and will be happy to assist in implementing a guide as described.

Prerequisites

Installation & Configuration

Catchpoint Configuration

To get Catchpoint alerts into your stream, login into the Catchpoint Portal and go to Settings > API.

  1. In Settings > Alert Webhook, select Enable.
  2. Click Add URL.
  3. Enter a Name.
  4. Input a URL - the endpoint where the alert data will be sent. (Syntax: "https://<domain_name>.service-now.com/api/now/table/incident)
  5. Select Template under Format
  6. Click Add New, to create a new template
  7. Enter a template Name
  8. Paste one of the sample templates available from below
  9. Click Save
  10. Select the newly created template
  11. Add an email address to On Failure Alert
  12. Check Apply to All Alerts
  13. Expand Requests
  14. Click Add API Request Headers
  15. Add an Authorization and Content-Type Header with its values, (see screenshot below.) The Authorization header value should be Basic followed by a space and then your Username and Password separated by a colon, encoded in Base64.  
    Example: Basic base64(username:password)
    img.png
  16. Click Save

Note: If you have configured multiple Alert Endpoints, then you must select the desired Alert Webhook(s) in the API Endpoints in Test properties, as shown in this screenshot. 
Alert.png

Sample Templates

Template 1: Create an incident with the assignment group

 {
	"contact_type" : "Monitoring",
	"category" : "Monitoring",
	"subcategory" : Zenoss",
	"incident_state" : "1",
	"impact" : "1",
	"urgency" : "2",
	"short_description" :
	"${switch("${notificationLevelId}","0","WARNING","1","CRITICAL","3","OK")}",
	"assignment_group" : "<group_name>",
	"incident_key" : "${AlertInitialTriggerDateUtc}",
	"event_type" : "trigger",
	"client" : "${productId}",
	"client_url" : "${testUrl}",
	"node": "${nodeDetails}"
} 

Note: Assignment groups need to be created earlier in the ServiceNow portal to use them. Here is the link to read more about all the properties available for an incident. Use the ones that meet your use case.

Template 2: Auto-close incident when there is an "improved" alert from Catchpoint.

 {
    "source": "Catchpoint",
    "cmdb_ci": "Catchpoint",
    "caller_id":"System Administrator",
    "node": "[${testId}] ${testName}",
    "type": "[Application][Synthetic] ${AlertType}",
    "state": ${switch('${notificationLevel}','Critical','1','Improved','6')},
    "close_code": "${if('${notificationLevel}==Improved','Solved (Permanently)')}",
    "close_notes": "${if('${notificationLevel}==Improved','Closed by Catchpoint')}",
    "resolved_by": "${if('${notificationLevel}==Improved','System Administrator')}",
    "resolved_at": "${if('${notificationLevel}==Improved','${alertCreateDateUtc(YYYY-MM-DD HH:MI:SS)}'}",
    "time_of_event": "${alertCreateDateUtc}",
    "short_description": "${TestId}",
    "description": "\n [Test ID]Test Name and Product Name\n[${testId}] ${testName} and ${productName}\n\nTest initial URL\n${testUrl}\n\nAlert type and level\n${AlertType}:  ${notificationLevel}\n\nTest location in Catchpoint (Client / Division / Product)\n[${clientId}] ${clientName} / [${divisionId}] ${divisionName} / [${productId}] ${productName}\n\nScatter Chart\n${scatterplotChartURL}\n\nWaterfall Chart\n${waterfallChartURL}\n\nTest properties\n${testLink}\n\nTest time of run / Test time of alert (Central Time)\n${reportDateLocal} / ${alertCreateDateLocal}\n\n"
}

NoteHere is the link to read more about all the properties available for an incident. Use the ones that meet your use case.

Results
Incidents will be created in Service now in case an alert is triggered in Catchpoint and is configured to use the added alert webhook. 
Service_now.png

Alert Macro Index

A full list of the Alert Webhook Macros can be found at:  https://docs.catchpoint.com/docs/Alert-Webhook-Macro-Index