ServiceNow
Arcade.dev LLM tools for ServiceNow ITSM
Arcade toolkit for ServiceNow ITSM — enables LLM agents to read, search, create, and update records across incidents, requests, catalog items, knowledge articles, configuration items, users, and groups on a ServiceNow instance via the authenticated caller's OAuth identity.
Capabilities
- Record lifecycle: Create and update incidents and work records; add comments or internal work notes with authorship-discrepancy warnings; count records with optional field breakdowns.
- Search and discovery: Full-text and filtered search across work records (incidents, requests, etc.), catalog items, knowledge articles, configuration items, users, and assignment groups.
- Catalog ordering: Look up catalog item details and mandatory variables, then submit orders with validated variable values.
- CMDB and knowledge: Retrieve configuration items with dependency graphs; read full knowledge article bodies; respects per-caller read entitlements throughout.
- Schema introspection: Discover instance-customized choice values for any field (state, priority, etc.) to avoid rejected filters or writes.
- Identity and diagnostics: Resolve the authenticated user's profile and sys_id; surface field-write rejections, ACL blocks, and business-rule side effects in
warningsrather than raising, enabling in-turn recovery.
OAuth
This toolkit uses OAuth 2.0 with ServiceNow as the 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 from your browser's address bar when logged into your instance. No special permissions are required to retrieve it — it is the root URL of the instance you are integrating with. This is not a credential; it tells the toolkit which instance to target.
Configure secrets in the Arcade secrets dashboard and refer to the Arcade secrets guide for how to register them.
Available tools(17)
| Tool name | Description | Secrets | |
|---|---|---|---|
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 | ||
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 | ||
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 | ||
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 | ||
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 |