ServiceNow
Service domainCUSTOMER SUPPORT
Arcade Optimized
Arcade.dev LLM tools for ServiceNow ITSM
17tools
17require secrets
Arcade's ServiceNow toolkit connects LLMs to a ServiceNow ITSM instance, enabling agents to read, search, create, and update incidents, requests, catalog items, knowledge articles, configuration items, and users.
Capabilities
- Record lifecycle — create incidents, add comments or work notes, and update any writable field on any work record type; partial writes succeed gracefully when individual fields are rejected by ACLs or business rules, with explanations surfaced in
warnings. - Search and discovery — full-text and filtered search across incidents/requests/tasks, users, assignment groups, CMDB CIs, knowledge articles, and service catalog items; record counts with optional field-level breakdowns.
- Catalog and CMDB — inspect catalog item variables (including mandatory flags and valid option sets) before ordering; read CI dependency graphs; order items with validated variable payloads.
- Knowledge base — retrieve full article bodies and search articles scoped to what the caller is entitled to read.
- Introspection — resolve valid choice values for any instance-customized field (state, priority, etc.) at runtime; verify auth and retrieve the caller's own sys_id via
WhoAmI. - Transparent error handling — unresolvable names, recalculated fields, ACL rejections, and journal attribution mismatches are reported in structured
warningsrather than raised as exceptions, keeping multi-field operations recoverable within the same turn.
OAuth
Auth is handled via OAuth 2.0 against the ServiceNow provider. See the Arcade ServiceNow auth provider docs for setup instructions.
Secrets
SERVICENOW_INSTANCE_URL— The base URL of your ServiceNow instance (e.g.,https://yourcompany.service-now.com). Obtain it from your ServiceNow administrator or directly from your browser's address bar when logged into your instance. Every API call in this toolkit is routed to this URL, so it must match the instance against which your OAuth credentials are registered. Instances hosted under a custom domain work the same way — use whatever root URL the instance answers on.
Store this secret in the Arcade secrets dashboard and refer to the Arcade secrets configuration docs for how to wire it into your tool configuration.
Available tools(17)
17 of 17 tools
Operations
Behavior
| 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 |
Last updated on