Requirements
- Target platform
- OpenClaw
- Install method
- Manual import
- Extraction
- Extract archive
- Prerequisites
- OpenClaw
- Primary doc
- SKILL.md
Connect your AI agent to ServiceNow — query, create, update, and manage records across any table using the Table API and Stats API. Full CRUD operations, agg...
Connect your AI agent to ServiceNow — query, create, update, and manage records across any table using the Table API and Stats API. Full CRUD operations, agg...
Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.
I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Then review README.md for any prerequisites, environment setup, or post-install checks. Tell me what you changed and call out any manual steps you could not complete.
I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Then review README.md for any prerequisites, environment setup, or post-install checks. Summarize what changed and any follow-up checks I should run.
Query and manage records on any ServiceNow instance via the REST Table API.
Set environment variables for your ServiceNow instance: export SN_INSTANCE="https://yourinstance.service-now.com" export SN_USER="your_username" export SN_PASSWORD="your_password" All tools below use scripts/sn.sh which reads these env vars.
bash scripts/sn.sh query <table> [options] Options: --query "<encoded_query>" — ServiceNow encoded query (e.g. active=true^priority=1) --fields "<field1,field2>" — Comma-separated fields to return --limit <n> — Max records (default 20) --offset <n> — Pagination offset --orderby "<field>" — Sort field (prefix with - for descending) --display <true|false|all> — Display values mode Examples: # List open P1 incidents bash scripts/sn.sh query incident --query "active=true^priority=1" --fields "number,short_description,state,assigned_to" --limit 10 # All users in IT department bash scripts/sn.sh query sys_user --query "department=IT" --fields "user_name,email,name" # Recent change requests bash scripts/sn.sh query change_request --query "sys_created_on>=2024-01-01" --orderby "-sys_created_on" --limit 5
bash scripts/sn.sh get <table> <sys_id> [options] Options: --fields "<field1,field2>" — Fields to return --display <true|false|all> — Display values mode Example: bash scripts/sn.sh get incident abc123def456 --fields "number,short_description,state,assigned_to" --display true
bash scripts/sn.sh create <table> '<json_fields>' Example: bash scripts/sn.sh create incident '{"short_description":"Server down","urgency":"1","impact":"1","assignment_group":"Service Desk"}'
bash scripts/sn.sh update <table> <sys_id> '<json_fields>' Example: bash scripts/sn.sh update incident abc123def456 '{"state":"6","close_code":"Solved (Permanently)","close_notes":"Restarted service"}'
bash scripts/sn.sh delete <table> <sys_id> --confirm The --confirm flag is required to prevent accidental deletions.
bash scripts/sn.sh aggregate <table> --type <TYPE> [options] Types: COUNT, AVG, MIN, MAX, SUM Options: --type <TYPE> — Aggregation type (required) --query "<encoded_query>" — Filter records --field "<field>" — Field to aggregate on (required for AVG/MIN/MAX/SUM) --group-by "<field>" — Group results by field --display <true|false|all> — Display values mode Examples: # Count open incidents by priority bash scripts/sn.sh aggregate incident --type COUNT --query "active=true" --group-by "priority" # Average reassignment count bash scripts/sn.sh aggregate incident --type AVG --field "reassignment_count" --query "active=true"
bash scripts/sn.sh schema <table> [--fields-only] Returns field names, types, max lengths, mandatory flags, reference targets, and choice values. Use --fields-only for a compact field list.
bash scripts/sn.sh batch <table> --query "<encoded_query>" --action <update|delete> [--fields '{"field":"value"}'] [--limit 200] [--confirm] Performs bulk update or delete operations on all records matching a query. Runs in dry-run mode by default — shows how many records match without making changes. Pass --confirm to execute. Options: --query "<encoded_query>" — Filter records to operate on (required) --action <update|delete> — Operation to perform (required) --fields '<json>' — JSON fields to set on each record (required for update) --limit <n> — Max records to affect per run (default 200, safety cap at 10000) --dry-run — Show match count only, no changes (default behavior) --confirm — Actually execute the operation (disables dry-run) Examples: # Dry run: see how many resolved incidents older than 90 days would be affected bash scripts/sn.sh batch incident --query "state=6^sys_updated_on<javascript:gs.daysAgo(90)" --action update # Bulk close resolved incidents (actually execute) bash scripts/sn.sh batch incident --query "state=6^sys_updated_on<javascript:gs.daysAgo(90)" --action update --fields '{"state":"7","close_code":"Solved (Permanently)","close_notes":"Auto-closed by batch"}' --confirm # Dry run: count orphaned test records bash scripts/sn.sh batch u_test_table --query "u_status=abandoned" --action delete # Delete orphaned records (actually execute) bash scripts/sn.sh batch u_test_table --query "u_status=abandoned" --action delete --limit 50 --confirm Output (JSON summary): {"action":"update","table":"incident","matched":47,"processed":47,"failed":0}
bash scripts/sn.sh health [--check <all|version|nodes|jobs|semaphores|stats>] Checks ServiceNow instance health across multiple dimensions. Default is --check all which runs every check. Checks: version — Instance build version, date, and tag from sys_properties nodes — Cluster node status (online/offline) from sys_cluster_state jobs — Stuck/overdue scheduled jobs from sys_trigger (state=ready, next_action > 30 min past) semaphores — Active semaphores (potential locks) from sys_semaphore stats — Quick dashboard: active incidents, open P1s, active changes, open problems Examples: # Full health check bash scripts/sn.sh health # Just check version bash scripts/sn.sh health --check version # Check for stuck jobs bash scripts/sn.sh health --check jobs # Quick incident/change/problem dashboard bash scripts/sn.sh health --check stats Output (JSON): { "instance": "https://yourinstance.service-now.com", "timestamp": "2026-02-16T13:30:00Z", "version": {"build": "...", "build_date": "...", "build_tag": "..."}, "nodes": [{"node_id": "...", "status": "online", "system_id": "..."}], "jobs": {"stuck": 0, "overdue": []}, "semaphores": {"active": 2, "list": []}, "stats": {"incidents_active": 54, "p1_open": 3, "changes_active": 12, "problems_open": 8} }
# List attachments on a record bash scripts/sn.sh attach list <table> <sys_id> # Download an attachment bash scripts/sn.sh attach download <attachment_sys_id> <output_path> # Upload an attachment bash scripts/sn.sh attach upload <table> <sys_id> <file_path> [content_type]
TableDescriptionincidentIncidentschange_requestChange RequestsproblemProblemssc_req_itemRequested Items (RITMs)sc_requestRequestssys_userUserssys_user_groupGroupscmdb_ciConfiguration Itemscmdb_ci_serverServerskb_knowledgeKnowledge ArticlestaskTasks (parent of incident/change/problem)sys_choiceChoice list values
ServiceNow encoded queries use ^ as AND, ^OR as OR: active=true^priority=1 — Active AND P1 active=true^ORactive=false — Active OR inactive short_descriptionLIKEserver — Contains "server" sys_created_on>=2024-01-01 — Created after date assigned_toISEMPTY — Unassigned stateIN1,2,3 — State is 1, 2, or 3 caller_id.name=John Smith — Dot-walk through references
All API calls use Basic Auth via SN_USER / SN_PASSWORD Default result limit is 20 records; use --limit to adjust Use --display true to get human-readable values instead of sys_ids for reference fields The script auto-detects whether SN_INSTANCE includes the protocol prefix
Code helpers, APIs, CLIs, browser automation, testing, and developer operations.
Largest current source with strong distribution and engagement signals.