Knowledge Content Recommendation

SkillMonitoring & ops

Recommend 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.

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, or knowledge role for read access
  • Access: Read access to kb_knowledge, incident, sn_customerservice_case, m2m_kb_task, kb_use, and kb_feedback tables
  • 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:

FactorWeightDescription
Category match25%Article category matches incident category
Keyword overlap30%Number of matching keywords in title and body
Historical resolution20%Article was used to resolve similar past incidents
Article rating10%Average user rating (higher is better)
Recency10%More recently updated articles score higher
View count5%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

ToolWhen to Use
SN-Query-TableStructured queries for incidents, articles, usage data
SN-Natural-Language-SearchNatural language search for topic-based article discovery
SN-Update-RecordAttach recommended articles to incidents/cases
SN-Add-Work-NotesDocument recommendation rationale

REST API Reference

EndpointMethodPurpose
/api/now/table/incidentGETRetrieve incident context
/api/now/table/kb_knowledgeGETSearch knowledge articles
/api/now/table/m2m_kb_taskGETFind articles linked to past incidents
/api/now/table/kb_useGETCheck article usage metrics
/api/now/table/kb_feedbackGETReview article feedback quality
/api/now/table/incident/{sys_id}PATCHAttach 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:

  1. KB0010100 - "VPN Connection Timeout Troubleshooting" (category match + keyword match + 12 historical resolutions)
  2. KB0010200 - "Cisco AnyConnect Configuration Guide" (CI match + keyword match)
  3. 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:

  1. KB0030100 - "License Activation Troubleshooting" (category + keyword + 8 case resolutions)
  2. KB0030150 - "Enterprise Suite License Types" (product + keyword)
  3. 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 articles
  • knowledge/duplicate-detection - Clean up duplicate articles that confuse recommendations
  • knowledge/article-generation - Generate new articles when no relevant content exists
  • knowledge/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