Skip to main content

ServiceNow

🛎️

ServiceNow

Automate ITSM records, incidents, changes, and catalog requests

The ServiceNow node connects your workflows to a ServiceNow instance through the Table API and Service Catalog API. It performs generic CRUD on any table, and adds purpose-built actions for incidents, change requests, service requests, configuration items (CIs), and catalog item orders. Use it to drive ITSM processes directly from automations.

Common uses include:

  • Creating and updating records in any ServiceNow table.
  • Opening incidents automatically when monitoring detects a problem.
  • Resolving and closing incidents once remediation completes.
  • Raising and closing change requests as part of a controlled workflow.
  • Reading and updating configuration items in the CMDB.
  • Ordering catalog items on behalf of a requester.

Before You Start​

What you may needWhere to set it upWhy it matters
ServiceNow connectionServiceNow ConnectionStores the instance URL, username, and password used to authenticate every action.
Table names, assignment groups, catalog IDsGlobal VariablesKeep ServiceNow values consistent and easy to update across workflows.
A service accountServiceNow adminThe connector authenticates with Basic auth using an instance account.

Connection​

Every ServiceNow action requires a ServiceNow connection, referenced by connectionId. The connection is a ServiceNowConnectionDetails record with these fields:

FieldRequiredDescription
instanceUrlYesInstance base URL (e.g., https://your-instance.service-now.com)
usernameYesInstance account username
passwordYesInstance account password

The connector authenticates with HTTP Basic auth. Table operations use /api/now/table, and catalog orders use /api/sn_sc/servicecatalog/items.

Configure the connection under Connections > ServiceNow in the Global Configurator, then reference it from each step.

Security note — TLS verification is disabled

The ServiceNow connector currently sets insecureSsl=true for all handlers, which disables TLS certificate verification on calls to the instance. This matches the platform's known INSECURE_TLS posture and is flagged for hardening (VAPT). Until it is addressed, connections do not validate the server certificate chain, so treat the transport as untrusted for man-in-the-middle risk. Restrict use to trusted networks and track remediation with the platform team.

How Parameters Are Resolved​

Each action reads its inputs from a configuration key named snow<Action>Details — for example, snowCreateRecordDetails for snow:createRecord.

  • connectionId references the ServiceNow connection.
  • Number-based actions (incidents, change requests, service requests) resolve the target record's sys_id through resolveRecordSysId: a 32-character hex value is used as-is; otherwise the connector looks the record up by its number.
  • HTTP failures surface as ServiceNow API HTTP error (<status>): <body>.

Actions​

ActionDescription
snow:createRecordCreate a record in any table
snow:getRecordRead a record by table and sys_id
snow:updateRecordUpdate a record by table and sys_id
snow:queryRecordsQuery records in a table
snow:createIncidentCreate an incident
snow:updateIncidentUpdate an incident by number
snow:resolveIncidentResolve an incident (state 6)
snow:closeIncidentClose an incident (state 7)
snow:getIncidentRead an incident by number
snow:createChangeRequestCreate a change request
snow:updateChangeRequestUpdate a change request by number
snow:closeChangeRequestClose a change request (state 3)
snow:getChangeRequestRead a change request by number
snow:createServiceRequestCreate a service request
snow:getServiceRequestRead a service request by number
snow:getCIRecordRead a configuration item
snow:updateCIRecordUpdate a configuration item
snow:orderCatalogItemOrder a catalog item

snow:createRecord​

Creates a record in any ServiceNow table.

Parameters

ParameterTypeRequiredDefaultDescription
connectionIdstringYes--Reference to the ServiceNow connection
tableNamestringYes--Target table (e.g., incident, problem, cmdb_ci)
recordDataobjectYes--Field name-value pairs for the new record

snow:getRecord​

Reads a single record by table and sys_id.

Parameters

ParameterTypeRequiredDefaultDescription
connectionIdstringYes--Reference to the ServiceNow connection
tableNamestringYes--Table containing the record
sysIdstringYes--32-character sys_id of the record
fieldsstring or listNoallFields to return

snow:updateRecord​

Updates a record by table and sys_id.

Parameters

ParameterTypeRequiredDefaultDescription
connectionIdstringYes--Reference to the ServiceNow connection
tableNamestringYes--Table containing the record
sysIdstringYes--sys_id of the record to update
recordDataobjectYes--Field name-value pairs to update

snow:queryRecords​

Queries records in a table using an encoded query.

Parameters

ParameterTypeRequiredDefaultDescription
connectionIdstringYes--Reference to the ServiceNow connection
tableNamestringYes--Table to query
querystringNo--Encoded query string (sysparm_query syntax)
fieldsstring or listNoallFields to return per record
limitnumberNo--Maximum records to return
offsetnumberNo--Starting offset for paging

Example: Find active P1 incidents

FieldValue
connectionIdsnow-prod
tableNameincident
queryactive=true^priority=1
limit50

snow:createIncident​

Creates an incident. The short description is required; other fields are optional.

Parameters

ParameterTypeRequiredDefaultDescription
connectionIdstringYes--Reference to the ServiceNow connection
shortDescriptionstringYes--Incident short description
callerstringNo--Caller (user) for the incident
descriptionstringNo--Detailed description
urgencystringNo--Urgency value
impactstringNo--Impact value
categorystringNo--Incident category
assignmentGroupstringNo--Assignment group
assignedTostringNo--Assigned user
additionalFieldsobjectNo--Extra field name-value pairs

snow:updateIncident​

Updates an incident identified by its number.

Parameters

ParameterTypeRequiredDefaultDescription
connectionIdstringYes--Reference to the ServiceNow connection
incidentNumberstringYes--Incident number (e.g., INC0012345)
recordDataobjectYes--Field name-value pairs to update

snow:resolveIncident​

Resolves an incident, setting its state to 6 (Resolved).

Parameters

ParameterTypeRequiredDefaultDescription
connectionIdstringYes--Reference to the ServiceNow connection
incidentNumberstringYes--Incident number
closeCodestringYes--Resolution/close code
closeNotesstringYes--Resolution notes
callerstringNo--Caller associated with the resolution

snow:closeIncident​

Closes an incident, setting its state to 7 (Closed).

Parameters

ParameterTypeRequiredDefaultDescription
connectionIdstringYes--Reference to the ServiceNow connection
incidentNumberstringYes--Incident number
closeNotesstringNo--Close notes

snow:getIncident​

Reads an incident by number.

Parameters

ParameterTypeRequiredDefaultDescription
connectionIdstringYes--Reference to the ServiceNow connection
incidentNumberstringYes--Incident number
fieldsstring or listNoallFields to return

snow:createChangeRequest​

Creates a change request.

Parameters

ParameterTypeRequiredDefaultDescription
connectionIdstringYes--Reference to the ServiceNow connection
shortDescriptionstringYes--Change short description
descriptionstringNo--Detailed description
typestringNo--Change type (e.g., normal, standard, emergency)
prioritystringNo--Priority value
assignmentGroupstringNo--Assignment group
additionalFieldsobjectNo--Extra field name-value pairs

snow:updateChangeRequest​

Updates a change request identified by its number.

Parameters

ParameterTypeRequiredDefaultDescription
connectionIdstringYes--Reference to the ServiceNow connection
changeNumberstringYes--Change request number (e.g., CHG0004567)
recordDataobjectYes--Field name-value pairs to update

snow:closeChangeRequest​

Closes a change request, setting its state to 3 (Closed).

Parameters

ParameterTypeRequiredDefaultDescription
connectionIdstringYes--Reference to the ServiceNow connection
changeNumberstringYes--Change request number
closeCodestringYes--Close code
closeNotesstringNo--Close notes

snow:getChangeRequest​

Reads a change request by number.

Parameters

ParameterTypeRequiredDefaultDescription
connectionIdstringYes--Reference to the ServiceNow connection
changeNumberstringYes--Change request number
fieldsstring or listNoallFields to return

snow:createServiceRequest​

Creates a service request.

Parameters

ParameterTypeRequiredDefaultDescription
connectionIdstringYes--Reference to the ServiceNow connection
shortDescriptionstringYes--Service request short description
descriptionstringNo--Detailed description
prioritystringNo--Priority value
requestedForstringNo--User the request is for
additionalFieldsobjectNo--Extra field name-value pairs

snow:getServiceRequest​

Reads a service request by number.

Parameters

ParameterTypeRequiredDefaultDescription
connectionIdstringYes--Reference to the ServiceNow connection
requestNumberstringYes--Service request number
fieldsstring or listNoallFields to return

snow:getCIRecord​

Reads a configuration item from the CMDB.

Parameters

ParameterTypeRequiredDefaultDescription
connectionIdstringYes--Reference to the ServiceNow connection
ciClassstringYes--CI class/table (e.g., cmdb_ci_server)
sysIdstringYes--sys_id of the configuration item
fieldsstring or listNoallFields to return

snow:updateCIRecord​

Updates a configuration item in the CMDB.

Parameters

ParameterTypeRequiredDefaultDescription
connectionIdstringYes--Reference to the ServiceNow connection
ciClassstringYes--CI class/table
sysIdstringYes--sys_id of the configuration item
recordDataobjectYes--Field name-value pairs to update

snow:orderCatalogItem​

Orders a catalog item through the Service Catalog API (/order_now).

Parameters

ParameterTypeRequiredDefaultDescription
connectionIdstringYes--Reference to the ServiceNow connection
catalogItemIdstringYes--sys_id of the catalog item
requestedForstringNo--User the item is ordered for
variablesobjectNo--Catalog item variable name-value pairs

Example: Order a laptop for a new hire

FieldValue
connectionIdsnow-prod
catalogItemId04b7e94b4f7b4200086eeed18110c7fd
requestedFornew.hire@example.com
variables{"model": "standard-laptop", "os": "windows"}

Output​

Each action returns the relevant ServiceNow response payload. Create, read, and update actions return the affected record's fields; query actions return the matching record set; snow:orderCatalogItem returns the placed request details.


Common Error Scenarios​

ErrorTypeLikely CauseWhat to Check
Missing configurationVALIDATION_ERRORThe snow<Action>Details config map is missing or emptyConfirm the action's parameter block is populated
Required parameter missingVALIDATION_ERRORA required field (e.g., tableName, shortDescription, incidentNumber) is blankProvide all required parameters for the action
Record not foundHTTP error / lookup failureThe number or sys_id does not resolve to a recordVerify the number or sys_id and that the account can read the table
ServiceNow API errorHTTP errorThe instance rejects the request (ACL, bad field, invalid table)The node reports ServiceNow API HTTP error (<status>): <body> — inspect the status and body
Permission deniedHTTP 403The account lacks rights on the table or recordConfirm the service account's roles and ACLs

Best Practices​

  • Address TLS verification. Because the connector runs with insecureSsl=true, use it only on trusted networks and track hardening with the platform team (see the security note above).
  • Use numbers, not sys_ids, for tickets. Incident, change, and service-request actions accept the human-readable number and resolve the sys_id automatically. Reserve raw sys_ids for generic table operations.
  • Set close codes and notes. snow:resolveIncident and snow:closeChangeRequest require close codes and notes — populate them from workflow data so records close cleanly.
  • Query with encoded queries. Use sysparm_query syntax (e.g., active=true^priority=1) and set limit to keep result sets manageable.
  • Store table and group names centrally. Keep table names, assignment groups, and catalog IDs in global variables so workflows stay readable and easy to update.
  • Use additionalFields for the long tail. Pass any table-specific fields not covered by the named parameters through additionalFields or recordData.