skills/fsm/work-order-summarization/SKILL.md
Summarize field service work orders with tasks, SLAs, asset information, travel logistics, and parts requirements for dispatch coordinators and field technicians
npx skillsauth add happy-technologies-llc/happy-servicenow-skills work-order-summarizationInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
This skill provides a structured approach to generating comprehensive summaries of Field Service Management (FSM) work orders in ServiceNow. It consolidates all relevant work order data into a concise briefing suitable for dispatch coordinators, field technicians, and service managers.
Key capabilities:
When to use: When a dispatch coordinator needs to brief a field technician, when a service manager reviews work order backlogs, or when preparing shift handover documentation for field operations.
wm_initiator, wm_dispatcher, wm_agent, or wm_adminwm_order, wm_task, alm_asset, cmdb_ci, sla_condition_check, sys_journal_field, and wm_parts_request tablesFetch the primary work order record with all scheduling, location, and classification fields.
Using MCP:
Tool: SN-Read-Record
Parameters:
table_name: wm_order
sys_id: [WORK_ORDER_SYS_ID]
fields: sys_id,number,short_description,description,state,priority,urgency,impact,category,subcategory,caller_id,company,location,assigned_to,assignment_group,opened_at,scheduled_start,scheduled_end,actual_start,actual_end,follow_up,sla_due,cmdb_ci,asset,contact_type,work_notes_list
If you only have the work order number, search first:
Tool: SN-Query-Table
Parameters:
table_name: wm_order
query: number=WO0012345
fields: sys_id,number,short_description,description,state,priority,urgency,impact,category,subcategory,caller_id,company,location,assigned_to,assignment_group,opened_at,scheduled_start,scheduled_end,actual_start,actual_end,sla_due,cmdb_ci,asset
limit: 1
Using REST API:
GET /api/now/table/wm_order?sysparm_query=number=WO0012345&sysparm_fields=sys_id,number,short_description,description,state,priority,urgency,impact,category,subcategory,caller_id,company,location,assigned_to,assignment_group,opened_at,scheduled_start,scheduled_end,actual_start,actual_end,sla_due,cmdb_ci,asset&sysparm_limit=1&sysparm_display_value=true
Pull all tasks linked to the work order to understand the scope of work.
Using MCP:
Tool: SN-Query-Table
Parameters:
table_name: wm_task
query: work_order=[WORK_ORDER_SYS_ID]^ORDERBYorder
fields: sys_id,number,short_description,state,priority,assigned_to,assignment_group,scheduled_start,scheduled_end,actual_start,actual_end,estimated_travel_duration,actual_travel_duration,estimated_work_duration,actual_work_duration,location,cmdb_ci,asset,sequence
limit: 50
Using REST API:
GET /api/now/table/wm_task?sysparm_query=work_order=[WORK_ORDER_SYS_ID]^ORDERBYorder&sysparm_fields=sys_id,number,short_description,state,priority,assigned_to,assignment_group,scheduled_start,scheduled_end,actual_start,actual_end,estimated_travel_duration,actual_travel_duration,estimated_work_duration,actual_work_duration,location,cmdb_ci,asset,sequence&sysparm_limit=50&sysparm_display_value=true
Assess SLA conditions attached to the work order and identify any at-risk or breached SLAs.
Using MCP:
Tool: SN-Query-Table
Parameters:
table_name: task_sla
query: task=[WORK_ORDER_SYS_ID]
fields: sys_id,sla,stage,has_breached,planned_end_time,percentage,business_percentage,pause_duration,pause_time
limit: 10
Using REST API:
GET /api/now/table/task_sla?sysparm_query=task=[WORK_ORDER_SYS_ID]&sysparm_fields=sys_id,sla,stage,has_breached,planned_end_time,percentage,business_percentage,pause_duration&sysparm_limit=10&sysparm_display_value=true
Get details about the asset being serviced and its configuration item record.
Using MCP:
Tool: SN-Query-Table
Parameters:
table_name: alm_asset
query: sys_id=[ASSET_SYS_ID]
fields: sys_id,display_name,asset_tag,serial_number,model,model_category,install_status,location,assigned_to,warranty_expiration,purchase_date,cost,vendor,ci
limit: 1
Tool: SN-Query-Table
Parameters:
table_name: cmdb_ci
query: sys_id=[CMDB_CI_SYS_ID]
fields: sys_id,name,sys_class_name,location,install_status,operational_status,manufacturer,model_id,serial_number,asset_tag,support_group,maintenance_schedule
limit: 1
Using REST API:
GET /api/now/table/alm_asset/{ASSET_SYS_ID}?sysparm_fields=sys_id,display_name,asset_tag,serial_number,model,model_category,install_status,location,warranty_expiration,purchase_date,vendor,ci&sysparm_display_value=true
GET /api/now/table/cmdb_ci/{CMDB_CI_SYS_ID}?sysparm_fields=sys_id,name,sys_class_name,location,install_status,operational_status,manufacturer,model_id,serial_number,support_group,maintenance_schedule&sysparm_display_value=true
Gather travel estimates and actual travel data from work order tasks.
Using MCP:
Tool: SN-Query-Table
Parameters:
table_name: wm_task
query: work_order=[WORK_ORDER_SYS_ID]^estimated_travel_duration>0
fields: sys_id,number,assigned_to,location,estimated_travel_duration,actual_travel_duration,estimated_work_duration,dispatch_group
limit: 20
Using REST API:
GET /api/now/table/wm_task?sysparm_query=work_order=[WORK_ORDER_SYS_ID]^estimated_travel_duration>0&sysparm_fields=sys_id,number,assigned_to,location,estimated_travel_duration,actual_travel_duration,estimated_work_duration,dispatch_group&sysparm_limit=20&sysparm_display_value=true
Retrieve parts requests and their fulfillment status.
Using MCP:
Tool: SN-Query-Table
Parameters:
table_name: wm_parts_request
query: work_order_task.work_order=[WORK_ORDER_SYS_ID]^ORDERBYsys_created_on
fields: sys_id,part,quantity_requested,quantity_received,state,work_order_task,stockroom,expected_delivery
limit: 30
Using REST API:
GET /api/now/table/wm_parts_request?sysparm_query=work_order_task.work_order=[WORK_ORDER_SYS_ID]^ORDERBYsys_created_on&sysparm_fields=sys_id,part,quantity_requested,quantity_received,state,work_order_task,stockroom,expected_delivery&sysparm_limit=30&sysparm_display_value=true
Pull journal entries to capture recent activity and technician notes.
Using MCP:
Tool: SN-Query-Table
Parameters:
table_name: sys_journal_field
query: element_id=[WORK_ORDER_SYS_ID]^element=work_notes^ORDERBYDESCsys_created_on
fields: sys_id,value,sys_created_on,sys_created_by
limit: 20
Using REST API:
GET /api/now/table/sys_journal_field?sysparm_query=element_id=[WORK_ORDER_SYS_ID]^element=work_notes^ORDERBYDESCsys_created_on&sysparm_fields=sys_id,value,sys_created_on,sys_created_by&sysparm_limit=20
Assemble all collected data into a structured summary:
=== WORK ORDER SUMMARY ===
Work Order: WO0012345
Status: [state] | Priority: [priority] | Category: [category]
Opened: [opened_at] | Scheduled: [scheduled_start] - [scheduled_end]
SLA Due: [sla_due] | SLA Status: [on-track/at-risk/breached]
CUSTOMER & LOCATION:
Company: [company] | Caller: [caller_id]
Location: [location_full_address]
Contact Method: [contact_type]
ASSET DETAILS:
Asset: [display_name] | Tag: [asset_tag] | Serial: [serial_number]
Model: [model] | Manufacturer: [manufacturer]
Warranty: [warranty_expiration] | Status: [install_status]
CI: [ci_name] ([sys_class_name])
TASKS: [total_count] total ([open_count] open, [closed_count] closed)
| # | Task | Status | Assigned To | Est. Duration |
|---|------|--------|-------------|---------------|
| 1 | [short_description] | [state] | [assigned_to] | [est_work_duration] |
| 2 | [short_description] | [state] | [assigned_to] | [est_work_duration] |
TRAVEL LOGISTICS:
Total Estimated Travel: [sum_est_travel] | Actual: [sum_actual_travel]
Technician: [assigned_to] | Dispatch Group: [dispatch_group]
PARTS REQUIREMENTS: [total_parts] items
| Part | Qty Requested | Qty Received | Status | ETA |
|------|--------------|--------------|--------|-----|
| [part_name] | [qty_req] | [qty_recv] | [state] | [expected_delivery] |
RECENT ACTIVITY:
- [date] [user]: [summary_of_note]
- [date] [user]: [summary_of_note]
KEY OBSERVATIONS:
- [SLA risk assessment]
- [Parts availability concerns]
- [Scheduling conflicts or dependencies]
- [Asset warranty status]
| Tool | When to Use |
|------|-------------|
| SN-NL-Search | Natural language work order lookup (e.g., "find open work orders for Building A") |
| SN-Query-Table | Structured queries across work order, task, asset, and parts tables |
| SN-Read-Record | Retrieve a single work order or asset record by sys_id |
| Endpoint | Method | Purpose |
|----------|--------|---------|
| /api/now/table/wm_order | GET | Query work order records |
| /api/now/table/wm_task | GET | Retrieve work order tasks |
| /api/now/table/alm_asset | GET | Get asset details |
| /api/now/table/cmdb_ci | GET | Configuration item information |
| /api/now/table/task_sla | GET | SLA compliance status |
| /api/now/table/wm_parts_request | GET | Parts requirements and availability |
| /api/now/table/sys_journal_field | GET | Work notes and activity history |
sysparm_display_value=true in REST calls to get readable names instead of sys_idsCause: Work order number format incorrect or work order is in a different scope.
Solution: Verify the prefix (WO vs WM vs other custom prefixes). Try searching with numberLIKEWO001234. Check if the work order was created in a scoped application.
Cause: Tasks may not have been generated yet, or they use a different parent reference.
Solution: Check if the work order requires manual task creation. Query wm_task using parent=[WORK_ORDER_SYS_ID] as an alternative relationship field.
Cause: The asset field on the work order may not be populated, or the asset record has been retired.
Solution: Try looking up the asset via the cmdb_ci field instead. Check alm_asset with ci=[CMDB_CI_SYS_ID] to find the linked asset record.
Cause: Parts may be tracked through a different table or a custom parts management process.
Solution: Check wm_parts_request_line for line-item details. Some organizations use alm_consumable or custom tables for parts tracking.
Cause: SLA definitions may not be configured for the work order type.
Solution: Verify SLA definitions exist in sla_condition_check for the wm_order table. Check with your FSM administrator if SLAs are tracked externally.
Scenario: Dispatch coordinator needs to brief a technician on a scheduled HVAC maintenance visit.
Step 1 - Get work order:
Tool: SN-Query-Table
Parameters:
table_name: wm_order
query: number=WO0056789
fields: sys_id,number,short_description,state,priority,category,location,company,caller_id,assigned_to,scheduled_start,scheduled_end,asset,cmdb_ci,sla_due
limit: 1
Step 2 - Get tasks:
Tool: SN-Query-Table
Parameters:
table_name: wm_task
query: work_order=<sys_id>^ORDERBYorder
fields: number,short_description,state,assigned_to,estimated_work_duration,estimated_travel_duration
limit: 10
Output Summary:
WORK ORDER WO0056789 - TECHNICIAN BRIEFING
Status: Assigned | Priority: P3 | Category: Preventive Maintenance
Customer: Acme Corp - Building A, 3rd Floor
Scheduled: Mar 20 08:00 - Mar 20 12:00
ASSET: HVAC Unit AC-301 | Serial: HV2024-0045
Model: Carrier 50XC | Warranty: Valid until Dec 2027
TASKS (3):
1. Filter replacement - Pending | Est: 30 min
2. Refrigerant level check - Pending | Est: 45 min
3. Thermostat calibration - Pending | Est: 20 min
TRAVEL: Est. 35 min from warehouse
PARTS: 2x MERV-13 filters (in stock), 1x R-410A canister (in stock)
NOTE: Building access requires badge - contact front desk on arrival
Scenario: Service manager reviewing an urgent work order approaching SLA breach.
Tool: SN-Query-Table
Parameters:
table_name: wm_order
query: number=WO0057001
fields: sys_id,number,short_description,state,priority,sla_due,assigned_to,location
limit: 1
Output:
WORK ORDER WO0057001 - URGENT: SLA AT RISK
Status: Work In Progress | Priority: P1
Issue: Production line conveyor belt motor failure
Location: Globex Manufacturing - Plant 2, Line 4
SLA Due: Mar 19 16:00 (2.5 hours remaining)
TASKS (2 of 3 complete):
1. Diagnose motor failure - COMPLETE (45 min)
2. Replace motor assembly - IN PROGRESS (est. 2 hrs)
3. Functional testing - PENDING (est. 30 min)
PARTS: 1x 15HP motor assembly - EN ROUTE (ETA: 1 hour)
RISK: SLA breach likely if parts delivery delayed.
ACTION REQUIRED: Confirm parts ETA with logistics team.
fsm/sidebar-summarization - Generate sidebar context summaries for field techniciansitsm/incident-lifecycle - Related incident management for break-fix scenariosreporting/sla-analysis - SLA tracking and compliance reportingcmdb/impact-analysis - Assess downstream impact of CI maintenancetesting
Manage supplier onboarding, qualification, performance monitoring, and offboarding with auditable lifecycle controls
tools
Identify emerging risks, prioritize intake signals, and route candidates into formal GRC risk assessment workflows
documentation
Screen inbound documents for completeness, policy risk, and routing readiness before extraction or case workflows
testing
Generate concise task summaries with status, timeline, blockers, SLA risk, and recommended next actions