Skip to main content

Home

ServiceNow

This document walks you through setting up Unravel's integration with ServiceNow for automated incident creation and monitoring. Unravel supports only Node Rightsizing insights for ServiceNow. To configure the integration, follow the steps below.

Prerequisites

Before starting the configuration, ensure you have the following details:

  • ServiceNow Instance Details: The base URL of your ServiceNow instance (For example, https://instance.service-now.com).

  • OAuth Client Credentials: Obtain these credentials from your ServiceNow administrator:

    • Client ID

    • Client Secret

    Service_Now.png
  • ServiceNow User Credentials: Credentials for a ServiceNow user account with permissions to create and monitor incidents.

    • Username

    • Password

  • Incident Payload Configuration: Define the metadata for incidents. Below is an example:

    payload = {    'short_description': "Tune Databricks Job configuration to reduce cost",  # Incident summary    'description': row['signature'],  # Detailed description    'urgency': '2',  # Urgency (1 - High, 2 - Medium, 3 - Low)    'impact': '2',   # Impact (1 - High, 2 - Medium, 3 - Low)    'caller_id': 'Unravel'  # User reporting the incident}

Note

The ServiceNow user account must have all necessary permissions and role access to allow Unravel to create and monitor incidents effectively.

How the Integration Works: Solution Architecture

The Unravel-ServiceNow integration operates as follows:

Architdcture.png

Note

  • Ensure the ServiceNow user account has all required permissions and role access.

  • Tokens generated by the OAuth server are time-limited and need to be refreshed periodically.

  • If issues arise during configuration, contact your ServiceNow or Unravel administrator for assistance.

  1. Authentication

    Unravel sends an OAuth authentication request to the ServiceNow OAuth server using the provided Client ID, Client Secret, Username, and Password.

  2. Token Generation

    The OAuth server authenticates Unravel and returns an expiring token, which is used for further API requests.

  3. Incident Creation

    Unravel uses the token to send a POST request to ServiceNow to create or update incidents:

    Endpoint:

    POST https://instance.service-now.com/api/now/v1/table/incident

    Payload example:

    Payload = {"short_description":"Test incident creation through REST", "comments":"These are my comments"}
  4. Incident Monitoring

    Endpoint

    Unravel uses the token to send a GET request to check the status of previously created incidents:

Integration

Follow these steps to set up the integration:

  1. Generate the savings.csv File.

  2. Set Up the Python Pipeline. Configure the pipeline script to read the savings.csv file and map recommendations to ServiceNow incidents or email templates.

  3. Configure ServiceNow Integration.

    • Obtain ServiceNow API credentials (client_id, client_secret, and instance URL).

    • Update the pipeline script with these credentials.

    • Test the API connection to ServiceNow.

  4. Enable State File Maintenance.

    • Create a state file (for example: incident_state.json) to track processed incidents.

    • Configure the script to skip creating incidents for recommendations already logged in the state file.

  5. Deploy and Schedule the Pipeline.

  6. Validate the Integration.

Example ServiceNow Incident created with Unravel Recommendations. You can click on the app ID to navigate to Unravel UI.

Example_ServiceNow_Incident.png

Unravel ServiceNow Dashboard

For steps to install and access the Unravel ServiceNow dashboard, see here.

You find the following widgets in the dashboard

  • The first dashboard lists the incidents and their status. When an incident is created, it is assigned to the admin. The admin should access the ServiceNow dashboard and reassign the incident to the stakeholders.

    Dashbaord1.png
  • Incident Counts by Priority

    Dashbaord2_Priority.png
  • Incident Counts by Priority and Incident State

    Dashboard3-incidentcountby-priotiy-state.png
  • Number of incidents assigned to each person

    Dashboard4-Incidents-person.png
  • Incident Count Over Time

    Dashboard5_incidentcount-over-time.png

FAQs

  • What types of insights are supported?

    Currently, only node right-sizing insights are supported. Other types of insights or events are not integrated.

  • Can incidents be customized?

    Yes. Customers can specify urgency levels, descriptions, and custom fields. These configurations must be provided during the setup phase.

  • What happens if the pipeline to generate savings.csv is deprecated?

    You must create a custom script or wrapper program to generate the CSV file. The incident creation module can then use this file.

  • Can we send email notifications instead of ServiceNow incidents?

    Yes. Configure the incident creation type to "Email" to send email notifications.

  • Is ServiceNow available in all Unravel environments?

    No. This configuration and is not active by default. Contact Unravel Support for setup.