ServiceNow
Arcade.dev LLM tools for ServiceNow ITSM
The ServiceNow toolkit connects Arcade to a ServiceNow instance, enabling LLM agents to perform ITSM operations — reading and writing incidents, requests, changes, knowledge articles, catalog items, configuration items, users, and groups — against a live ServiceNow environment.
Capabilities
- Record lifecycle management — create incidents, update any writable field on any work record, add customer-visible comments or internal work notes, and count or search records by type, text, state, priority, assignment, or recency.
- Catalog & ordering — discover catalog items, inspect their mandatory and optional variables, and submit orders; validation against required fields and allowed values happens before anything reaches ServiceNow.
- CMDB & configuration — retrieve configuration items with their upstream and downstream dependency graph; search by name or CMDB class.
- Knowledge base — full-text search across articles the caller is entitled to read; fetch the complete body of a specific article.
- People & group resolution — look up users by name or email and assignment groups by name, for routing, assignment, and contact lookups.
- Identity & diagnostics —
WhoAmIverifies the OAuth identity and active instance, and surfaces the caller'ssys_idfor queue-scoped filters; all read tools return a structured not-found envelope instead of raising, and all write tools surface platform-side side effects (author substitution, ACL rejections, business-rule recalculations, field clears on reopen) in awarningsfield rather than silently failing.
OAuth
This toolkit uses OAuth 2.0 with ServiceNow as the identity provider. Arcade manages the OAuth flow; see the ServiceNow auth provider docs for configuration details.
Secrets
SERVICENOW_INSTANCE_URL — The base URL of the target ServiceNow instance, e.g. https://yourcompany.service-now.com. This is not a credential; it tells the toolkit which instance to call. You find it by logging into your ServiceNow instance: the hostname in the browser address bar is your instance URL. If your organization uses a vanity domain or a sub-production instance (e.g. a developer instance at https://devXXXXXX.service-now.com), use that URL instead. No special permissions are required to retrieve it — it is visible to any authenticated user. Refer to ServiceNow instance documentation for instance naming conventions if needed.
Configure secrets in the Arcade secrets dashboard or via the Arcade config docs at https://docs.arcade.dev/en/guides/create-tools/tool-basics/create-tool-secrets.
Available tools(17)
| Tool name | Description | Secrets | |
|---|---|---|---|
Add a comment or internal work note to a work record.
The note is normally attributed to the authenticated ServiceNow user. Some
instances have a business rule that attributes every journal entry to a
fixed integration/service persona regardless of which OAuth identity made
the write — a structural property of that instance's configuration, not a
per-call fluke. When that happens here, ``warnings`` names the mismatched
author so the discrepancy is visible on every affected write, not just
guessed at afterward. Work notes are internal and visible only to
fulfillers; customer-visible comments are seen by the requestor who opened
the record. | 1 | ||
Open a new incident. Returns the incident number the caller can quote.
The authenticated ServiceNow user is recorded as the caller unless overridden
with ``caller``. A short description is required; every other field is optional. | 1 | ||
Read a catalog item's details and the options required to order it.
Check each variable's ``mandatory`` flag before submitting an order — an
order missing a required variable is rejected before anything is submitted. | 1 | ||
Read a configuration item together with what it depends on and what depends on it.
A missing or unreadable item returns a not-found envelope (``found`` false)
rather than raising. When ``ci_class`` doesn't match this sys_id's real,
more-specific class, the base ``cmdb_ci`` class is tried automatically
before concluding not-found, since every CI is reachable through it
regardless of its specific subtype. | 1 | ||
Read a knowledge article's full body.
A missing article, or one the caller is not entitled to read, returns a
not-found envelope (``found`` false) rather than raising. | 1 | ||
Read a work record together with its full comment and work-note history.
A missing or unreadable identifier returns a not-found envelope (``found``
false) rather than raising, so a stale or guessed identifier can be recovered
within the same turn. When the most recent activity entry's author doesn't
match the authenticated caller, that's reported in ``warnings`` too — some
instances attribute every journal entry to a fixed persona regardless of who
wrote it, so ``author`` in the activity history may not name the true writer. | 1 | ||
Count work records matching a filter, optionally broken down by a field.
The count reflects only work records the authenticated caller can see —
the same visibility every other tool in this toolkit applies. For
sc_request/sc_req_item, text also matches the ordered catalog item's name,
since a request's own short description is otherwise structurally blank. | 1 | ||
Discover the valid choice values for a work-record field on this instance.
Choice lists are instance-customized, so a state or priority filter that
another tool rejected can be corrected by reading the values this returns. | 1 | ||
Order an item from the service catalog. Returns the request number.
Every variable marked mandatory on the item must be present in ``variables``,
or the order is rejected before anything is submitted. A variable with a
non-empty set of configured options is also rejected here before submission
if the supplied value doesn't match one of those options (by value or by
label). | 1 | ||
Find ServiceNow assignment groups by full or partial name, to route work to them. | 1 | ||
Find service catalog items matching a described need. | 1 | ||
Find configuration items (systems) by name, optionally narrowed to a CMDB class. | 1 | ||
Search the knowledge base for articles matching a described problem or topic.
Only articles the caller is entitled to read are returned; a search matching
nothing (including everything the caller cannot read) returns an empty list,
not an error. | 1 | ||
Find work records of one type by text, assignment, state, priority, or recency.
With no filters, returns the caller's most recently updated active records of
that type. A search matching nothing returns an empty list, not an error.
For sc_request/sc_req_item, text also matches the ordered catalog item's name,
since a request's own short description is otherwise structurally blank. | 1 | ||
Find ServiceNow users by name or email, to assign or contact them. | 1 | ||
Change one or more fields on a work record. Fields not specified are left untouched.
A person or team named by ``assigned_to``/``assignment_group``/``caller`` is resolved
to a real ServiceNow record before anything is written; if the name can't be
resolved (no match, or more than one candidate), that field alone is left
unchanged and explained in ``warnings`` rather than raising, while every other
field given in the same call is still written — so it can be retried with just
the corrected name. A field the instance's own business rules recalculate
or reject after the write (e.g.
``priority`` recomputed from ``impact``/``urgency``, or an invalid ``state``)
is also reported in ``warnings`` when the written value didn't stick. A write
the instance's ACLs reject outright (e.g. a 403 tied to the record's current
assignment) is reported in ``warnings`` the same way, instead of raising.
Changing ``state`` away from a resolved/closed state (reopening a record)
without also setting ``close_code``/``close_notes`` in the same call can
clear those fields as a platform side effect; when that happens it is
reported in ``warnings`` too, not left for a separate read to discover.
When more than one field is given and the instance rejects the combined
write atomically (some business rules abort on a specific field
combination), each field is retried on its own so the ones that apply
cleanly still get written instead of the whole call failing silently. | 1 | ||
Return the authenticated ServiceNow user's profile.
Use this to verify the configured instance and OAuth authorization, and to get
the caller's own sys_id for "my queue"-style filters; it is not a required
preamble to the other tools. | 1 |