skills/procurement/sourcing-summarization/SKILL.md
Summarize sourcing events including bid comparisons, vendor evaluations, negotiation status, award recommendations, and RFP/RFQ process support
npx skillsauth add happy-technologies-llc/happy-servicenow-skills sourcing-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 summarizing sourcing events and negotiations in ServiceNow Sourcing and Procurement Operations. It helps you:
proc_sourcing_eventproc_negotiationWhen to use: When sourcing managers need to review active sourcing events, compare vendor proposals, track negotiation progress, or prepare award recommendation summaries.
sn_procurement.sourcing_manager, sn_procurement.analyst, or sourcing_admincom.sn_sourcing (Sourcing) and com.sn_procurement activatedproc_sourcing_event, proc_negotiation, core_company, ast_contractQuery active sourcing events to understand the current sourcing pipeline.
Using MCP (Claude Code/Desktop):
Tool: SN-Query-Table
Parameters:
table_name: proc_sourcing_event
query: active=true^ORDERBYDESCsys_updated_on
fields: sys_id,number,short_description,state,type,category,assigned_to,start_date,end_date,estimated_value,currency,vendor_count,bid_count,award_status
limit: 25
To filter by event type (RFP, RFQ, RFI):
Tool: SN-Query-Table
Parameters:
table_name: proc_sourcing_event
query: type=rfp^active=true
fields: sys_id,number,short_description,state,category,start_date,end_date,estimated_value,vendor_count,bid_count
limit: 25
Using REST API:
GET /api/now/table/proc_sourcing_event?sysparm_query=active=true^ORDERBYDESCsys_updated_on&sysparm_fields=sys_id,number,short_description,state,type,category,assigned_to,start_date,end_date,estimated_value,currency,vendor_count,bid_count,award_status&sysparm_limit=25&sysparm_display_value=true
Get full details for a single sourcing event.
Using MCP:
Tool: SN-Read-Record
Parameters:
table_name: proc_sourcing_event
sys_id: [event_sys_id]
fields: sys_id,number,short_description,description,state,type,category,assigned_to,assignment_group,start_date,end_date,bid_deadline,estimated_value,currency,evaluation_criteria,scoring_method,vendor_count,bid_count,award_status,award_date,awarded_vendor,terms_and_conditions
Using REST API:
GET /api/now/table/proc_sourcing_event/[event_sys_id]?sysparm_fields=sys_id,number,short_description,description,state,type,category,assigned_to,start_date,end_date,bid_deadline,estimated_value,currency,evaluation_criteria,scoring_method,vendor_count,bid_count,award_status,award_date,awarded_vendor,terms_and_conditions&sysparm_display_value=true
Query negotiations linked to the sourcing event to get vendor bids.
Using MCP:
Tool: SN-Query-Table
Parameters:
table_name: proc_negotiation
query: sourcing_event=[event_sys_id]^ORDERBYtotal_bid_amount
fields: sys_id,number,vendor,state,total_bid_amount,currency,round,submitted_date,compliance_status,technical_score,commercial_score,overall_score,notes,award_recommendation
limit: 50
Using REST API:
GET /api/now/table/proc_negotiation?sysparm_query=sourcing_event=[event_sys_id]^ORDERBYtotal_bid_amount&sysparm_fields=sys_id,number,vendor,state,total_bid_amount,currency,round,submitted_date,compliance_status,technical_score,commercial_score,overall_score,notes,award_recommendation&sysparm_limit=50&sysparm_display_value=true
For each bidding vendor, get their company profile and past performance.
Using MCP:
Tool: SN-Query-Table
Parameters:
table_name: core_company
query: sys_id=[vendor_sys_id]
fields: sys_id,name,vendor_type,city,state,country,stock_symbol,vendor_rating,notes,contact
limit: 1
Check vendor's existing contracts:
Tool: SN-Query-Table
Parameters:
table_name: ast_contract
query: vendor=[vendor_sys_id]^state=active
fields: sys_id,number,short_description,starts,ends,cost,state,contract_type
limit: 10
Check vendor's PO history:
Tool: SN-Query-Table
Parameters:
table_name: proc_po
query: vendor=[vendor_sys_id]^ordered_date>=javascript:gs.beginningOfLast12Months()^state!=cancelled
fields: sys_id,number,total_cost,state,ordered_date
limit: 50
Using REST API:
# Vendor profile
GET /api/now/table/core_company/[vendor_sys_id]?sysparm_fields=sys_id,name,vendor_type,city,country,vendor_rating,contact&sysparm_display_value=true
# Active contracts with vendor
GET /api/now/table/ast_contract?sysparm_query=vendor=[vendor_sys_id]^state=active&sysparm_fields=sys_id,number,short_description,starts,ends,cost,contract_type&sysparm_limit=10&sysparm_display_value=true
# PO history
GET /api/now/table/proc_po?sysparm_query=vendor=[vendor_sys_id]^ordered_date>=javascript:gs.beginningOfLast12Months()^state!=cancelled&sysparm_fields=number,total_cost,state,ordered_date&sysparm_limit=50&sysparm_display_value=true
Build a comparison matrix from the negotiation data:
=== BID COMPARISON MATRIX ===
Sourcing Event: SE0001234 - Enterprise Network Equipment RFP
Estimated Value: $500,000 | Bid Deadline: Mar 10, 2026
| Criteria (Weight) | Vendor A: Cisco | Vendor B: Juniper | Vendor C: Arista |
|------------------------|------------------|-------------------|------------------|
| Total Bid Amount | $485,000 | $462,000 | $448,500 |
| Technical Score (40%) | 92/100 | 88/100 | 85/100 |
| Commercial Score (30%) | 78/100 | 85/100 | 90/100 |
| Compliance | Full | Full | Partial* |
| Delivery Timeline | 6 weeks | 8 weeks | 5 weeks |
| Warranty | 3 years | 2 years | 3 years |
| Weighted Total | 86.4 | 86.1 | 86.5 |
| Recommendation | - | - | Conditional** |
*Arista: Missing ISO 27001 certification
**Conditional on compliance gap resolution
Review negotiation history for ongoing events.
Using MCP:
Tool: SN-Query-Table
Parameters:
table_name: proc_negotiation
query: sourcing_event=[event_sys_id]^vendor=[vendor_sys_id]^ORDERBYround
fields: sys_id,round,total_bid_amount,submitted_date,state,notes,commercial_score,technical_score
limit: 10
Using REST API:
GET /api/now/table/proc_negotiation?sysparm_query=sourcing_event=[event_sys_id]^vendor=[vendor_sys_id]^ORDERBYround&sysparm_fields=sys_id,round,total_bid_amount,submitted_date,state,notes,commercial_score,technical_score&sysparm_limit=10&sysparm_display_value=true
Assemble findings into a structured report:
=== SOURCING EVENT SUMMARY ===
Event: SE0001234 | Type: RFP
Title: [short_description]
State: [state] | Category: [category]
Owner: [assigned_to] | Start: [start_date] | Deadline: [end_date]
Estimated Value: [currency] [estimated_value]
PARTICIPATION:
Vendors Invited: [vendor_count]
Bids Received: [bid_count]
Response Rate: [pct]%
BID RANKING (by weighted score):
1. [Vendor C] - $448,500 - Score: 86.5 - CONDITIONAL
2. [Vendor A] - $485,000 - Score: 86.4 - COMPLIANT
3. [Vendor B] - $462,000 - Score: 86.1 - COMPLIANT
NEGOTIATION STATUS:
[Vendor A]: Round 3 complete - final offer received
[Vendor B]: Round 2 - counteroffer pending
[Vendor C]: Round 3 complete - compliance remediation in progress
AWARD RECOMMENDATION:
Recommended Vendor: [vendor_name]
Rationale: [scoring rationale, compliance, delivery, total cost of ownership]
Savings vs Estimate: $[amount] ([pct]%)
NEXT STEPS:
- [pending actions]
- [approval requirements]
- [timeline to award]
| Tool | When to Use |
|------|-------------|
| SN-Query-Table | Query sourcing events, negotiations, vendors, and contracts |
| SN-NL-Search | Natural language search (e.g., "find open RFPs for networking equipment") |
| SN-Read-Record | Retrieve full details of a single sourcing event |
| Endpoint | Method | Purpose |
|----------|--------|---------|
| /api/now/table/proc_sourcing_event | GET | Query sourcing events |
| /api/now/table/proc_negotiation | GET | Retrieve vendor bids and negotiation rounds |
| /api/now/table/core_company | GET | Vendor profiles and ratings |
| /api/now/table/ast_contract | GET | Existing vendor contracts |
| /api/now/table/proc_po | GET | Historical PO data for vendor assessment |
| /api/now/table/sys_journal_field | GET | Sourcing event notes and communications |
Cause: Bids may not have been submitted yet, or they are stored in a custom table
Solution: Verify the bid deadline has passed; check if your instance uses a custom bid table extending proc_negotiation
Cause: Scoring has not been completed or is managed outside ServiceNow Solution: Check if evaluation is done via a separate scoring module or external spreadsheet; scores may need manual entry
Cause: The vendor may not be registered in ServiceNow yet
Solution: Search core_company by name with nameLIKE[vendor_name]; the vendor may need to be created before bid submission
Cause: The vendor may have been used under a different company record or acquired
Solution: Check for alternate company names or parent/subsidiary relationships in core_company
Scenario: Sourcing director needs an overview of all active sourcing events.
Tool: SN-Query-Table
Parameters:
table_name: proc_sourcing_event
query: active=true^ORDERBYend_date
fields: number,short_description,type,state,estimated_value,bid_count,end_date,assigned_to
limit: 20
Output:
SOURCING PIPELINE - Mar 19, 2026
ACTIVE EVENTS: 8 total ($3.2M estimated value)
EVALUATION PHASE (3):
SE0001234 - Enterprise Network Equipment (RFP) - $500K - 3 bids - Due: Mar 25
SE0001240 - Cloud Hosting Services (RFP) - $1.2M - 5 bids - Due: Mar 28
SE0001245 - Office Furniture Refresh (RFQ) - $85K - 4 bids - Due: Mar 22
BIDDING OPEN (3):
SE0001250 - Security Consulting (RFP) - $400K - 2 bids so far - Closes: Apr 5
SE0001252 - Print Services (RFQ) - $120K - 0 bids - Closes: Apr 10
SE0001255 - Catering Services (RFQ) - $95K - 3 bids so far - Closes: Apr 2
AWARD PENDING (2):
SE0001220 - Data Center Hardware (RFP) - $800K - Recommended: Dell
SE0001228 - Janitorial Services (RFQ) - $45K - Recommended: CleanCo
ATTENTION: SE0001252 has zero bids with 3 weeks to deadline - consider expanding vendor list.
Scenario: Evaluate bids for SE0001234 (Enterprise Network Equipment).
Tool: SN-Query-Table
Parameters:
table_name: proc_negotiation
query: sourcing_event.number=SE0001234^round=3
fields: vendor,total_bid_amount,technical_score,commercial_score,overall_score,compliance_status,state
limit: 10
Output:
SE0001234 - AWARD RECOMMENDATION
BID COMPARISON (Final Round):
| Vendor | Bid Amount | Tech (40%) | Comm (30%) | Delivery (20%) | Risk (10%) | Total |
|-----------|-----------|------------|------------|----------------|------------|-------|
| Cisco | $485,000 | 92 | 78 | 80 | 90 | 85.4 |
| Arista | $448,500 | 85 | 90 | 92 | 75 | 86.5 |
| Juniper | $462,000 | 88 | 85 | 78 | 85 | 84.9 |
RECOMMENDATION: Arista Networks
- Lowest price ($448,500 - 10.3% below estimate)
- Highest weighted score (86.5)
- Fastest delivery (5 weeks)
- NOTE: Requires ISO 27001 certification by Q2 (mitigation plan submitted)
SAVINGS: $51,500 vs estimate | $36,500 vs next lowest bid
Scenario: Track negotiation progress with a specific vendor.
Tool: SN-Query-Table
Parameters:
table_name: proc_negotiation
query: sourcing_event.number=SE0001234^vendor.name=Cisco Systems^ORDERBYround
fields: round,total_bid_amount,submitted_date,state,notes
limit: 5
Output:
NEGOTIATION HISTORY - SE0001234 / Cisco Systems
Round 1 (Feb 15): $520,000 - Initial proposal
Notes: Standard pricing, 3-year warranty, 8-week delivery
Round 2 (Mar 1): $498,000 - Revised after feedback
Notes: 4.2% reduction, improved delivery to 7 weeks
Round 3 (Mar 12): $485,000 - Final offer
Notes: 6.7% total reduction, added training package, 6-week delivery
TOTAL SAVINGS THROUGH NEGOTIATION: $35,000 (6.7%)
procurement/supplier-recommendation - Vendor scoring and recommendation engineprocurement/purchase-order-summarization - Track POs resulting from sourcing awardsprocurement/procurement-summarization - Overall procurement pipeline overviewprocurement/invoice-management - Invoice processing for sourced contractstesting
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