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:
{
"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(orsys_class_name) picks the table. It is required.numberbecomes the issue ID, falling back tosys_id.short_descriptionanddescriptionbecome the issue title and body.instance_url,table, andsys_idbuild the link back to the ticket. You can send aurlfield instead.statesets 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 |
|---|---|---|---|---|
incident | 1 New, 3 On Hold | 2 In Progress | 6 Resolved, 7 Closed | 8 Canceled |
problem | 101 New | 102–105 | 106 Resolved, 107 Closed | |
change_request | -5 New | -4 Assess to 0 Review | 3 Closed | 4 Canceled |
sc_task | 1 Open, -5 Pending | 2 Work in Progress | 3 Closed Complete | 4 Closed Incomplete, 7 Closed Skipped |
Authentication
Plural accepts either of two headers: