# ServiceNow

## Generate Basic Token using the API Key

You need to generate a basic token using their API Key to authenticate ServiceNow APIs. Use a tool to generate a basic token out of the API Key.

Here we have used [<mark style="color:blue;">Postman</mark>](https://www.postman.com/) to generate the basic token

1. Open a new tab in **Postman**
2. Paste the below curl in the **URL** space

<div><figure><img src="/files/fGCLbZv79lLBiaS7UL7l" alt=""><figcaption></figcaption></figure> <figure><img src="/files/jRCeSt9PQ6jPKJ9noL8E" alt=""><figcaption></figcaption></figure></div>

3. Navigate to **Authorization** -> Type **Basic Auth** -> In the **Username** field paste the **API Key** copied from the profile page.
4. Navigate to **Headers** -> Key **Authorization** -> Copy the **Value**
5. To know more about ServiceNow Authentication and generating API keys. Check [here](https://www.servicenow.com/community/developer-articles/video-how-to-authenticate-to-servicenow-rest-apis-using-oauth/ta-p/2330464).

> curl -v -u apikey:X -H "Content-Type: application/json" -X GET <mark style="color:blue;">'</mark>[<mark style="color:blue;">https://instance.service-now.com/api/now/table/incident</mark>](https://dev124394.service-now.com/api/now/table/incident)<mark style="color:blue;">'</mark>

{% hint style="info" %}
**Note:**

Replace the word “**instance**” in the URL with your **Instance Name**
{% endhint %}

## Create a Ticket in ServiceNow via the Webhook Template

Follow the below steps to configure the “ServiceNow - Create Incident” action via Webhooks:

1. Navigate to **Settings** -> **Webhooks**.
2. Click **Add Webhook**. On the next screen, you will be guided through three steps. Navigate between these steps by clicking on any of the steps on the top bar.
3. **Add Webhook Details**:&#x20;
   1. **Webhook Name**: Enter the webhook name as **ServiceNow - Create Incident**.
   2. **Webhook Description** (optional): Enter an optional description. For example - This webhook is for incident creation in ServiceNow for Squadcast Incidents.
   3. **Failure Notification Email** (optional): Enter an email where you want to receive failure notifications. This is particularly helpful when you (or an administrator) want to be notified of webhook-related failures.
   4. **URL**: Enter the **Webhook URL** copied from **ServiceNow**.&#x20;
   5. **Additional Headers**: Add `Key: Authorization` and paste the `Value` copied from Postman

<figure><img src="/files/kH1YNnF07JXCoa6fydpt" alt=""><figcaption></figcaption></figure>

{% hint style="info" %}
**To copy Webhook URL from ServiceNow:**&#x20;

1\) Log in to your ServiceNow Instance (dev\*\*\*\*\*133.service-now\.com)

2\) Search for the Rest API Explorer and open it

3\) In the Rest API Explorer page choose the Namespace and API Name with the proper API version.
{% endhint %}

{% hint style="info" %}
**Note:**&#x20;

Make sure you have selected the POST request.

Content-Type: application/JSON is added by default under Headers
{% endhint %}

Click **Next: Choose Webhook Type**, and navigate to the next step.

4. **Choose Webhook Type**: Choose Webhook type (Manual or Automatic) and add configurations.
   1. **Manual Webhook**: Manually trigger Webhooks under incidents, on demand. Under Manual Webhook, select the teams that are authorized to access the Webhook. You can select All Teams or enter specific Teams, from the drop-down.

{% hint style="info" %}
**Note**:

Select this option only if you want to create ServiceNow incidents manually on-demand. If you want a ticket, created automatically when certain conditions are met, please choose Automatic webhooks.
{% endhint %}

**Automatic Webhook**: Automatically trigger Webhooks when the configured conditions match. To set up Automatic Webhook Configurations:

1. **Versions**: Select **v2**
2. **Triggers**: Select the following Trigger events (conditions) for which the Webhook will be triggered:
   1. Incident Triggered (This will create a ServiceNow incident whenever a new incident gets triggered in Squadcast)&#x20;
3. **Filters**: You can apply filters on top of events, based on Teams, Services, Alert Sources, and Tags, by having an individual expression or a combination of expressions/expression groups.

Applying filters will trigger the webhook and create ServiceNow incidents only for events that match the filter. Check the example config below:

<figure><img src="/files/7aSpRTBYRv2HLk7672Qy" alt=""><figcaption></figcaption></figure>

Click **Next: Configure Payload**, and navigate to the next step.

5. **Configure Payload**:\
   \
   Select the pre-configured template for **ServiceNow - Create Incident**. You can also test the Webhook by clicking the **Test Webhook** on the bottom right.

<figure><img src="/files/dagUizHQpsS4jm8LRCed" alt=""><figcaption></figcaption></figure>

{% hint style="info" %}
**Note:**

We have added the necessary fields in the template. You can change the **Keys** that are mandatory according to your use case and can add additional ticket fields.
{% endhint %}

Click **Save** and your **Webhook** is created.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://support.squadcast.com/~/changes/lGFY3mJPy207GveiFTeX/integrations/extensions/servicenow.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
