ServiceNow
Arcade toolkit · docs.arcade.dev
Arcade's ServiceNow toolkit provides LLM-callable tools for interacting with a ServiceNow ITSM instance — enabling agents to read, create, update, and search across incidents, requests, knowledge, CMDB, and the service catalog.
Capabilities
- Incident & work record management: Create incidents, read full record detail including comment/work-note history, update any writable fields (with per-field retry and warnings on ACL rejections or business-rule overrides), add comments or internal work notes.
- Search & discovery: Find work records by text, assignment, state, priority, or recency; count and break down records by field; look up users and assignment groups for routing; search configuration items by name or CMDB class.
- Service catalog: Search catalog items, read item details and mandatory variable requirements, and place orders with pre-submission validation of required and constrained variables.
- Knowledge base & CMDB: Full-text search of knowledge articles the caller is entitled to read; retrieve individual articles or configuration items with their dependency graph.
- Identity & instance verification:
WhoAmIconfirms the authenticated user profile and returns the caller'ssys_idfor queue-style filters without requiring a separate lookup. - Resilient error surfacing: Across write and read tools, unresolvable lookups, business-rule recalculations, ACL rejections, and author-attribution mismatches are consistently reported in a
warningsfield rather than raised as errors, keeping multi-field operations partially successful and retryable.
Tools17
Servicenow_AddComment
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.
Servicenow_CreateIncident
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.
Servicenow_GetCatalogItem
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.
Servicenow_GetConfigurationItem
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.
Servicenow_GetKnowledgeArticle
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.
Servicenow_GetRecord
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.
Servicenow_GetRecordCounts
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.
Servicenow_GetRecordFieldChoices
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.
Servicenow_OrderCatalogItem
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).
Servicenow_SearchAssignmentGroups
Find ServiceNow assignment groups by full or partial name, to route work to them.
Servicenow_SearchCatalogItems
Find service catalog items matching a described need.
Servicenow_SearchConfigurationItems
Find configuration items (systems) by name, optionally narrowed to a CMDB class.
Servicenow_SearchKnowledgeArticles
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.
Servicenow_SearchRecords
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.
Servicenow_SearchUsers
Find ServiceNow users by name or email, to assign or contact them.
Servicenow_UpdateRecord
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.
Servicenow_WhoAmI
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.