# Connection

## Integration User

Before we configure our Connection, we need to ensure we have a user in the instance to use as the Inbound user for our Integration. To configure our Integration user:

In the **native ServiceNow** window, navigate to **User Administration > Users**. Click **New**.

The fields to be configured for the User record are as follows:

| Field      | Description                                                                | Value                             |
| ---------- | -------------------------------------------------------------------------- | --------------------------------- |
| User ID    | The id of the user (to be used by the external system for authentication). | \<your.integration\_user>         |
| First name | The integration user's first name.                                         | \<Your First Name>                |
| Last name  | The integration user's last name.                                          | \<Your Last Name>                 |
| Password   | The user's password (to be used in basic authentication).                  | \<Your Password>                  |
| Roles      | The roles required for access to the integrated records.                   | 'itil', 'x\_snd\_eb\_integration' |

{% hint style="info" %}
**Roles**

**itil**: This role is given to access the table of the bonded record.

**x\_snd\_eb\_integration**: This role is given to access the automatically created Web Service.
{% endhint %}

*Your User record should look like this:*

![](https://content.gitbook.com/content/2EJsRh73QF1TvP9eLF8k/blobs/EFJfK0xAcCQUzyYie8Uc/baig-connection-1.png)

## Connection

{% hint style="info" %}
You can set up many connections to enable switching between environments (one connection per environment). However, only one connection can be active for an Integration at a time.
{% endhint %}

{% hint style="warning" %}
**Remember**: When setting up a Connection:

* Make sure your SOAP and/or REST endpoints are unique.
* Never use your own User as the Inbound User as it will prevent the integration from working.
* Always ensure that your Inbound User is NOT used by anyone else for the same Process i.e. if you’re creating a Connection for an Integration on the Incident Process, your Inbound User has to be the only User used by an Integration within that Process.
  {% endhint %}

{% hint style="success" %}
We are going to configure a Connection for the Development environment.
{% endhint %}

Back in the **Unifi Integration Designer** window, after clicking the **'Connections' icon**, the first thing you will notice is a widget at the top of the page which clearly displays the inbound endpoints (REST Resources) which were automatically created when the Process was configured.

{% hint style="info" %}
Clicking the link to the right of the Endpoint URL will open the Scripted REST Resource (in native ServiceNow) in a new window.
{% endhint %}

![](https://content.gitbook.com/content/2EJsRh73QF1TvP9eLF8k/blobs/xMIdpwJrvQxP3h9usgiY/baig-connection-2.png)

Click **New**.

The fields to be configured for the New Connection modal are as follows:

| Field        | Description                                        | Value                           |
| ------------ | -------------------------------------------------- | ------------------------------- |
| Environment  | The environment this connection applies to.        | 'Development'                   |
| Endpoint URL | The external system's access URL.                  | \<External system Endpoint URL> |
| Active       | Use this connection for the integration when true. | \<true>                         |

## Outbound Connectivity

The format of the Endpoint URL is as follows:

`https://<your_instance>.service-now.com/<your_resource_path>`

{% hint style="success" %}
The entire Endpoint URL can be easily obtained from the automatically created Message Resource on the Unifi Scripted REST API (displayed in the widget at the top of the Connections page).
{% endhint %}

{% hint style="info" %}
For this Development environment Connection, we will set the Endpoint URL to point to our own instance and use the same Integration User for both Inbound and Outbound *(as created above)*. Being able to connect to our own instance makes it simple and efficient to test our integration *(seeing Transactions going out and coming in)* before we connect to the external system.
{% endhint %}

*Your New Connection modal should look like this:*

![](https://content.gitbook.com/content/2EJsRh73QF1TvP9eLF8k/blobs/d9nDtky8JHD7Q9HnwHTk/baig-connection-3.png)

Click **Submit and view**.

{% hint style="info" %}
Clicking 'Submit' will redirect you to the list view of the record you're creating. Clicking 'Submit and view' will redirect you to the newly created record.
{% endhint %}

## Connection Details

The fields to be configured for the Details form are as follows:

| Field          | Description                                                                                                                      | Value                            |
| -------------- | -------------------------------------------------------------------------------------------------------------------------------- | -------------------------------- |
| Authentication | The authentication method to use for this connection.                                                                            | 'Basic'                          |
| User           | The username used in basic authentication.                                                                                       | \<external.system.user>          |
| Password       | The password used in basic authentication.                                                                                       | \<External system user password> |
| Inbound user   | The user profile used by the external system for authentication. An active connection must be found for the user to gain access. | lookup: \<Your Inbound User>     |

*Your Details form should look like this:*

![](https://content.gitbook.com/content/2EJsRh73QF1TvP9eLF8k/blobs/r5N4xjaDSpSgSvv6gfju/baig-connection-4.png)

{% hint style="success" %}
**Feature Alert**: The widget at the bottom of the page now shows the Integration as Active.
{% endhint %}

**Save** the Connection.

## Connection Test

At this stage you can carry our a basic connection test which verifies whether the user is authorized (i.e. whether you've configured the user/password/roles correctly). To do this, click **Connection Test**.

![](https://content.gitbook.com/content/2EJsRh73QF1TvP9eLF8k/blobs/XbT5u0r4ku1svdVTW4aj/baig-connection-5.png)

Then, on the Connection Test modal, click **Test**.

![](https://content.gitbook.com/content/2EJsRh73QF1TvP9eLF8k/blobs/AKDDEZ4sHGIAe3WB5jc3/baig-connection-6.png)

The results (Pass/Fail) will be displayed.

![](https://content.gitbook.com/content/2EJsRh73QF1TvP9eLF8k/blobs/BHYLvTVzuxHGt2BgWWkF/baig-connection-7.png)

Click **Done**.

The main, manually configured elements are now in place for our Integration to work. We are now ready to configure and test each of our **Scenarios** in turn.

{% hint style="info" %}
**Remember**: There is no need to manually configure a Trigger (Business Rule) on the Process table being integrated as Unifi will automatically create one for us *(if one doesn't already exist)*.
{% endhint %}
