About ServiceNow
ServiceNow is an IT service management (ITSM) platform that manages tickets, incidents, change requests, and IT assets.What the ServiceNow integration enables
| Capability | Description |
|---|---|
| Ticket Sync | Native bidirectional sync between Serval tickets and ServiceNow incidents |
| Knowledge Base | Sync knowledge articles from ServiceNow directly into Serval for AI-powered assistance |
| Workflow Automation | Build Serval workflows using the ServiceNow Table API, Catalog API, and Change Management API |
ServiceNow Configuration
Prerequisites
Before configuring the ServiceNow integration in Serval, ensure you have:- Access to your ServiceNow instance as an administrator
- Permissions to create users, roles, and ACLs
- Knowledge of your ServiceNow instance name
Step 1: Create a Dedicated Integration User
1
Navigate to User Administration
- Log in to your ServiceNow instance as an administrator
- In the application navigator search bar, type “Users” and select User Administration → Users
- Click New to create a new user
2
Configure User Details
Fill in the required user information:
Click Submit to create the user.
| Field | Value |
|---|---|
| User ID | serval.integration |
| First name | Serval |
| Last name | Integration |
| Active | ✅ Checked |
| Web service access only | ✅ Checked (recommended for API-only accounts) |
| Internal Integration User | ✅ Checked (if available in your ServiceNow version) |
| Photo (Optional) | Download the Serval logo then select it from your downloads |
3
Set the User Password
- On the Users page, search for the user you just created and click on it
- Click Set Password
- Click Generate Password
- Important: Click the Copy button to copy the password and save it securely
- Click Submit
Step 2: Create a Custom Role for Serval
Creating a custom role with granular permissions is the recommended approach for production environments. This follows the principle of least privilege and provides better security than using out-of-the-box roles like
itil or admin.1
Create the Custom Role
- In the navigator, search for “Roles” and select User Administration → Roles
- Click New
- Fill in the role details:
| Field | Value |
|---|---|
| Name | x_serval_integration |
| Description | Custom role for Serval integration with least-privilege API access |
- Click Submit
2
Add Base Roles
Open the role you just created and scroll down to the Contains Roles related list. Add the following base roles:
| Role | Purpose |
|---|---|
rest_api_explorer | Enables REST API access |
personalize_choices | Allows reading sys_choice values |
personalize_dictionary | Allows reading sys_dictionary for field definitions |
These base roles provide the foundational REST API capabilities. We will add granular table access via ACLs in the next step.
Step 3: Configure Table Access via ACLs
Serval requires specific read/write access to various ServiceNow tables. You’ll create Access Control List (ACL) rules to grant only the necessary permissions.- Required Table Access
- Create ACLs
- Alternative: Use OOB Roles
The following tables require access:
Incident Management Tables
| Table | Read | Create | Write | Fields |
|---|---|---|---|---|
incident | ✅ | ✅ | ✅ | All standard incident fields |
sys_journal_field | ✅ | ❌ | ❌ | Comments and work notes |
Service Catalog Tables
| Table | Read | Create | Write | Fields |
|---|---|---|---|---|
sc_cat_item | ✅ | ❌ | ❌ | Catalog item details |
sc_request | ✅ | ✅ | ❌ | Service requests |
sc_req_item | ✅ | ✅ | ✅ | Requested items |
Configuration Tables (Read-Only)
| Table | Read | Create | Write | Purpose |
|---|---|---|---|---|
sys_user | ✅ | ❌ | ❌ | User lookup for assignment |
sys_user_group | ✅ | ❌ | ❌ | Assignment group lookup |
sys_choice | ✅ | ❌ | ❌ | Field dropdown values |
sys_dictionary | ✅ | ❌ | ❌ | Field definitions |
cmdb_ci_service | ✅ | ❌ | ❌ | Business services |
Knowledge Base Tables (Read-Only)
| Table | Read | Create | Write | Purpose |
|---|---|---|---|---|
kb_knowledge_base | ✅ | ❌ | ❌ | Knowledge base metadata |
kb_category | ✅ | ❌ | ❌ | Knowledge categories |
kb_knowledge | ✅ | ❌ | ❌ | Knowledge articles |
Step 4: Assign the Custom Role to the Integration User
1
Open the User Record
- Navigate to User Administration → Users
- Find and open the
serval.integrationuser
2
Add the Custom Role
- Scroll down to the Roles related list
- Click Edit
- Add the
x_serval_integrationrole (or the OOB roles if you chose that approach) - Click Save
Step 5 (Optional): Verify API Access
This step is optional but recommended to verify your configuration before connecting to Serval. If you encounter issues connecting, use these methods to troubleshoot.
1
Test with REST API Explorer
- In the navigator, search for “REST API Explorer”
- In the Namespace dropdown, select
now - In the API Name dropdown, select
Table API - Click Send to test a simple query
2
Test with cURL (Optional)
You can also test from the command line:Replace
YOUR_INSTANCE and YOUR_PASSWORD with your actual values.Step 6: Identify Your ServiceNow Instance
Your ServiceNow instance name can be found in your ServiceNow URL:- If your ServiceNow URL is
https://mycompany.service-now.com, then:- Instance Name:
mycompany
- Instance Name:
Serval Configuration
Once you have created the integration user with appropriate permissions, follow these steps to configure the integration in Serval:1
Navigate to ServiceNow App
- In Serval, go to Apps → Available → ServiceNow → Connect
- The ServiceNow configuration form will appear
2
Enter Configuration Details
Fill in the following fields with the information from your ServiceNow setup:
| Field | Description | Example |
|---|---|---|
| Instance Name | Your ServiceNow instance identifier | mycompany |
| Username | The username of your integration user | serval.integration |
| Password | The password for your integration user | your_secure_password |
3
Test the Connection
- Navigate to the API Integration tab
- Click Run on the healthchecks to verify that Serval can successfully authenticate with your ServiceNow instance
Need additional help with your ServiceNow integration? Contact [email protected] for technical assistance or advanced configuration questions.

