mcpField
P
procurement-summarization

procurement-summarization

github.com/happy-technologies-llcData & databases4141 installsUpdated 2d ago
Repository

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

  1. 01Summarize procurement cases and status
  2. 02Compile vendor communications and approval chains
  3. 03Analyze spend by vendor and category
  4. 04Report requisition, order, and invoice pipelines
  5. 05Identify approval and fulfillment bottlenecks

Use cases

  1. 01Prepare a weekly procurement operations overview
  2. 02Summarize communications in a vendor dispute case
  3. 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-summarization

After installing, type/procurement-summarizationin Claude Code to confirm it loaded.

Details

From the project README

Procurement 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_po and sn_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, or procurement_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
ToolWhen to Use
SN-Query-TableQuery cases, POs, requisitions, invoices, and approvals
SN-Natural-Language-SearchNatural language searches (e.g., "show all procurement cases from last week")
SN-Get-RecordRetrieve a single case or PO record by sys_id
REST API Reference
EndpointMethodPurpose
/api/now/table/sn_proc_caseGETQuery procurement cases
/api/now/table/proc_poGETRetrieve purchase orders for spend analysis
/api/now/table/sn_spo_requisitionGETQuery requisitions in pipeline
/api/now/table/sn_proc_invoiceGETQuery invoices for payment tracking
/api/now/table/sysapproval_approverGETCheck approval statuses
/api/now/table/sys_journal_fieldGETRetrieve case work notes and comments
/api/now/table/core_companyGETVendor details

Best Practices

  • Use Display Values: Always include sysparm_display_value=true in 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:

  1. Query all active cases: 42 active, 8 pending approval
  2. Query POs from last 7 days: 15 new POs totaling $234,500
  3. Check pending approvals: 3 approvals waiting 5+ days
  4. 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 handling
  • procurement/purchase-order-summarization - Detailed PO status and delivery tracking
  • procurement/sourcing-summarization - Sourcing event and bid analysis
  • procurement/supplier-recommendation - Vendor performance evaluation
  • reporting/executive-dashboard - Build executive-level dashboards

Comments

Markdown supported