Skip to content

ServiceNow

By enabling this toolset, HolmesGPT will be able to interact with ServiceNow for ticket management, incident tracking, and accessing knowledge base articles during investigations.

Warning

This toolset is in Experimental stage.

Prerequisites

  1. ServiceNow instance URL
  2. ServiceNow API key or username and password
  3. Appropriate ServiceNow roles and permissions

Setting up ServiceNow API Access

Full configuration guide

Create an inbound authentication profile

  1. Navigate to All > System Web Services > API Access Policies > Inbound Authentication Profiles
  2. Select New
  3. Select Create API Key authentication profiles
  4. Auth Parameter > add x-sn-apikey: Auth Header
  5. Submit the form

Create a REST API key

  1. Navigate to All > System Web Services > API Access Policies > REST API Key
  2. Select New
  3. Set name, description, and user. Set expiry date if desired. > Submit
  4. Open the record that was created to view the token generated by the ServiceNow AI Platform for the user

Create a REST API Access policy

  1. Navigate to All > System Web Services > REST API Access Policies
  2. Select New
  3. REST API = Table API
  4. Uncheck Apply to all tables > Select table > change_request
  5. In select profile from step 1 (API Key)

Configuration

First, set the following environment variables:

export SERVICENOW_INSTANCE="<your servicenow instance name>"  # e.g., "dev12345"
export SERVICENOW_API_KEY="<your servicenow api key>"

Then add the following to ~/.holmes/config.yaml. Create the file if it doesn't exist:

toolsets:
  servicenow/tickets:
    enabled: true
    config:
      api_key: "<your servicenow api key>"
      instance: "<your servicenow instance name>"
      verify_ssl: true
      timeout: 30

After making changes to your configuration, run:

holmes toolset refresh

Username/Password Authentication

First, set the following environment variables:

export SERVICENOW_INSTANCE="<your servicenow instance url>"
export SERVICENOW_USERNAME="<your servicenow username>"
export SERVICENOW_PASSWORD="<your servicenow password>"

Then add the following to ~/.holmes/config.yaml. Create the file if it doesn't exist:

toolsets:
  servicenow/tickets:
    enabled: true
    config:
      verify_ssl: true
      timeout: 30

After making changes to your configuration, run:

holmes toolset refresh

holmes:
  additionalEnvVars:
    - name: SERVICENOW_INSTANCE
      value: "<your servicenow instance name>"
    - name: SERVICENOW_API_KEY
      value: "<your servicenow api key>"
  toolsets:
    servicenow/tickets:
      enabled: true
      config:
        api_key: "<your servicenow api key>"
        instance: "<your servicenow instance name>"
        verify_ssl: true
        timeout: 30

Username/Password Authentication

holmes:
  additionalEnvVars:
    - name: SERVICENOW_INSTANCE
      value: "<your servicenow instance url>"
    - name: SERVICENOW_USERNAME
      value: "<your servicenow username>"
    - name: SERVICENOW_PASSWORD
      value: "<your servicenow password>"
  toolsets:
    servicenow/tickets:
      enabled: true
      config:
        verify_ssl: true
        timeout: 30

Advanced Configuration

You can customize ServiceNow integration settings:

toolsets:
  servicenow/tickets:
    enabled: true
    config:
      verify_ssl: true
      timeout: 30  # Request timeout in seconds
      max_results: 100  # Maximum number of tickets to fetch
      default_table: "incident"  # Default ServiceNow table to query

Capabilities

Tool Name Description
servicenow_create_incident Create a new incident ticket in ServiceNow
servicenow_get_incident Get details of a specific incident
servicenow_search_incidents Search for incidents based on criteria
servicenow_update_incident Update an existing incident
servicenow_get_knowledge_base Search ServiceNow knowledge base articles
servicenow_create_change_request Create a change request ticket