Skip to main content
Version: 3.0 (next)

ServiceNow Nodes

Open, update, read and find ServiceNow records from your pipelines.

Needs
A ServiceNow connection (basic or OAuth 2.0)
Operations
Create · Update · Get · Query records
Output
The record, its sys_id and number

Each ServiceNow operation is its own node, under Notifications in the node palette. A node runs a saved function of its operation on a ServiceNow connection.

Configuration Quick Reference​

FieldWhat you chooseDetails
ParametersConnection, Function, Function Parameters, Timeout OverrideSelect the connection, the function, fill its ((parameters)) from upstream data, and optionally override the timeout.
SettingsDescription, Timeout, Retry on Timeout, Retry on Fail, On ErrorNode description, maximum execution time, retry behaviour and error handling. All default to the pipeline's values.
ServiceNow Create Record nodeServiceNow Create Record node

ServiceNow Create Record Node

ServiceNow Create Record Node​

Creates one record in a table, an incident by default, from the function's JSON field map. The Table API has no idempotency key, so a create sent twice opens two records: the connector never resends one by itself. With store-and-forward on, a create whose outcome is unknown is sent again when the link returns; a late input older than the node's maximum age is not.

Output

{
"result": {
"table": "incident",
"sysId": "46d44a5ea9fe198101e0c2b6a0e9b0f7",
"number": "INC0010042",
"record": { "sys_id": "46d44a5ea9fe198101e0c2b6a0e9b0f7", "number": "INC0010042", "short_description": "Press 7 stopped", "state": "1" },
"ignoredFields": []
}
}
ExpressionDescription
$node["Name"].result.tableThe table the record is in
$node["Name"].result.sysIdThe new record's sys_id: pass it to an Update Record or Get Record node. Empty only when ServiceNow answered 201 with a body that could not be read (the record exists; _metadata.warning says so)
$node["Name"].result.numberThe record's number, e.g. INC0010042; empty for a table without numbers
$node["Name"].result.recordThe record as ServiceNow stored it, one key per field
$node["Name"].result.ignoredFieldsSubmitted field names ServiceNow did not return: not columns of the table, so they were dropped without an error. Empty when every field landed

ServiceNow Update Record Node​

Changes fields of one record by sys_id. Setting fields to fixed values lands the same when repeated; a work_notes or comments value adds a note every time.

Output: the same keys as Create Record: result.table, result.sysId, result.number, result.record (the record after the update) and result.ignoredFields.

ServiceNow Get Record Node​

Reads one record by sys_id.

ExpressionDescription
$node["Name"].result.tableThe table the record is in
$node["Name"].result.sysIdThe record's sys_id; empty when the function's Return Fields leave sys_id out
$node["Name"].result.recordThe record, one key per field (only the Return Fields when set). With Display Values all, each field is {"value": …, "display_value": …}

ServiceNow Query Records Node​

Finds records matching the function's encoded query, at most its limit. The limit is sent to ServiceNow; nothing past it is fetched.

ExpressionDescription
$node["Name"].result.tableThe table queried
$node["Name"].result.recordsThe matching records, at most the limit, in ServiceNow's order or the function's Order By
$node["Name"].result.countHow many records came back
$node["Name"].result.totalCountHow many records match the query in all (ServiceNow's X-Total-Count), which can exceed count; -1 when ServiceNow did not say

Metadata​

Every node also carries _metadata: the shared execution facts (success, functionId, durationMs, timestamp) and the call's own: _metadata.method (the operation), _metadata.connectionId, _metadata.protocol (servicenow) and _metadata.message, a one-line note such as "Created incident INC0010042". Query Records adds _metadata.pages, the number of requests it took.

Failures​

A refused request fails the node with ServiceNow's own message: 400, 401, 403 and 404 are refusals that the same request would meet again, so Retry on Fail does not help. 429, 5xx, a network failure and a hibernating developer instance are temporary. Bad parameters (a malformed sys_id, field JSON that is not an object, a limit outside 1 to 10000) fail the node before anything is sent.