procurement-summarization
About procurement-summarization
procurement-summarization is a ServiceNow procurement operations skill for procurement managers and analysts. It consolidates case, approval, purchase order, requisition, and invoice data to summarize spend, pipeline status, and bottlenecks.
Key features
- 01Summarize procurement cases and status
- 02Compile vendor communications and approval chains
- 03Analyze spend by vendor and category
- 04Report requisition, order, and invoice pipelines
- 05Identify approval and fulfillment bottlenecks
Use cases
- 01Prepare a weekly procurement operations overview
- 02Summarize communications in a vendor dispute case
- 03Create procurement pipeline and spend reports
MCP support
It uses ServiceNow MCP tools to query procurement cases, purchase orders, requisitions, invoices, approvals, and communication records for structured summaries.
Install
Copy the command and run it in a terminal.
npx skills add https:/ / github.com/ happy-technologies-llc/ happy-platform-skills --skill procurement-summarizationAfter installing, type/procurement-summarizationin Claude Code to confirm it loaded.
Details
From the project READMEProcurement Summarization
Overview
This skill provides a structured approach to summarizing procurement operations in ServiceNow Sourcing and Procurement Operations. It helps you:
- Retrieve and consolidate procurement case details from
sn_proc_case - Summarize vendor communications, approval chains, and case progress
- Analyze spend across vendors, categories, and time periods using
proc_poandsn_proc_invoice - Generate pipeline reports showing requisitions, POs, and invoices at each stage
- Identify bottlenecks in approval workflows, vendor responses, and fulfillment
When to use: When procurement managers need an overview of case workload, spend trends, pipeline health, or when preparing executive reports on procurement operations.
Prerequisites
- Roles:
sn_procurement.manager,sn_procurement.analyst, orprocurement_admin - Plugins:
com.sn_procurement(Sourcing and Procurement Operations) activated - Access: Read access to
sn_proc_case,proc_po,proc_po_item,sn_spo_requisition,sn_proc_invoice,core_company - Knowledge: Familiarity with your organization's procurement workflow stages and approval hierarchies
Procedure
Step 1: Retrieve Procurement Cases
Query active procurement cases to understand current workload and status distribution.
Using MCP (Claude Code/Desktop):
Tool: SN-Query-Table
Parameters:
table_name: sn_proc_case
query: active=true^ORDERBYDESCsys_updated_on
fields: sys_id,number,short_description,state,priority,category,vendor,assigned_to,assignment_group,opened_at,sys_updated_on,approval,requested_by
limit: 50
To filter by date range or category:
Tool: SN-Query-Table
Parameters:
table_name: sn_proc_case
query: opened_at>=javascript:gs.beginningOfLast30Days()^category=contract_request
fields: sys_id,number,short_description,state,priority,category,vendor,assigned_to,opened_at
limit: 50
Using REST API:
GET /api/now/table/sn_proc_case?sysparm_query=active=true^ORDERBYDESCsys_updated_on&sysparm_fields=sys_id,number,short_description,state,priority,category,vendor,assigned_to,assignment_group,opened_at,sys_updated_on,approval,requested_by&sysparm_limit=50&sysparm_display_value=true
Step 2: Gather Case Communications and Work Notes
Pull journal entries to summarize vendor interactions and internal notes.
Using MCP:
Tool: SN-Query-Table
Parameters:
table_name: sys_journal_field
query: element_id=[case_sys_id]^element=work_notes^ORelement=comments^ORDERBYDESCsys_created_on
fields: sys_id,element,value,sys_created_on,sys_created_by
limit: 30
Using REST API:
GET /api/now/table/sys_journal_field?sysparm_query=element_id=[case_sys_id]^element=work_notes^ORelement=comments^ORDERBYDESCsys_created_on&sysparm_fields=sys_id,element,value,sys_created_on,sys_created_by&sysparm_limit=30
Step 3: Check Approval Status
Query approval records to identify pending approvals and bottlenecks.
Using MCP:
Tool: SN-Query-Table
Parameters:
table_name: sysapproval_approver
query: document_id=[case_sys_id]^ORDERBYDESCsys_updated_on
fields: sys_id,approver,state,sys_updated_on,comments,source_table,group
limit: 20
For a pipeline-wide view of pending approvals:
Tool: SN-Query-Table
Parameters:
table_name: sysapproval_approver
query: state=requested^source_table=sn_proc_case^ORDERBYsys_created_on
fields: sys_id,approver,document_id,state,sys_created_on,group
limit: 50
Using REST API:
GET /api/now/table/sysapproval_approver?sysparm_query=document_id=[case_sys_id]^ORDERBYDESCsys_updated_on&sysparm_fields=sys_id,approver,state,sys_updated_on,comments,source_table,group&sysparm_limit=20&sysparm_display_value=true
Step 4: Analyze Spend by Vendor and Category
Query purchase orders to build a spend summary.
Using MCP:
Tool: SN-Query-Table
Parameters:
table_name: proc_po
query: ordered_date>=javascript:gs.beginningOfLast90Days()^state!=cancelled
fields: sys_id,number,vendor,total_cost,state,ordered_date,currency,category
limit: 200
Aggregate by vendor:
Tool: SN-Query-Table
Parameters:
table_name: proc_po
query: ordered_date>=javascript:gs.beginningOfLastQuarter()^state!=cancelled^vendor=[vendor_sys_id]
fields: sys_id,number,total_cost,state,ordered_date
limit: 100
Using REST API:
# All POs from last 90 days
GET /api/now/table/proc_po?sysparm_query=ordered_date>=javascript:gs.beginningOfLast90Days()^state!=cancelled&sysparm_fields=sys_id,number,vendor,total_cost,state,ordered_date,currency,category&sysparm_limit=200&sysparm_display_value=true
# Spend for a specific vendor
GET /api/now/table/proc_po?sysparm_query=vendor=[vendor_sys_id]^ordered_date>=javascript:gs.beginningOfLastQuarter()^state!=cancelled&sysparm_fields=number,total_cost,state,ordered_date&sysparm_limit=100&sysparm_display_value=true
Step 5: Generate Pipeline Report
Query across requisitions, POs, and invoices to show the procurement pipeline.
Using MCP:
Tool: SN-Query-Table
Parameters:
table_name: sn_spo_requisition
query: state!=cancelled^sys_created_on>=javascript:gs.beginningOfLast30Days()
fields: sys_id,number,state,requested_by,total_estimated_cost,sys_created_on,approval
limit: 50
Tool: SN-Query-Table
Parameters:
table_name: sn_proc_invoice
query: state!=cancelled^sys_created_on>=javascript:gs.beginningOfLast30Days()
fields: sys_id,number,state,vendor,invoice_amount,due_date,po_number
limit: 50
Using REST API:
# Requisitions in pipeline
GET /api/now/table/sn_spo_requisition?sysparm_query=state!=cancelled^sys_created_on>=javascript:gs.beginningOfLast30Days()&sysparm_fields=sys_id,number,state,requested_by,total_estimated_cost,sys_created_on,approval&sysparm_limit=50&sysparm_display_value=true
# Invoices in pipeline
GET /api/now/table/sn_proc_invoice?sysparm_query=state!=cancelled^sys_created_on>=javascript:gs.beginningOfLast30Days()&sysparm_fields=sys_id,number,state,vendor,invoice_amount,due_date,po_number&sysparm_limit=50&sysparm_display_value=true
Step 6: Build the Procurement Summary
Assemble the data into a structured report:
=== PROCUREMENT OPERATIONS SUMMARY ===
Period: [start_date] to [end_date]
CASE WORKLOAD:
Total Active Cases: [count]
By State: New [n] | In Progress [n] | Pending Approval [n] | Resolved [n]
By Priority: P1 [n] | P2 [n] | P3 [n] | P4 [n]
Avg Case Age: [days] days
APPROVAL BOTTLENECKS:
Pending Approvals: [count]
Oldest Pending: [case_number] - waiting [days] days for [approver_name]
Top Delayed Approvers:
1. [approver] - [count] pending, avg [days] days
2. [approver] - [count] pending, avg [days] days
PIPELINE STATUS:
Requisitions: [count] open ($[total_value])
Purchase Orders: [count] open ($[total_value])
Invoices: [count] pending ($[total_value])
SPEND ANALYSIS (Last 90 Days):
Total PO Spend: $[amount]
Top Vendors:
1. [vendor_name] - $[amount] ([count] POs)
2. [vendor_name] - $[amount] ([count] POs)
3. [vendor_name] - $[amount] ([count] POs)
KEY OBSERVATIONS:
- [bottleneck or risk identified]
- [trend noted]
- [action recommended]
Tool Usage
MCP Tools Reference
| Tool | When to Use |
|---|---|
SN-Query-Table | Query cases, POs, requisitions, invoices, and approvals |
SN-Natural-Language-Search | Natural language searches (e.g., "show all procurement cases from last week") |
SN-Get-Record | Retrieve a single case or PO record by sys_id |
REST API Reference
| Endpoint | Method | Purpose |
|---|---|---|
/api/now/table/sn_proc_case | GET | Query procurement cases |
/api/now/table/proc_po | GET | Retrieve purchase orders for spend analysis |
/api/now/table/sn_spo_requisition | GET | Query requisitions in pipeline |
/api/now/table/sn_proc_invoice | GET | Query invoices for payment tracking |
/api/now/table/sysapproval_approver | GET | Check approval statuses |
/api/now/table/sys_journal_field | GET | Retrieve case work notes and comments |
/api/now/table/core_company | GET | Vendor details |
Best Practices
- Use Display Values: Always include
sysparm_display_value=truein REST calls for readable vendor and user names - Scope Time Ranges: Always bound queries with date ranges to avoid pulling excessive data
- Group by State: Summarize cases and POs by state to quickly identify where work is stuck
- Track Aging: Flag any case or approval older than your SLA threshold (e.g., 5 business days)
- Normalize Currency: When aggregating spend across vendors, ensure all amounts use the same currency
- Refresh Regularly: Procurement pipelines change rapidly; regenerate summaries at consistent intervals
Troubleshooting
"No procurement cases found"
Cause: The sn_proc_case table may not be populated if your organization uses a custom case table
Solution: Check with your admin for the correct table name; some orgs extend task directly for procurement cases
"Spend totals seem incorrect"
Cause: Cancelled or duplicate POs may be included, or currency conversion is needed
Solution: Ensure the query excludes state=cancelled; check the currency field and convert to a base currency before summing
"Approval records missing"
Cause: Approvals may be handled via workflow rather than the sysapproval_approver table
Solution: Check wf_context and wf_executing tables for workflow-based approvals tied to the case
"Requisition data not available"
Cause: The com.sn_sourcing plugin may not be activated
Solution: Verify plugin activation; requisition data requires com.sn_sourcing or com.sn_procurement
Examples
Example 1: Weekly Procurement Dashboard
Scenario: Procurement manager needs a weekly status summary.
Steps:
- Query all active cases: 42 active, 8 pending approval
- Query POs from last 7 days: 15 new POs totaling $234,500
- Check pending approvals: 3 approvals waiting 5+ days
- Query invoices: 12 invoices pending match, $89,200 total
Output:
WEEKLY PROCUREMENT SUMMARY (Mar 12-19, 2026)
CASES: 42 active (8 new this week)
Pending Approval: 8 | In Progress: 22 | Awaiting Vendor: 12
BOTTLENECK ALERT:
3 approvals stalled 5+ days - Finance VP approval queue
PIPELINE:
Requisitions: 18 open ($412,000 estimated)
Purchase Orders: 15 new this week ($234,500)
Invoices: 12 pending match ($89,200)
SPEND THIS WEEK: $234,500 across 6 vendors
Top: TechSupply Inc - $98,000 (3 POs)
Example 2: Vendor Communication Summary
Scenario: Analyst needs to summarize all communications for a vendor dispute case.
Tool: SN-Query-Table
Parameters:
table_name: sn_proc_case
query: number=PROC0005678
fields: sys_id,number,short_description,state,vendor,category,opened_at,assigned_to
limit: 1
Then retrieve work notes and comments:
Tool: SN-Query-Table
Parameters:
table_name: sys_journal_field
query: element_id=[case_sys_id]^element=work_notes^ORelement=comments^ORDERBYDESCsys_created_on
fields: element,value,sys_created_on,sys_created_by
limit: 50
Output:
CASE PROC0005678 - VENDOR COMMUNICATION SUMMARY
Vendor: Global Parts Ltd | Category: Price Dispute | State: In Progress
TIMELINE:
Mar 18 - [Analyst] Vendor agreed to credit $2,400 for overcharge
Mar 16 - [Vendor] Responded: pricing error on catalog item SKU-4421
Mar 14 - [Analyst] Sent formal dispute letter with PO and invoice evidence
Mar 12 - [System] Case created from invoice exception INVCASE0001234
RESOLUTION PATH: Credit memo expected by Mar 25
Related Skills
procurement/invoice-management- Invoice matching and exception handlingprocurement/purchase-order-summarization- Detailed PO status and delivery trackingprocurement/sourcing-summarization- Sourcing event and bid analysisprocurement/supplier-recommendation- Vendor performance evaluationreporting/executive-dashboard- Build executive-level dashboards