ServiceNow integration

ITSM automation: Table API, Aggregate API, Attachment API

Help CentreConnectors

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.

  1. In ServiceNow, ask your admin to create an Integration User.
  2. Grant the user the roles needed – typically itil, rest_api_explorer, plus table-specific roles (incident_manager, change_manager).
  3. Enable Web Service Access Only on the user (no UI login).
  4. In Automize, open Settings → Connectors → ServiceNow → Add connection. Enter instance sub-domain, username + password.
  5. 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.

OperationCategoryWhat it does
Aggregate queryGeneralRun an aggregate query (COUNT, SUM, AVG, MIN, MAX) on a ServiceNow table.
Create recordGeneralCreate a new record in a ServiceNow table.
Delete recordGeneralDelete a ServiceNow record by sys_id.
Get attachmentGeneralGet attachment metadata by sys_id from ServiceNow.
Get recordGeneralGet a single ServiceNow record by sys_id.
Get Table SchemaGeneralGet column definitions for a table
List attachmentsGeneralList attachments for a ServiceNow record.
List TablesGeneralList all tables in the ServiceNow instance
Query recordsGeneralQuery a ServiceNow table with encoded query filters.
Update recordGeneralUpdate a ServiceNow record by sys_id.

Operations

Aggregate query

Run an aggregate query (COUNT, SUM, AVG, MIN, MAX) on a ServiceNow table.

ParameterRequiredTypeDescription
Table name tableYestext
Count sysparm_countNotext
Group by sysparm_group_byNotext
Filter sysparm_queryNotext

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.

ParameterRequiredTypeDescription
Table name tableYestext
Fields (JSON) fieldsYestextarea

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.

ParameterRequiredTypeDescription
Table name tableYestext
Sys ID sys_idYestext

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.

ParameterRequiredTypeDescription
Attachment sys_id sys_idYestext

Get record

Get a single ServiceNow record by sys_id.

ParameterRequiredTypeDescription
Table name tableYestext
Sys ID sys_idYestext

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.

ParameterRequiredTypeDescription
Filter sysparm_queryNotext

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.

ParameterRequiredTypeDescription
Table name tableYestext
Query filter sysparm_queryNotext
Fields sysparm_fieldsNotext
Display values sysparm_display_valueNotext

Update record

Update a ServiceNow record by sys_id.

ParameterRequiredTypeDescription
Table name tableYestext
Sys ID sys_idYestext
Fields (JSON) fieldsYestextarea

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.

Related connectors

See it working on your own data

Everything documented here ships with the platform – try the document tools free, or go live in 7 days.