Reference · Tools

ServiceNow

Manage incidents, users, attachments, and table records on ServiceNow instances via the Table API and Attachment API.

Action (binary) Productivity v1 Binary data

The ServiceNow node manages incidents, users, attachments and arbitrary table records through the Table and Attachment APIs, handling binary files in both directions. A typical build is opening an incident from a monitoring alert with the diagnostic log attached.

Node type
Action (binary)
Parameters
45
Outputs
Output, Error
Credentials
ServiceNow

ServiceNow

Manage ServiceNow incidents, users, attachments, and table records

Overview

The ServiceNow tool interacts with ServiceNow REST APIs to manage ITSM data. It supports 10 resources: Attachment (upload, download, delete, list with binary data support), Business Service (list), Configuration Item (list), Department (list), Dictionary (list), Incident (CRUD), Table Record (generic CRUD for any table), User (CRUD with lookup by ID or username), User Group (list), and User Role (list). Attachment operations use binary data: upload reads from the item’s binary property and POSTs raw bytes; download fetches file content and writes to the binary store. Uses Basic Auth with instance subdomain.

Category: Productivity
Tool Name: servicenow
Version: 1

Appearance: Icon: lucide-Headphones | Color: #62D84E

Node Type

Action (Binary) — handles file/binary data operations

Input / Output

DirectionPort(s)
InputInput
OutputOutput, Error

Credentials

This tool requires ServiceNow credentials. See the Credentials Guide for setup instructions.

Resources

ResourceValue
Attachmentattachment
Business ServicebusinessService
Configuration ItemconfigurationItems
Departmentdepartment
Dictionarydictionary
Incidentincident
Table RecordtableRecord
Useruser
User GroupuserGroup
User RoleuserRole

Operations

Attachment (attachment)

OperationValueDescription
UploaduploadUpload an attachment to a specific table record
DeletedeleteDelete an attachment
GetgetGet an attachment
Get ManygetAllGet many attachments on a table

Business Service (businessService)

OperationValueDescription
Get ManygetAllGet many records

Configuration Item (configurationItems)

OperationValueDescription
Get ManygetAllGet many records

Department (department)

OperationValueDescription
Get ManygetAllGet many records

Dictionary (dictionary)

OperationValueDescription
Get ManygetAllGet many records

Incident (incident)

OperationValueDescription
CreatecreateCreate an incident
DeletedeleteDelete an incident
GetgetGet an incident
Get ManygetAllGet many incidents
UpdateupdateUpdate an incident

Table Record (tableRecord)

OperationValueDescription
CreatecreateCreate a table record
DeletedeleteDelete a table record
GetgetGet a table record
Get ManygetAllGet many table records
UpdateupdateUpdate a table record

User (user)

OperationValueDescription
CreatecreateCreate a user
DeletedeleteDelete a user
GetgetGet a user
Get ManygetAllGet many users
UpdateupdateUpdate a user

User Group (userGroup)

OperationValueDescription
Get ManygetAllGet many records

User Role (userRole)

OperationValueDescription
Get ManygetAllGet many records

Parameters

Attachment: Upload

ParameterTypeRequiredDefaultDescription
Table Name (tableName)stringYesName of the ServiceNow table (e.g. incident, sys_user). Use GET /now/doc/table/schema to list tables.
Table Record IDstringYesSys_id of the record to attach the file to
Input Data Field NamestringYesdataName of the binary property that contains the data to upload
Options (uploadOptions)collectionNo{}Extra settings for the upload.
— File Name OverridestringNoOverride the file name for the attachment

Attachment: Delete

ParameterTypeRequiredDefaultDescription
Attachment IDstringYesSys_id value of the attachment

Attachment: Get

ParameterTypeRequiredDefaultDescription
Attachment IDstringYesSys_id value of the attachment
Download AttachmentsbooleanNofalseWhether to download the attachment file content as binary data
Output FieldstringNodataName of the binary property to store the downloaded file (shown when Download Attachments is true)

Attachment: Get Many

ParameterTypeRequiredDefaultDescription
Table Name (tableName)stringYesName of the ServiceNow table (e.g. incident, sys_user). Use GET /now/doc/table/schema to list tables.
Download AttachmentsbooleanNofalseWhether to download the attachment file content as binary data
Output FieldstringNodataName of the binary property to store the downloaded file (shown when Download Attachments is true)
Return All (returnAll)booleanNofalseWhether to return all results or only up to a given limit
Limit (limit)numberNo50Max number of results to return (shown when Return All is false)
Options (attachmentGetOptions)collectionNo{}Extra settings for the listing.
— FilterstringNoAn encoded query string to filter the attachment results

Business Service: Get Many

ParameterTypeRequiredDefaultDescription
Return All (returnAll)booleanNofalseWhether to return all results or only up to a given limit
Limit (limit)numberNo50Max number of results to return (shown when Return All is false)
Options (options)collectionNo{}Query settings applied to the request.
— Exclude Reference LinkbooleanNofalseWhether to exclude Table API links for reference fields
— FieldsstringNoComma-separated list of field names to return
— FilterstringNoEncoded query string to filter results. SECURITY: power-user field — should be a static literal. Never interpolate untrusted upstream values, as ^ and ^OR separators can broaden the query.
— Return ValuesoptionsNofalseChoose which values to return
Options: false (Actual Values), all (Both), true (Display Values)

Configuration Item: Get Many

ParameterTypeRequiredDefaultDescription
Return All (returnAll)booleanNofalseWhether to return all results or only up to a given limit
Limit (limit)numberNo50Max number of results to return (shown when Return All is false)
Options (options)collectionNo{}Query settings applied to the request.
— Exclude Reference LinkbooleanNofalseWhether to exclude Table API links for reference fields
— FieldsstringNoComma-separated list of field names to return
— FilterstringNoEncoded query string to filter results. SECURITY: power-user field — should be a static literal. Never interpolate untrusted upstream values, as ^ and ^OR separators can broaden the query.
— Return ValuesoptionsNofalseChoose which values to return
Options: false (Actual Values), all (Both), true (Display Values)

Department: Get Many

ParameterTypeRequiredDefaultDescription
Return All (returnAll)booleanNofalseWhether to return all results or only up to a given limit
Limit (limit)numberNo50Max number of results to return (shown when Return All is false)
Options (options)collectionNo{}Query settings applied to the request.
— Exclude Reference LinkbooleanNofalseWhether to exclude Table API links for reference fields
— FieldsstringNoComma-separated list of field names to return
— FilterstringNoEncoded query string to filter results. SECURITY: power-user field — should be a static literal. Never interpolate untrusted upstream values, as ^ and ^OR separators can broaden the query.
— Return ValuesoptionsNofalseChoose which values to return
Options: false (Actual Values), all (Both), true (Display Values)

Dictionary: Get Many

ParameterTypeRequiredDefaultDescription
Return All (returnAll)booleanNofalseWhether to return all results or only up to a given limit
Limit (limit)numberNo50Max number of results to return (shown when Return All is false)
Options (options)collectionNo{}Query settings applied to the request.
— Exclude Reference LinkbooleanNofalseWhether to exclude Table API links for reference fields
— FieldsstringNoComma-separated list of field names to return
— FilterstringNoEncoded query string to filter results. SECURITY: power-user field — should be a static literal. Never interpolate untrusted upstream values, as ^ and ^OR separators can broaden the query.
— Return ValuesoptionsNofalseChoose which values to return
Options: false (Actual Values), all (Both), true (Display Values)

Incident: Create

ParameterTypeRequiredDefaultDescription
Short Description (short_description)stringYesShort description of the incident
Additional Fields (additionalFields)collectionNo{}Extra incident fields to set on creation.
— Assigned TostringNoSys_id of the user the incident is assigned to
— Assignment GroupstringNoSys_id of the assignment group
— Business ServicestringNoSys_id of the business service
— Caller IDstringNoSys_id of the caller
— CategorystringNoCategory of the incident (use GET /now/table/sys_choice?element=category&name=incident to list)
— Close NotesstringNoClose notes for the incident
— Configuration ItemsstringNoSys_id of the configuration item (cmdb_ci)
— Contact TypeoptionsNoHow the incident was reported.
Options: email, phone, self-service, walk-in
— DescriptionstringNoFull description of the incident
— ImpactoptionsNo1Impact level of the incident
Options: 1 (High), 2 (Medium), 3 (Low)
— Resolution CodestringNoResolution code (close_code) for the incident
— StatestringNoState of the incident (use GET /now/table/sys_choice?element=state&name=incident to list)
— SubcategorystringNoSubcategory of the incident
— UrgencyoptionsNo1Urgency level of the incident
Options: 1 (High), 2 (Medium), 3 (Low)

Incident: Delete

ParameterTypeRequiredDefaultDescription
Incident IDstringYesSys_id of the incident

Incident: Get

ParameterTypeRequiredDefaultDescription
Incident IDstringYesSys_id of the incident
Options (options)collectionNo{}Query settings applied to the request.
— Exclude Reference LinkbooleanNofalseWhether to exclude Table API links for reference fields
— FieldsstringNoComma-separated list of field names to return
— FilterstringNoEncoded query string to filter results (ServiceNow query syntax). SECURITY: power-user field — should be a static literal. Never interpolate untrusted upstream values, as ^ and ^OR separators can broaden the query.
— Return ValuesoptionsNofalseChoose which values to return
Options: false (Actual Values), all (Both), true (Display Values)

Incident: Get Many

ParameterTypeRequiredDefaultDescription
Return All (returnAll)booleanNofalseWhether to return all results or only up to a given limit
Limit (limit)numberNo50Max number of results to return (shown when Return All is false)
Options (options)collectionNo{}Query settings applied to the request.
— Exclude Reference LinkbooleanNofalseWhether to exclude Table API links for reference fields
— FieldsstringNoComma-separated list of field names to return
— FilterstringNoEncoded query string to filter results (ServiceNow query syntax). SECURITY: power-user field — should be a static literal. Never interpolate untrusted upstream values, as ^ and ^OR separators can broaden the query.
— Return ValuesoptionsNofalseChoose which values to return
Options: false (Actual Values), all (Both), true (Display Values)

Incident: Update

ParameterTypeRequiredDefaultDescription
Incident IDstringYesSys_id of the incident
Update Fields (updateFields)collectionNo{}The incident fields to change. Fields you leave out keep their current value.
— Assigned TostringNoSys_id of the user the incident is assigned to
— Assignment GroupstringNoSys_id of the assignment group
— Business ServicestringNoSys_id of the business service
— Caller IDstringNoSys_id of the caller
— CategorystringNoCategory of the incident
— Close NotesstringNoClose notes for the incident
— Configuration ItemsstringNoSys_id of the configuration item
— Contact TypeoptionsNoHow the incident was reported.
Options: email, phone, self-service, walk-in
— DescriptionstringNoFull description of the incident
— ImpactoptionsNo1Impact level of the incident
Options: 1 (High), 2 (Medium), 3 (Low)
— On Hold ReasonstringNoReason for holding the incident (applies when state is On Hold)
— Resolution CodestringNoResolution code (close_code) for the incident
— StatestringNoState of the incident
— SubcategorystringNoSubcategory of the incident
— UrgencyoptionsNo1Urgency level of the incident
Options: 1 (High), 2 (Medium), 3 (Low)
— Work NotesstringNoWork notes for the incident

Table Record: Create

ParameterTypeRequiredDefaultDescription
Table Name (tableName)stringYesName of the ServiceNow table (e.g. incident, sys_user, cmdb_ci). Use GET /now/doc/table/schema to list all tables.
Data to SendoptionsNocolumnsWhere the column values come from.
Options: mapInput (use when input field names match ServiceNow column names), columns (set the value for each column manually), nothing (do not send any column data)
Inputs to IgnorestringNoComma-separated list of input properties to exclude from auto-mapping (shown when Data to Send is mapInput)
Fields to SendjsonNo{}JSON object mapping column names to values, e.g. {“short_description”: “Test”, “priority”: “1”} (shown when Data to Send is columns)

Table Record: Delete

ParameterTypeRequiredDefaultDescription
Table Name (tableName)stringYesName of the ServiceNow table (e.g. incident, sys_user, cmdb_ci). Use GET /now/doc/table/schema to list all tables.
Record IDstringYesSys_id of the record

Table Record: Get

ParameterTypeRequiredDefaultDescription
Table Name (tableName)stringYesName of the ServiceNow table (e.g. incident, sys_user, cmdb_ci). Use GET /now/doc/table/schema to list all tables.
Record IDstringYesSys_id of the record
Options (options)collectionNo{}Query settings applied to the request.
— Exclude Reference LinkbooleanNofalseWhether to exclude Table API links for reference fields
— FieldsstringNoComma-separated list of field names to return
— FilterstringNoEncoded query string to filter results. SECURITY: power-user field — should be a static literal. Never interpolate untrusted upstream values, as ^ and ^OR separators can broaden the query.
— Return ValuesoptionsNofalseChoose which values to return
Options: false (Actual Values), all (Both), true (Display Values)

Table Record: Get Many

ParameterTypeRequiredDefaultDescription
Table Name (tableName)stringYesName of the ServiceNow table (e.g. incident, sys_user, cmdb_ci). Use GET /now/doc/table/schema to list all tables.
Return All (returnAll)booleanNofalseWhether to return all results or only up to a given limit
Limit (limit)numberNo50Max number of results to return (shown when Return All is false)
Options (options)collectionNo{}Query settings applied to the request.
— Exclude Reference LinkbooleanNofalseWhether to exclude Table API links for reference fields
— FieldsstringNoComma-separated list of field names to return
— FilterstringNoEncoded query string to filter results. SECURITY: power-user field — should be a static literal. Never interpolate untrusted upstream values, as ^ and ^OR separators can broaden the query.
— Return ValuesoptionsNofalseChoose which values to return
Options: false (Actual Values), all (Both), true (Display Values)

Table Record: Update

ParameterTypeRequiredDefaultDescription
Table Name (tableName)stringYesName of the ServiceNow table (e.g. incident, sys_user, cmdb_ci). Use GET /now/doc/table/schema to list all tables.
Record IDstringYesSys_id of the record
Data to SendoptionsNocolumnsWhere the column values come from.
Options: mapInput (use when input field names match ServiceNow column names), columns (set the value for each column manually), nothing (do not send any column data)
Inputs to IgnorestringNoComma-separated list of input properties to exclude from auto-mapping (shown when Data to Send is mapInput)
Fields to SendjsonNo{}JSON object mapping column names to values, e.g. {“short_description”: “Test”, “priority”: “1”} (shown when Data to Send is columns)

User: Create

ParameterTypeRequiredDefaultDescription
Short Description (short_description)stringYesShort description of the user
Additional Fields (additionalFields)collectionNo{}Extra user fields to set on creation.
— ActivebooleanNofalseWhether to activate the user
— BuildingstringNoThe user’s building.
— CitystringNoThe user’s city.
— CompanystringNoThe user’s company.
— CountrystringNoThe user’s country.
— DepartmentstringNoThe user’s department.
— EmailstringNoThe user’s email address.
— First NamestringNoThe user’s first name.
— GenderstringNoThe user’s gender.
— Home PhonestringNoThe user’s home phone number.
— Last NamestringNoThe user’s last name.
— LocationstringNoThe user’s location.
— ManagerstringNoThe user’s manager.
— Middle NamestringNoThe user’s middle name.
— Mobile PhonestringNoThe user’s mobile phone number.
— PasswordstringNoThe user’s password.
— Password Needs ResetbooleanNofalseWhether the password is flagged as needing a reset.
— PhonestringNoThe user’s phone number.
— RolesstringNoComma-separated sys_ids of user roles
— SourcestringNoThe source recorded on the user record.
— StatestringNoThe user’s state.
— StreetstringNoThe user’s street address.
— UsernamestringNoThe user’s username.
— Zip CodestringNoThe user’s ZIP or postal code.

User: Delete

ParameterTypeRequiredDefaultDescription
User ID (id)stringYesSys_id of the user

User: Get

ParameterTypeRequiredDefaultDescription
Retrieve ByoptionsNoidWhether to retrieve the user by sys_id or username
Options: id, user_name
User ID (id)stringYesSys_id of the user (shown when Retrieve By is id)
UsernamestringYesUsername to look up (shown when Retrieve By is user_name)
Options (options)collectionNo{}Query settings applied to the request.
— Exclude Reference LinkbooleanNofalseWhether to exclude Table API links for reference fields
— FieldsstringNoComma-separated list of field names to return
— FilterstringNoEncoded query string to filter results. SECURITY: power-user field — should be a static literal. Never interpolate untrusted upstream values, as ^ and ^OR separators can broaden the query.
— Return ValuesoptionsNofalseChoose which values to return
Options: false (Actual Values), all (Both), true (Display Values)

User: Get Many

ParameterTypeRequiredDefaultDescription
Return All (returnAll)booleanNofalseWhether to return all results or only up to a given limit
Limit (limit)numberNo50Max number of results to return (shown when Return All is false)
Options (options)collectionNo{}Query settings applied to the request.
— Exclude Reference LinkbooleanNofalseWhether to exclude Table API links for reference fields
— FieldsstringNoComma-separated list of field names to return
— FilterstringNoEncoded query string to filter results. SECURITY: power-user field — should be a static literal. Never interpolate untrusted upstream values, as ^ and ^OR separators can broaden the query.
— Return ValuesoptionsNofalseChoose which values to return
Options: false (Actual Values), all (Both), true (Display Values)

User: Update

ParameterTypeRequiredDefaultDescription
User ID (id)stringYesSys_id of the user
Update Fields (updateFields)collectionNo{}The user fields to change. Fields you leave out keep their current value.
— ActivebooleanNofalseWhether the user is active.
— BuildingstringNoThe user’s building.
— CitystringNoThe user’s city.
— CompanystringNoThe user’s company.
— CountrystringNoThe user’s country.
— DepartmentstringNoThe user’s department.
— EmailstringNoThe user’s email address.
— First NamestringNoThe user’s first name.
— GenderstringNoThe user’s gender.
— Home PhonestringNoThe user’s home phone number.
— Last NamestringNoThe user’s last name.
— LocationstringNoThe user’s location.
— ManagerstringNoThe user’s manager.
— Middle NamestringNoThe user’s middle name.
— Mobile PhonestringNoThe user’s mobile phone number.
— PasswordstringNoThe user’s password.
— Password Needs ResetbooleanNofalseWhether the password is flagged as needing a reset.
— PhonestringNoThe user’s phone number.
— RolesstringNoComma-separated sys_ids of user roles
— SourcestringNoThe source recorded on the user record.
— StatestringNoThe user’s state.
— StreetstringNoThe user’s street address.
— UsernamestringNoThe user’s username.
— Zip CodestringNoThe user’s ZIP or postal code.

User Group: Get Many

ParameterTypeRequiredDefaultDescription
Return All (returnAll)booleanNofalseWhether to return all results or only up to a given limit
Limit (limit)numberNo50Max number of results to return (shown when Return All is false)
Options (options)collectionNo{}Query settings applied to the request.
— Exclude Reference LinkbooleanNofalseWhether to exclude Table API links for reference fields
— FieldsstringNoComma-separated list of field names to return
— FilterstringNoEncoded query string to filter results. SECURITY: power-user field — should be a static literal. Never interpolate untrusted upstream values, as ^ and ^OR separators can broaden the query.
— Return ValuesoptionsNofalseChoose which values to return
Options: false (Actual Values), all (Both), true (Display Values)

User Role: Get Many

ParameterTypeRequiredDefaultDescription
Return All (returnAll)booleanNofalseWhether to return all results or only up to a given limit
Limit (limit)numberNo50Max number of results to return (shown when Return All is false)
Options (options)collectionNo{}Query settings applied to the request.
— Exclude Reference LinkbooleanNofalseWhether to exclude Table API links for reference fields
— FieldsstringNoComma-separated list of field names to return
— FilterstringNoEncoded query string to filter results. SECURITY: power-user field — should be a static literal. Never interpolate untrusted upstream values, as ^ and ^OR separators can broaden the query.
— Return ValuesoptionsNofalseChoose which values to return
Options: false (Actual Values), all (Both), true (Display Values)

All Operations

ParameterTypeRequiredDefaultDescription
Max ConcurrencynumberNo10Maximum number of items to process concurrently.

Output Data

ServiceNow wraps every Table API response in a result envelope; this node unwraps it before writing anything to the item. On single-record operations the record’s own fields are merged into the item JSON at the top level, so the rest of the incoming item passes through unchanged and you address record fields directly — {{ $json.sys_id }}, not {{ $json.result.sys_id }}. Binary data on the input item is always forwarded, and a downloaded attachment is added alongside it.

These operations fan out — one output item per record returned:

  • Attachment: Get Many
  • Incident: Get Many
  • Table Record: Get Many
  • User: Get Many
  • Business Service: Get Many, Configuration Item: Get Many, Department: Get Many, Dictionary: Get Many, User Group: Get Many, User Role: Get Many

Each fanned-out item is the input item’s JSON with one record merged over it. When the query matches nothing the node still emits one item so the branch does not go silent: Attachment: Get Many emits the input item with attachments: [], and every other listing operation emits it with results: []. Check for that key before assuming a record is present.

Every other operation produces exactly one output item:

OperationsWhat lands on the item
Attachment: Upload, Incident: Create, Incident: Get, Incident: Update, Table Record: Create, Table Record: Get, Table Record: Update, User: Create, User: UpdateThe record’s own fields, merged in at the top level.
Attachment: GetThe attachment’s metadata fields, merged in at the top level. With Download Attachments on, the file content is written to the binary property named by Output Field.
User: GetThe single matching user record’s fields. A username lookup returns the first match only.
Attachment: Delete, Incident: Delete, Table Record: Delete, User: Deletesuccess: true. Delete calls return no record.

If a response ever arrives as something other than an object, it lands under result instead.

Reference the result downstream by expression, e.g. {{ $json.sys_id }}.

Usage Examples

  • Create a new incident in ServiceNow
  • Upload a file attachment to a ServiceNow record
  • Download attachments from a ServiceNow incident
  • List all incidents matching a filter query
  • Update incident status and assignment
  • Create a new user in ServiceNow
  • Query any ServiceNow table with generic Table Record operations

Example Configuration

Attach a file held on the item to an incident record:

{
  "type": "servicenow",
  "parameters": {
    "resource": "attachment",
    "operation": "upload",
    "tableName": "incident",
    "id": "abc123def4567890abc123def4567890",
    "inputDataFieldName": "fileData",
    "uploadOptions": {
      "file_name": "error_log.txt"
    }
  }
}

List the attachments on the incident table and download each file:

{
  "type": "servicenow",
  "parameters": {
    "resource": "attachment",
    "operation": "getAll",
    "tableName": "incident",
    "returnAll": false,
    "limit": 50,
    "download": true,
    "outputField": "downloadedFile",
    "attachmentGetOptions": {
      "queryFilter": "table_name=incident"
    }
  }
}

Delete an attachment by its sys_id:

{
  "type": "servicenow",
  "parameters": {
    "resource": "attachment",
    "operation": "delete",
    "attachmentId": "xyz789abc1230000xyz789abc1230000"
  }
}

Raise a high-impact incident:

{
  "type": "servicenow",
  "parameters": {
    "resource": "incident",
    "operation": "create",
    "short_description": "Server outage affecting production",
    "additionalFields": {
      "description": "Production server went down at 2:00 PM EST",
      "urgency": 1,
      "impact": 1,
      "category": "Hardware",
      "assigned_to": "62826bf03710200044e0bfc8bcbe5df1",
      "caller_id": "681ccaf9c0a8016400b98a06818d57c7"
    }
  }
}

Resolve an incident and record the close notes:

{
  "type": "servicenow",
  "parameters": {
    "resource": "incident",
    "operation": "update",
    "id": "abc123def4567890abc123def4567890",
    "updateFields": {
      "state": "6",
      "close_code": "Solved (Permanently)",
      "close_notes": "Issue resolved by restarting server",
      "work_notes": "Server restart completed successfully"
    }
  }
}

Read a page of active priority-1 incidents, returning display values for a few fields only:

{
  "type": "servicenow",
  "parameters": {
    "resource": "incident",
    "operation": "getAll",
    "returnAll": false,
    "limit": 100,
    "options": {
      "sysparm_query": "active=true^priority=1",
      "sysparm_fields": "number,short_description,priority,state",
      "sysparm_display_value": "true"
    }
  }
}

Create a CMDB record straight from the incoming item’s fields:

{
  "type": "servicenow",
  "parameters": {
    "resource": "tableRecord",
    "operation": "create",
    "tableName": "cmdb_ci_server",
    "dataToSend": "mapInput",
    "inputsToIgnore": "internal_id,timestamp"
  }
}

Create the same record with the columns spelled out:

{
  "type": "servicenow",
  "parameters": {
    "resource": "tableRecord",
    "operation": "create",
    "tableName": "cmdb_ci_server",
    "dataToSend": "columns",
    "fieldsToSend": {
      "name": "PROD-WEB-01",
      "ip_address": "192.168.1.100",
      "operating_system": "Linux",
      "environment": "Production"
    }
  }
}

Query any table with an encoded query:

{
  "type": "servicenow",
  "parameters": {
    "resource": "tableRecord",
    "operation": "getAll",
    "tableName": "sys_user",
    "returnAll": false,
    "limit": 50,
    "options": {
      "sysparm_query": "active=true^department=IT",
      "sysparm_fields": "user_name,first_name,last_name,email",
      "sysparm_exclude_reference_link": true
    }
  }
}

Create a user:

{
  "type": "servicenow",
  "parameters": {
    "resource": "user",
    "operation": "create",
    "short_description": "New employee - Software Developer",
    "additionalFields": {
      "user_name": "john.developer",
      "first_name": "John",
      "last_name": "Developer",
      "email": "john.developer@company.com",
      "active": true,
      "department": "IT",
      "roles": "itil,admin"
    }
  }
}

Look a user up by username instead of sys_id:

{
  "type": "servicenow",
  "parameters": {
    "resource": "user",
    "operation": "get",
    "getOption": "user_name",
    "user_name": "john.developer",
    "options": {
      "sysparm_fields": "sys_id,user_name,first_name,last_name,email,active"
    }
  }
}

Move a user to another department and deactivate them:

{
  "type": "servicenow",
  "parameters": {
    "resource": "user",
    "operation": "update",
    "id": "abc123def4567890abc123def4567890",
    "updateFields": {
      "department": "Engineering",
      "manager": "mary.manager",
      "active": false
    }
  }
}

List every business service:

{
  "type": "servicenow",
  "parameters": {
    "resource": "businessService",
    "operation": "getAll",
    "returnAll": true,
    "options": {
      "sysparm_fields": "name,description,business_criticality",
      "sysparm_display_value": "true"
    }
  }
}

List installed configuration items:

{
  "type": "servicenow",
  "parameters": {
    "resource": "configurationItems",
    "operation": "getAll",
    "returnAll": false,
    "limit": 200,
    "options": {
      "sysparm_query": "install_status=1",
      "sysparm_fields": "name,sys_class_name,ip_address,environment"
    }
  }
}

Open an incident from an upstream item, then — in a second node — assign it using the sys_id the first node merged onto the item:

{
  "type": "servicenow",
  "parameters": {
    "resource": "incident",
    "operation": "create",
    "short_description": "{{ $json.issue_title }}",
    "additionalFields": {
      "description": "{{ $json.issue_description }}",
      "urgency": 2,
      "impact": 2,
      "caller_id": "{{ $json.reporter_sys_id }}"
    }
  }
}
{
  "type": "servicenow",
  "parameters": {
    "resource": "incident",
    "operation": "update",
    "id": "{{ $json.sys_id }}",
    "updateFields": {
      "assigned_to": "{{ $json.assigned_user }}",
      "work_notes": "Ticket assigned to technician"
    }
  }
}

Find users who signed in recently:

{
  "type": "servicenow",
  "parameters": {
    "resource": "user",
    "operation": "getAll",
    "returnAll": false,
    "limit": 100,
    "options": {
      "sysparm_query": "active=true^last_login_time>javascript:gs.daysAgoEnd(30)",
      "sysparm_fields": "user_name,first_name,last_name,last_login_time",
      "sysparm_display_value": "true"
    }
  }
}

Error Handling

ModeBehavior
stopHalts workflow on first error
continueSkips failed items, passes successful ones through
errorPortRoutes failed items to Error output port

Tips

Manage ServiceNow incidents, users, attachments, and table records with binary file upload and download support.

Key Configuration Tips

  1. Resource Selection: Always start by selecting the appropriate resource type
  2. Operation Dependencies: The available operations depend on the selected resource
  3. Required vs Optional: Some parameters become required based on operation selection
  4. Collection Structure: Use flat objects for collection parameters, never arrays or _default wrappers
  5. Query Syntax: Use ServiceNow’s encoded query syntax for filtering results
  6. Display Values: Use sysparm_display_value to control whether you get raw values or display values
  7. Field Selection: Use sysparm_fields to limit returned data and improve performance
  8. Pagination: Use returnAll: false with limit for better performance on large datasets

Frequently asked questions

Can it work with tables beyond incidents?

Yes — the Table API resource reaches arbitrary tables, which matters because most ServiceNow instances carry custom tables specific to that organisation.

How do I attach a file to a record?

Through the attachment resource, which uploads binary data from the incoming item against the record you specify.

Why do the available operations change?

They depend on the selected resource, and some parameters only become required once a particular operation is chosen — so pick the resource first.

Which credential does it need?

A ServiceNow credential for the instance you are managing.

Build with the ServiceNow node

Drop it into a workflow, wire it to an agent, or call it on a schedule. You'll need ServiceNow credentials first.

Open BusyBot

Last updated . Spotted something wrong? Tell us.