Work Order Summarization
SkillProductivitySummarize field service work orders with tasks, SLAs, asset information, travel logistics, and parts requirements for dispatch coordinators and field technicians
Available today. Use it from your connected AI after setup.
No other account needed.
Connect ahel once, and every AI you use reads what you have installed.
Then ask your AI: use the Work Order Summarization skill
What this skill tells your AI
The instructions your AI receives, as published by happy-technologies-llc/happy-platform-skills in skills/fsm/work-order-summarization/SKILL.md and read by ahel’s review.
Overview
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:
- Retrieve and consolidate core work order details including customer, location, and scheduling
- Summarize all associated work order tasks with status, assignment, and sequencing
- Assess SLA compliance status and identify at-risk timelines
- Compile asset and configuration item details for the service location
- Summarize travel logistics including estimated travel time and route considerations
- Inventory parts requirements, availability, and procurement status
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.
Prerequisites
- Roles:
wm_initiator,wm_dispatcher,wm_agent, orwm_admin - Access: Read access to
wm_order,wm_task,alm_asset,cmdb_ci,sla_condition_check,sys_journal_field, andwm_parts_requesttables - Plugins: Field Service Management (com.snc.work_management) must be active
- Data: An existing work order with populated tasks and asset references
Procedure
Step 1: Retrieve Core Work Order Details
Fetch the primary work order record with all scheduling, location, and classification fields.
Using MCP:
Tool: SN-Get-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
Step 2: Retrieve Associated Work Order Tasks
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
Step 3: Check SLA Compliance Status
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
Step 4: Retrieve Asset and Configuration Item Details
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
Step 5: Retrieve Travel and Logistics Information
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
Step 6: Check Parts Requirements and Availability
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
Step 7: Retrieve Work Notes and Activity History
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
Step 8: Build the Work Order Summary
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 Usage
MCP Tools Reference
| Tool | When to Use |
|---|---|
SN-Natural-Language-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-Get-Record | Retrieve a single work order or asset record by sys_id |
REST API Reference
| 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 |
Best Practices
- Use display values: Always pass
sysparm_display_value=truein REST calls to get readable names instead of sys_ids - Check warranty status: Always flag assets with expired or near-expiring warranties as this affects service entitlement
- Verify parts availability: Highlight any parts that are backordered or have extended delivery timelines
- Note SLA proximity: Clearly indicate when SLA breach is imminent (within 2 hours or 80% elapsed)
- Include travel estimates: Field technicians need travel context to plan their day effectively
- Sequence tasks correctly: Present tasks in the order they should be executed, respecting dependencies
- Flag safety considerations: If the work order involves hazardous equipment, highlight any safety requirements
- Summarize concisely: Field technicians access summaries on mobile devices so keep formatting clean and scannable
Troubleshooting
"Work order not found"
Cause: 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.
"No tasks associated with work order"
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.
"Asset details missing"
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.
"Parts requests not returning results"
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.
"SLA information unavailable"
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.
Examples
Example 1: Routine Maintenance Work Order Summary
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
Example 2: Emergency Repair with SLA at Risk
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.
Related Skills
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 maintenance
Signals
- GitHub stars
- 37
- Forks
- 13
- Last commit
- Jul 2026
Advanced
- Catalog kind
- skill
- Gateway key
work-order-summarization- Source
- github.com/happy-technologies-llc/happy-platform-skills