Knowledge Content Recommendation
SkillMonitoring & opsRecommend relevant knowledge articles based on incident or case context by matching keywords, categories, and historical resolution patterns to surface the most useful articles
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 Knowledge Content Recommendation skill
What this skill tells your AI
The instructions your AI receives, as published by happy-technologies-llc/happy-platform-skills in skills/knowledge/content-recommendation/SKILL.md and read by ahel’s review.
Overview
This skill provides a structured approach to recommending relevant knowledge articles for active incidents, cases, or user queries in ServiceNow. Effective knowledge recommendation reduces resolution times, improves first-call resolution rates, and increases self-service adoption.
This skill helps you:
- Extract keywords and context from incident or case descriptions to build targeted searches
- Query knowledge bases using category matching, keyword overlap, and natural language search
- Rank candidate articles by relevance using view counts, ratings, recency, and historical resolution patterns
- Identify articles previously used to resolve similar incidents
- Attach recommended articles to incident or case records with contextual notes
When to use: When triaging or working an incident/case, when a user asks for help on a topic, or when building automated recommendation workflows.
Prerequisites
- Roles:
itil,sn_customerservice_agent, orknowledgerole for read access - Access: Read access to
kb_knowledge,incident,sn_customerservice_case,m2m_kb_task,kb_use, andkb_feedbacktables - Plugin:
com.glideapp.knowledge(Knowledge Management) activated - Knowledge: Familiarity with your organization's knowledge base structure, categories, and tagging conventions
Procedure
Step 1: Extract Context from the Incident or Case
Retrieve the incident or case details to understand the problem context.
Using MCP:
Tool: SN-Query-Table
Parameters:
table_name: incident
query: number=INC0012345
fields: sys_id,number,short_description,description,category,subcategory,cmdb_ci,assignment_group,impact,urgency,close_notes
limit: 1
Using REST API:
GET /api/now/table/incident?sysparm_query=number=INC0012345&sysparm_fields=sys_id,number,short_description,description,category,subcategory,cmdb_ci,assignment_group,impact,urgency,close_notes&sysparm_limit=1
For CSM cases:
Tool: SN-Query-Table
Parameters:
table_name: sn_customerservice_case
query: number=CS0045678
fields: sys_id,number,short_description,description,product,category,account,contact,priority
limit: 1
Step 2: Search Knowledge by Category Match
Use the incident's category and subcategory to find articles in the same knowledge domain.
Using MCP:
Tool: SN-Query-Table
Parameters:
table_name: kb_knowledge
query: workflow_state=published^kb_category.label=Network^active=true
fields: sys_id,number,short_description,kb_knowledge_base,kb_category,sys_view_count,rating,sys_updated_on,author
limit: 15
Using REST API:
GET /api/now/table/kb_knowledge?sysparm_query=workflow_state=published^kb_category.label=Network^active=true&sysparm_fields=sys_id,number,short_description,kb_knowledge_base,kb_category,sys_view_count,rating,sys_updated_on,author&sysparm_limit=15
Step 3: Search Knowledge by Keyword Matching
Extract key terms from the incident short description and description, then search for articles containing those terms.
Using MCP:
Tool: SN-Query-Table
Parameters:
table_name: kb_knowledge
query: workflow_state=published^short_descriptionLIKEvpn^ORtextLIKEvpn^short_descriptionLIKEtimeout^ORtextLIKEtimeout^short_descriptionLIKEconnection^ORtextLIKEconnection
fields: sys_id,number,short_description,text,kb_knowledge_base,kb_category,sys_view_count,rating
limit: 15
Using REST API:
GET /api/now/table/kb_knowledge?sysparm_query=workflow_state=published^short_descriptionLIKEvpn^ORtextLIKEvpn^short_descriptionLIKEtimeout^ORtextLIKEtimeout^short_descriptionLIKEconnection^ORtextLIKEconnection&sysparm_fields=sys_id,number,short_description,kb_knowledge_base,kb_category,sys_view_count,rating&sysparm_limit=15
Step 4: Find Articles Used to Resolve Similar Incidents
Query the many-to-many relationship table to find articles that were linked to previously resolved incidents with matching categories.
Using MCP:
Tool: SN-Query-Table
Parameters:
table_name: m2m_kb_task
query: task.category=network^task.subcategory=vpn^task.state=6
fields: kb_knowledge,kb_knowledge.number,kb_knowledge.short_description,task,task.number,task.short_description
limit: 20
Using REST API:
GET /api/now/table/m2m_kb_task?sysparm_query=task.category=network^task.subcategory=vpn^task.state=6&sysparm_fields=kb_knowledge,kb_knowledge.number,kb_knowledge.short_description,task,task.number,task.short_description&sysparm_limit=20
Step 5: Check Article Quality Signals
For the candidate articles found in Steps 2-4, evaluate quality using usage metrics and feedback.
Using MCP:
Tool: SN-Query-Table
Parameters:
table_name: kb_use
query: article.numberINKB0010100,KB0010200,KB0010300
fields: article,article.number,viewed,useful,not_useful
limit: 20
Using REST API:
GET /api/now/table/kb_use?sysparm_query=article.numberINKB0010100,KB0010200,KB0010300&sysparm_fields=article,article.number,viewed,useful,not_useful&sysparm_limit=20
Check for recent negative feedback:
Tool: SN-Query-Table
Parameters:
table_name: kb_feedback
query: article.numberINKB0010100,KB0010200,KB0010300^sys_created_on>=javascript:gs.daysAgoStart(90)
fields: article,article.number,rating,comments,sys_created_on
limit: 20
Step 6: Rank and Select Top Recommendations
Apply a relevance scoring model to rank candidate articles:
Ranking Criteria:
| Factor | Weight | Description |
|---|---|---|
| Category match | 25% | Article category matches incident category |
| Keyword overlap | 30% | Number of matching keywords in title and body |
| Historical resolution | 20% | Article was used to resolve similar past incidents |
| Article rating | 10% | Average user rating (higher is better) |
| Recency | 10% | More recently updated articles score higher |
| View count | 5% | Higher view count indicates general usefulness |
Scoring guidelines:
- Articles matching 3+ criteria are "strong recommendations"
- Articles matching 2 criteria are "possible recommendations"
- Articles with negative feedback in the past 90 days should be flagged with a caveat
Step 7: Attach Recommended Articles to the Incident
Link the top-ranked article to the incident and document the recommendation.
Using MCP:
Tool: SN-Update-Record
Parameters:
table_name: incident
sys_id: [incident_sys_id]
data:
kb_knowledge: [recommended_article_sys_id]
work_notes: "Knowledge Recommendation: Attached KB0010100 'VPN Connection Timeout Troubleshooting' based on category match (Network/VPN), keyword overlap (vpn, timeout, connection), and historical resolution of 12 similar incidents."
Using REST API:
PATCH /api/now/table/incident/{sys_id}
Content-Type: application/json
{
"kb_knowledge": "[recommended_article_sys_id]",
"work_notes": "Knowledge Recommendation: Attached KB0010100..."
}
Step 8: Document Multiple Recommendations
When several articles are relevant, add work notes listing all recommendations with rationale.
Using MCP:
Tool: SN-Add-Work-Notes
Parameters:
sys_id: [incident_sys_id]
work_notes: |
=== KNOWLEDGE RECOMMENDATIONS ===
Based on: INC0012345 "VPN connection timeout when connecting remotely"
1. KB0010100 - "VPN Connection Timeout Troubleshooting" (Score: 4.5/5)
- Category match: Network/VPN
- Used in 12 similar resolved incidents
- Rating: 4.2/5, 890 views
- RECOMMENDED: Primary article
2. KB0010200 - "Corporate Network Access Guide" (Score: 3.2/5)
- Keyword match: "corporate network", "connection"
- Rating: 3.8/5, 456 views
- SUPPLEMENTARY: General reference
3. KB0010300 - "VPN Client Installation" (Score: 2.1/5)
- Partial category match
- May be relevant if client reinstallation needed
- SITUATIONAL: Only if client is corrupt
Tool Usage
MCP Tools Reference
| Tool | When to Use |
|---|---|
SN-Query-Table | Structured queries for incidents, articles, usage data |
SN-Natural-Language-Search | Natural language search for topic-based article discovery |
SN-Update-Record | Attach recommended articles to incidents/cases |
SN-Add-Work-Notes | Document recommendation rationale |
REST API Reference
| Endpoint | Method | Purpose |
|---|---|---|
/api/now/table/incident | GET | Retrieve incident context |
/api/now/table/kb_knowledge | GET | Search knowledge articles |
/api/now/table/m2m_kb_task | GET | Find articles linked to past incidents |
/api/now/table/kb_use | GET | Check article usage metrics |
/api/now/table/kb_feedback | GET | Review article feedback quality |
/api/now/table/incident/{sys_id} | PATCH | Attach article to incident |
Best Practices
- Extract Multiple Keywords: Pull at least 3-5 meaningful keywords from the incident description; avoid stop words and generic terms
- Search Broadly, Then Filter: Start with natural language search for broad coverage, then filter by category and quality signals
- Prefer Proven Articles: Articles linked to previously resolved incidents carry more weight than untested articles
- Check Recency: Deprioritize articles not updated in over 12 months, as procedures may have changed
- Flag Quality Issues: If the best-matching article has negative feedback, note this and consider recommending it with caveats
- Consider Audience: Match article audience (IT staff vs. end user) to the context; self-service requests need user-facing articles
- Track Recommendation Outcomes: Follow up to see if recommended articles led to resolution; this feedback improves future recommendations
Troubleshooting
"No articles found for the incident category"
Cause: Knowledge base does not have articles for this topic, or category labels differ between incident and KB
Solution: Broaden the search using keyword matching instead of strict category filters. This may also indicate a knowledge gap -- see the gap-analysis skill
"Too many candidate articles returned"
Cause: Generic keywords matching a broad set of articles Solution: Add more specific keywords, filter by knowledge base, or narrow by CI/service. Combine category and keyword filters with AND logic
"Historical resolution data is sparse"
Cause: Agents are not linking KB articles to incidents upon resolution Solution: Focus on keyword and category matching instead. Consider promoting KCS practices to improve future data
"Article ratings are all zero"
Cause: Feedback collection is not enabled or users are not rating articles
Solution: Check the glide.knowman.show_feedback property. Use view count as an alternative quality signal
Examples
Example 1: VPN Connectivity Incident
Incident: INC0012345 - "Cannot connect to VPN - timeout error after 30 seconds"
Context extracted:
- Category: Network, Subcategory: VPN
- Keywords: VPN, connect, timeout, error
- CI: Cisco AnyConnect VPN
Search results:
- KB0010100 - "VPN Connection Timeout Troubleshooting" (category match + keyword match + 12 historical resolutions)
- KB0010200 - "Cisco AnyConnect Configuration Guide" (CI match + keyword match)
- KB0010450 - "Remote Access FAQ" (partial keyword match)
Recommendation: KB0010100 as primary, KB0010200 as supplementary
Example 2: Customer Service Case
Case: CS0045678 - "Product license key not activating after purchase"
Context extracted:
- Product: Enterprise Suite
- Category: Licensing
- Keywords: license, key, activate, purchase
Search results:
- KB0030100 - "License Activation Troubleshooting" (category + keyword + 8 case resolutions)
- KB0030150 - "Enterprise Suite License Types" (product + keyword)
- KB0030200 - "How to Request a Replacement License Key" (keyword match)
Recommendation: KB0030100 as primary. If the key is invalid rather than not activating, also suggest KB0030200.
Related Skills
knowledge/gap-analysis- Identify topics with no matching articlesknowledge/duplicate-detection- Clean up duplicate articles that confuse recommendationsknowledge/article-generation- Generate new articles when no relevant content existsknowledge/gap-grouping- Group missing content areas for bulk article creation
Signals
- GitHub stars
- 37
- Forks
- 13
- Last commit
- Jul 2026
Advanced
- Catalog kind
- skill
- Gateway key
content-recommendation- Source
- github.com/happy-technologies-llc/happy-platform-skills