Overview
ServiceNow is the dominant ITSM platform – incidents, changes, problems, service requests. The Automize ServiceNow connector exposes the Table API (CRUD on any table including incident, change_request, problem, cmdb_ci, etc.), Aggregate API for stats, and Attachment API.
- Regions: Each ServiceNow instance has its own sub-domain (yourcompany.service-now.com). Connector hits your instance directly.
- Plans: All ServiceNow instances (Pro, Enterprise, Suite) expose the REST API. Some tables (sn_si_incident – Security Incident Response, sn_hr – HR Service Delivery) need their respective plugins activated.
Setting up the connection
Auth type: HTTP Basic.
- In ServiceNow, ask your admin to create an Integration User.
- Grant the user the roles needed – typically itil, rest_api_explorer, plus table-specific roles (incident_manager, change_manager).
- Enable Web Service Access Only on the user (no UI login).
- In Automize, open Settings → Connectors → ServiceNow → Add connection. Enter instance sub-domain, username + password.
- For OAuth (recommended for production), use the OAuth 2.0 plugin (not currently exposed in this connector).
Find your credentials at https://yourcompany.service-now.com/sys_user.do.
Rate limits
ServiceNow has instance-wide thresholds – varies by plan and instance size. Default ~1,000 req/min/integration. Connector retries 429 with Retry-After. For bulk loads use Aggregate API or import sets.
Data model
Everything is a table:
sys_user (users) ─ assigned to ─ incident (incidents)
│
├─ change_request (changes)
├─ problem (problems)
└─ sc_req_item (catalog items)
cmdb_ci (configuration items) ── linked to incident/change
Sys IDs (32-char hex) are the global PKs. number (INC0001234) is
human-readable. Use either to fetch.Available operations
10 operations available. Click any row to jump to its detail.
| Operation | Category | What it does |
|---|---|---|
| Aggregate query | General | Run an aggregate query (COUNT, SUM, AVG, MIN, MAX) on a ServiceNow table. |
| Create record | General | Create a new record in a ServiceNow table. |
| Delete record | General | Delete a ServiceNow record by sys_id. |
| Get attachment | General | Get attachment metadata by sys_id from ServiceNow. |
| Get record | General | Get a single ServiceNow record by sys_id. |
| Get Table Schema | General | Get column definitions for a table |
| List attachments | General | List attachments for a ServiceNow record. |
| List Tables | General | List all tables in the ServiceNow instance |
| Query records | General | Query a ServiceNow table with encoded query filters. |
| Update record | General | Update a ServiceNow record by sys_id. |
Operations
Aggregate query
Run an aggregate query (COUNT, SUM, AVG, MIN, MAX) on a ServiceNow table.
| Parameter | Required | Type | Description |
|---|---|---|---|
Table name table | Yes | text | |
Count sysparm_count | No | text | |
Group by sysparm_group_by | No | text | |
Filter sysparm_query | No | text |
Tips
- Aggregate API: SUM, COUNT, AVG, MIN, MAX with sysparm_group_by.
- Example – count of active incidents per assignment_group: aggregate(table=incident, sysparm_query=active=true, sysparm_count=true, sysparm_group_by=assignment_group).
Create record
Create a new record in a ServiceNow table.
| Parameter | Required | Type | Description |
|---|---|---|---|
Table name table | Yes | text | |
Fields (JSON) fields | Yes | textarea |
Tips
- table + data (field-value pairs). Returns the new record incl. sys_id + number.
Errors
Required field is empty– The table has fields marked mandatory in dictionary. Check Get Schema (List Fields) for required ones.
Delete record
Delete a ServiceNow record by sys_id.
| Parameter | Required | Type | Description |
|---|---|---|---|
Table name table | Yes | text | |
Sys ID sys_id | Yes | text |
Tips
- Hard-deletes (unless table has soft-delete via state column). Generally avoid via API – most teams archive instead.
Get attachment
Get attachment metadata by sys_id from ServiceNow.
| Parameter | Required | Type | Description |
|---|---|---|---|
Attachment sys_id sys_id | Yes | text |
Get record
Get a single ServiceNow record by sys_id.
| Parameter | Required | Type | Description |
|---|---|---|---|
Table name table | Yes | text | |
Sys ID sys_id | Yes | text |
Tips
- table + sys_id (32-char). Use Get Record by Number for INC-style lookup.
Get Table Schema
Get column definitions for a table
No input parameters.
List attachments
List attachments for a ServiceNow record.
| Parameter | Required | Type | Description |
|---|---|---|---|
Filter sysparm_query | No | text |
Tips
- Attachments on a record. Returns attachment metadata + download_link.
List Tables
List all tables in the ServiceNow instance
No input parameters.
Query records
Query a ServiceNow table with encoded query filters.
| Parameter | Required | Type | Description |
|---|---|---|---|
Table name table | Yes | text | |
Query filter sysparm_query | No | text | |
Fields sysparm_fields | No | text | |
Display values sysparm_display_value | No | text |
Update record
Update a ServiceNow record by sys_id.
| Parameter | Required | Type | Description |
|---|---|---|---|
Table name table | Yes | text | |
Sys ID sys_id | Yes | text | |
Fields (JSON) fields | Yes | textarea |
Tips
- PUT replaces all writable fields. PATCH-style updates require explicit operations not exposed here. Get the record, modify, send back.
FAQ
- Why does my filter not match records that should match?
- Encoded query string format (active=true^priority=1) is finicky. Test in ServiceNow's Filter Navigator first, then copy the encoded query via right-click → Copy URL → Filter.
- Reference fields – how do I set?
- Reference fields (assigned_to, assignment_group, etc.) accept sys_id of the referenced record OR a display value. Sys ID is safer – display values can be ambiguous.
- Sandboxes – multiple connections?
- Sub-prod instances have different sub-domains (yourcompany-dev.service-now.com). Create separate Automize connections for each.
- Why is my user getting 403 on a table I can see in the UI?
- REST API access requires specific roles even if the user can view the table in UI. Add the table's read/write role (e.g. itil for incidents) to the integration user.