skills/csm/activity-response/SKILL.md
Generate contextual responses for CSM case activities including work notes, customer communications, and status updates with suggested next actions
npx skillsauth add happy-technologies-llc/happy-servicenow-skills activity-responseInstall 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 generates contextual responses for various CSM case activities, helping agents create consistent, comprehensive, and well-structured work notes, customer communications, and status updates. It helps you:
When to use: When a CSM agent needs to document case activity, update the customer on progress, create internal handoff notes, or determine and document the next steps in case resolution.
sn_customerservice_agent, sn_customerservice_manager, or csm_adminsn_customerservice_case, sys_journal_field; read access to sn_customerservice_task, interaction, kb_knowledge, sn_customerservice_slaFetch the case to understand the current situation and what type of activity response is needed.
Using MCP (Claude Code/Desktop):
Tool: SN-Read-Record
Parameters:
table_name: sn_customerservice_case
sys_id: [case_sys_id]
fields: number,short_description,description,state,priority,urgency,impact,category,subcategory,contact,account,consumer,product,asset,assigned_to,assignment_group,opened_at,opened_by,resolved_at,resolution_code,resolution_notes,escalation,severity,sla_due,contact_type,reassignment_count,reopen_count,cause,close_notes
Using REST API:
GET /api/now/table/sn_customerservice_case/{case_sys_id}?sysparm_fields=number,short_description,description,state,priority,urgency,impact,category,subcategory,contact,account,consumer,product,asset,assigned_to,assignment_group,opened_at,resolved_at,resolution_code,resolution_notes,escalation,severity,sla_due,contact_type,reassignment_count,reopen_count,cause,close_notes&sysparm_display_value=true
Check what has already been done on the case to avoid duplicating information and to build on previous work.
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: 20
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=element,value,sys_created_on,sys_created_by&sysparm_limit=20
Understand the status of any child tasks that may affect the case activity.
Using MCP:
Tool: SN-Query-Table
Parameters:
table_name: sn_customerservice_task
query: parent=<case_sys_id>^ORDERBYDESCsys_created_on
fields: sys_id,number,short_description,state,assigned_to,assignment_group,priority,opened_at,closed_at,work_notes
limit: 10
Using REST API:
GET /api/now/table/sn_customerservice_task?sysparm_query=parent=<case_sys_id>^ORDERBYDESCsys_created_on&sysparm_fields=number,short_description,state,assigned_to,assignment_group,priority,opened_at,closed_at&sysparm_limit=10&sysparm_display_value=true
Determine urgency based on SLA compliance to calibrate response priority.
Using MCP:
Tool: SN-Query-Table
Parameters:
table_name: sn_customerservice_sla
query: task=<case_sys_id>^stage!=cancelled
fields: sla,stage,has_breached,planned_end_time,percentage,business_percentage
limit: 5
Using REST API:
GET /api/now/table/sn_customerservice_sla?sysparm_query=task=<case_sys_id>^stage!=cancelled&sysparm_fields=sla,stage,has_breached,planned_end_time,percentage,business_percentage&sysparm_limit=5&sysparm_display_value=true
Check the latest customer communication to understand what they are expecting.
Using MCP:
Tool: SN-Query-Table
Parameters:
table_name: sys_email
query: instance=<case_sys_id>^type=received^ORDERBYDESCsys_created_on
fields: sys_id,subject,body_text,sys_created_on
limit: 3
Using REST API:
GET /api/now/table/sys_email?sysparm_query=instance=<case_sys_id>^type=received^ORDERBYDESCsys_created_on&sysparm_fields=subject,body_text,sys_created_on&sysparm_limit=3
Find KB articles that can support the activity response with solutions or references.
Using MCP:
Tool: SN-NL-Search
Parameters:
query: [short_description keywords]
table: kb_knowledge
limit: 3
Using REST API:
GET /api/now/table/kb_knowledge?sysparm_query=workflow_state=published^short_descriptionLIKE<key_terms>&sysparm_fields=number,short_description,text&sysparm_limit=3&sysparm_display_value=true
Based on the case state and context, generate the appropriate activity response.
When a case is newly assigned and needs initial assessment:
=== WORK NOTE: INITIAL TRIAGE ===
Case [number] received and reviewed.
TRIAGE ASSESSMENT:
- Category: [category] / [subcategory]
- Impact: [impact] | Urgency: [urgency] | Priority: [priority]
- Product/Service: [product]
- Customer Tier: [tier]
- Contact Method: [contact_type]
INITIAL ANALYSIS:
[Summary of the reported issue based on description]
PRELIMINARY FINDINGS:
- [finding_1 based on case details]
- [finding_2 based on KB article match]
- [finding_3 based on similar cases]
NEXT STEPS:
1. [next_action_1 - e.g., "Request additional diagnostics from customer"]
2. [next_action_2 - e.g., "Check known issue KB0012345"]
3. [next_action_3 - e.g., "Engage product team if issue persists"]
SLA: [Response SLA target] | Expected follow-up by: [date]
When documenting ongoing investigation progress:
=== WORK NOTE: INVESTIGATION UPDATE ===
Case [number] - Investigation in progress.
ACTIONS TAKEN:
1. [action_1 - e.g., "Reviewed application logs for the reported time window"]
2. [action_2 - e.g., "Confirmed issue is reproducible in test environment"]
3. [action_3 - e.g., "Consulted KB0034567 - partial match to known issue"]
FINDINGS:
- [finding_1]
- [finding_2]
CURRENT STATUS: [In Progress / Awaiting vendor response / Testing fix]
BLOCKERS: [None / Waiting for customer info / Pending vendor patch]
NEXT STEPS:
1. [next_action_1]
2. [next_action_2]
ESTIMATED RESOLUTION: [date or timeframe]
When updating the customer via additional comments:
=== ADDITIONAL COMMENT (CUSTOMER-VISIBLE) ===
Hello [contact_name],
Thank you for your patience regarding case [number].
Here is the latest update on your request:
- [status_summary in customer-friendly language]
- [what has been done]
- [what is happening next]
[If waiting for customer input:]
To help us proceed, could you please provide:
1. [requested_info_1]
2. [requested_info_2]
We expect to have [next update / resolution] by [date]. If you have
any questions in the meantime, please reply to this message.
Best regards,
[agent_name]
When escalating the case:
=== WORK NOTE: ESCALATION ===
Case [number] escalated to [escalation_group] - Level [escalation_level].
ESCALATION REASON:
[reason - e.g., "Customer impact is broader than initially assessed" or
"Issue requires specialized product engineering knowledge"]
CASE HISTORY SUMMARY:
- Opened: [opened_at] | Age: [days] days
- Previous Assignment: [previous_group]
- Actions Taken: [summary of investigation to date]
- Customer Communications: [count] ([last_contact_date])
- SLA Status: [on_track/at_risk/breached]
WHAT HAS BEEN TRIED:
1. [action_1 and result]
2. [action_2 and result]
3. [action_3 and result]
WHAT IS NEEDED FROM ESCALATION TEAM:
1. [specific_ask_1]
2. [specific_ask_2]
CUSTOMER EXPECTATIONS: [what the customer expects and by when]
When the case is pending customer response:
=== WORK NOTE: AWAITING CUSTOMER INFO ===
Case [number] moved to Awaiting Info state.
INFORMATION REQUESTED:
1. [info_item_1] - Needed to [reason]
2. [info_item_2] - Needed to [reason]
COMMUNICATION SENT: [date] via [email/chat/phone]
FOLLOW-UP SCHEDULED: [date] if no response received
AUTO-CLOSE POLICY: Case will be auto-resolved after [X] days of
inactivity per policy [policy_reference].
RESUME ACTIONS (when customer responds):
1. [action_1]
2. [action_2]
| Tool | When to Use |
|------|-------------|
| SN-NL-Search | Find KB articles relevant to the case activity |
| SN-Query-Table | Query journal entries, tasks, SLA data, emails |
| SN-Read-Record | Retrieve the case record or specific related records |
| Endpoint | Method | Purpose |
|----------|--------|---------|
| /api/now/table/sn_customerservice_case | GET | Case details and state |
| /api/now/table/sys_journal_field | GET | Work notes and comments history |
| /api/now/table/sn_customerservice_task | GET | Related task status |
| /api/now/table/interaction | GET | Interaction history |
| /api/now/table/sys_email | GET | Email communication history |
| /api/now/table/kb_knowledge | GET | Knowledge base articles |
| /api/now/table/sn_customerservice_sla | GET | SLA compliance data |
Cause: The case state field may use numeric values or custom states
Solution: Query with sysparm_display_value=true to get readable state names. Standard CSM states: 1=New, 2=In Progress, 3=On Hold, 6=Resolved, 7=Closed. Check your instance for custom state values.
Cause: ACL restrictions or mandatory field requirements
Solution: Verify the agent has sn_customerservice_agent role with write access to sys_journal_field. Check for any business rules requiring specific fields before journal entry.
Cause: SLA definitions may not be configured for this case type
Solution: Check contract_sla table for applicable SLA definitions matching the case's priority and assignment group. If no SLA exists, note this in the work note and use organizational guidelines for response targets.
Cause: Tasks may be linked via a different relationship or parent field
Solution: Try querying with parent.number=[case_number] or check the task_rel_task table for M2M relationships between the case and tasks.
Scenario: New P2 case assigned about intermittent network connectivity for a Gold tier customer.
Step 1 - Get case:
Tool: SN-Query-Table
Parameters:
table_name: sn_customerservice_case
query: number=CS0085001
fields: sys_id,number,short_description,description,state,priority,category,subcategory,product,contact,account,assigned_to,opened_at,sla_due
limit: 1
Step 2 - Search KB:
Tool: SN-NL-Search
Parameters:
query: intermittent network connectivity drops VPN
table: kb_knowledge
limit: 3
Generated Work Note:
INITIAL TRIAGE - CS0085001
Case reviewed. Customer reports intermittent network drops affecting
VPN connectivity, occurring 3-4 times daily since March 16.
TRIAGE ASSESSMENT:
- Category: Network / Connectivity
- Product: Enterprise VPN Gateway
- Customer: Meridian Corp (Gold Tier)
- Priority: P2 | Impact: Medium | Urgency: High
PRELIMINARY FINDINGS:
- KB0019876 describes similar VPN timeout issues related to MTU
settings after firmware update 4.2.1
- Customer's description matches pattern of MTU fragmentation
- No current known outages for VPN Gateway service
NEXT STEPS:
1. Request VPN client logs from customer for affected timeframe
2. Check if customer's VPN Gateway is running firmware 4.2.1
3. If firmware matches, apply KB0019876 MTU fix procedure
SLA: Response due by Mar 19 14:00 | Follow-up scheduled: Mar 19 10:00
Scenario: Case needs escalation after initial investigation failed to resolve the issue.
Step 1 - Get case and history:
Tool: SN-Read-Record
Parameters:
table_name: sn_customerservice_case
sys_id: [case_sys_id]
fields: number,short_description,state,priority,escalation,assigned_to,assignment_group,opened_at,reassignment_count
Tool: SN-Query-Table
Parameters:
table_name: sys_journal_field
query: element_id=<sys_id>^element=work_notes^ORDERBYDESCsys_created_on
fields: value,sys_created_on,sys_created_by
limit: 10
Generated Work Note:
ESCALATION - CS0085001
Escalating to Platform Engineering team - Level 2.
ESCALATION REASON:
Standard MTU fix (KB0019876) did not resolve the issue. Customer
continues to experience VPN drops. Root cause appears to be in the
gateway firmware requiring engineering investigation.
CASE SUMMARY (for receiving team):
- Opened: Mar 16 | Age: 3 days | Previous Group: Network Support
- Customer: Meridian Corp (Gold) | Contact: James Wright
- Issue: Intermittent VPN drops, 3-4x daily since Mar 16
WHAT HAS BEEN TRIED:
1. Applied MTU adjustment per KB0019876 - No improvement
2. Verified firmware version 4.2.1 - Confirmed current
3. Reviewed VPN client logs - Timeout errors at gateway level
4. Tested with alternate VPN profile - Same issue
WHAT IS NEEDED:
1. Gateway-level packet capture during failure window
2. Firmware team review of timeout handling in 4.2.1
3. Potential hotfix or rollback recommendation
CUSTOMER EXPECTATIONS: Resolution by Mar 21. Customer has a
board presentation on Mar 22 requiring stable VPN access.
SLA Status: On track (resolution SLA due Mar 23).
csm/case-summarization - Summarize full case context before generating activity notescsm/email-recommendation - Generate customer email updates based on activitycsm/sentiment-analysis - Assess customer sentiment to calibrate communication tonecsm/resolution-notes - Generate final resolution documentation when closingcsm/chat-recommendation - Generate chat responses for real-time customer updatestesting
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