docs

ServiceNow

Receive ServiceNow ticket events in Plural

A ServiceNow webhook delivers ticket changes from ServiceNow into Plural. ServiceNow has no built-in outbound webhook, so you send records from a Business Rule. Plural accepts records from four tables: incidents (incident), change requests (change_request), problems (problem), and catalog tasks (sc_task). Records from other tables are acknowledged and ignored.

A ticket event does not start a job by itself. A job starts only when a webhook trigger on a workbench matches the ticket.

What Plural reads from the payload

The Business Rule posts the record as JSON:

json
{
  "table": "incident",
  "instance_url": "https://example.service-now.com/",
  "sys_id": "0123456789abcdef0123456789abcdef",
  "number": "INC0010001",
  "short_description": "Checkout is down",
  "description": "500s from the payments service",
  "state": { "value": "2", "display_value": "In Progress" }
}
  • table (or sys_class_name) picks the table. It is required.
  • number becomes the issue ID, falling back to sys_id.
  • short_description and description become the issue title and body.
  • instance_url, table, and sys_id build the link back to the ticket. You can send a url field instead.
  • state sets the issue status. Any field can be a plain value or a {value, display_value} pair, and the payload can be wrapped in {"result": {...}} as the Table API returns it.

Base system state values map as follows. Custom states are mapped from their label, such as "In Progress", "Resolved", or "Canceled". Anything unrecognized is treated as open.

Table
Open
In progress
Completed
Cancelled
incident1 New, 3 On Hold2 In Progress6 Resolved, 7 Closed8 Canceled
problem101 New102–105106 Resolved, 107 Closed
change_request-5 New-4 Assess to 0 Review3 Closed4 Canceled
sc_task1 Open, -5 Pending2 Work in Progress3 Closed Complete4 Closed Incomplete, 7 Closed Skipped

Authentication

Plural accepts either of two headers: