ServiceNow holds critical compliance data, but manually retrieving tickets, approvals, and change records for audits can be time-consuming and error-prone.
With the Complyance ServiceNow integration, evidence collection is fully automated. It continuously fetches the latest records, keeping compliance data updated and eliminating the need for manual pulls before audits.
Configuration
To set-up the ServiceNow integration, we need the Base URL and credentials for the OAuth app integration (client ID and client secret). Please see below how to find this information in ServiceNow!
How to get the base URL
- The Base URL is the URL used to access the ServiceNow application.
- It has the following format: https://{YOUR_INSTANCE_ID}.service-now.com/
- You should replace the {YOUR_INSTANCE_ID} with the actual number of your instance.
How to setup the OAuth app integration
Please note, only users with the admin role can setup OAuth integration. Contact your IT Admin if you do not have these permissions.
Step 1: Create a Role
- Navigate to User Administration → Roles
-
Click New
- Fill in:
-
Name:
complyance_integration_role
-
-
Click Submit
Step 2: Create Access Controls for the tables you want to export
- This step has to be done by someone with
security_adminpermission. -
Navigate to System Security → Access Control (ACL)
-
Click New (If you don't see this button you need to elevate your role)
-
Click on your user portrait in the top-right corner, then click on Elevate role
-
Check the security_admin box and click on Update
- You should be able to create a new Access Control (ACL) now
- Fill in:
- Type:
record - Operation:
read - Admin overrides: check
- Name:
<table name> -
Role:
complyance_integration_role
- Type:
-
Click Submit
-
Click Continue
- Repeat this step for every table you want to export.
Step 3: Create the Integration User
-
Navigate to User Administration → Users
-
Click New.
- Fill in the form and click
Submit:- User ID:
complyance_service_integration_api(or your naming convention for service accounts) - First name:
Complyance Integration - Last name:
API Service Account - Active: checked
- Identity type:
Machine - Internal Integration User: checked
- User ID:
-
Open the newly created user record and assign the previously created role to the user.
Step 4: Create OAuth integration
- Navigate to
System OAuth→Inbound Integrationsand clickNew integration -
Select
OAuth - Client credentials grantapplication connection type. -
Fill in the form:
- Name:
Complyance Integration - Provider name:
Complyance - OAuth Application User: select the previously created user (
Complyance Integration API Service Account) - Copy client ID
- Copy client secret
- Click
Create auth scopeand enter the nameComplyance Auth Scopein the opened modal. - After creating the auth scope, make sure it is selected in the
Auth scopeinput. - Select
Table APIin theLimit authorization to the following APIsinput. - Click
Save
- Name:
Step 5: Enable OAuth Client Credentials authentication
By default OAuth Client Credentials authentication flow is disabled. To enable it, a new system property needs to be created.
- Enter
sys_properties.listin the search box underAllnavigation menu and pressEnter. This will open the system properties table. ClickNewbutton. - Fill in the form:
- Name:
glide.oauth.inbound.client.credential.grant_type.enabled - Type:
true | false - Value:
true - Click
Submit
- Name:
Evidence config setup
To set up evidence generation, we'll need the table you want to export, the query to filter the data, and the fields to be included in the evidence.
How to get the table name
- Go to All → Tables
-
On the list of tables you can search for the table label you want to export and you should see the name next to it.
How to get the filter query
- Go to All → {Table you want to fetch results}
- Click the filter icon and build your filter
- Click run
- Right click the right-most filter and select copy query. It will be copied to your clipboard.
(In the example below there's All > column_1… the right click should be in the column_1…)
How to get the fields you want to fetch
In the ServiceNow app, fields—much like tables—have a label name and an actual name. What we are looking for here are the actual name of the fields you want.
- Go to All → {Table you want to fetch}
- On the columns table you will see an icon that shows with more detail that column. There you can see the name of the column.
- If you want to access a field from a reference you can get the name with dot notation. i.e. If you want to access the number column from the Incident referenced in my TestTable, you can do it like this: u_incident.number
- u_incident is the name of the column in test table
- number is the name of the column in the incident table
Your ServiceNow Integration is ready to be set-up in Complyance!