itsm-chat-reply-recommendation について
ライブサポートを担当するITSMエージェント向けのスキルで、インシデント情報、会話履歴、関連ナレッジを基に返信案を作成します。類似インシデントや既知の問題も参照し、トラブルシューティングやエスカレーション時の文面を提示します。
主な機能
- 01インシデント情報とチャット履歴の取得
- 02ナレッジ記事と類似インシデントの検索
- 03既知の問題と回避策の確認
- 04状況に応じた返信案の作成
- 05エスカレーションと引き継ぎ文の提示
活用シーン
- 01ライブチャットで技術的な問い合わせに返信
- 02ナレッジ記事に基づく解決策の説明
- 03担当範囲外の問題の引き継ぎ準備
MCP 対応
MCP ツールでインシデントや対応記録を取得し、ナレッジ記事、類似インシデント、既知の問題を検索します。提案の記録やインシデントの更新も行えます。
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ happy-technologies-llc/ happy-platform-skills --skill itsm-chat-reply-recommendationインストール後、Claude Code で/itsm-chat-reply-recommendationを入力して読み込まれたか確認します。
詳細
チャット返信の推奨
概要
このスキルでは、ライブサポートの会話を担当する ITSM エージェント向けに、推奨チャット返信を生成するための体系的なアプローチを紹介します。以下の内容を扱います。
- インシデントのコンテキストを分析し、ユーザーの問題と履歴を把握する
- ナレッジベースの記事と照合し、既知の解決策を探す
- 類似する過去のインシデントの解決履歴を確認する
- コンテキストに応じた、適切な技術的詳細を含む返信候補を生成する
- ユーザーの技術的な習熟度に合わせて、口調や複雑さを調整する
- 問題がエージェントの対応範囲を超える場合に、エスカレーションや引き継ぎのメッセージを提示する
使用する場面: ライブチャットのエージェントがサポート中に正確で役立つ返信を作成する際、特に複雑な技術的問題への対応や、ナレッジベースの情報をすばやく参照する必要がある場合に使用します。
必要なプラグイン: com.snc.incident(Incident Management)、任意で com.glide.interaction(Agent Workspace)
前提条件
- ロール:
itil、sn_interaction_read、またはagent_workspace_user - アクセス権:
incident、kb_knowledge、problem、interactionへの読み取りアクセス - 知識: 一般的な IT サポートのシナリオ、ナレッジベースの構造、チャットのエチケットに関する知識
- プラグイン:
com.snc.incidentを有効化する必要があります。チャットのコンテキストを確認するにはcom.glide.interactionの使用を推奨します。
手順
手順 1:アクティブなインシデントのコンテキストを取得する
チャットセッションに関連付けられたインシデントを取得します。
MCP を使用する場合:
Tool: SN-Get-Record
Parameters:
table_name: incident
sys_id: [incident_sys_id]
fields: sys_id,number,short_description,description,state,priority,category,subcategory,assignment_group,assigned_to,caller_id,caller_id.name,caller_id.vip,cmdb_ci,business_service,opened_at,work_notes_list
REST API を使用する場合:
GET /api/now/table/incident/[incident_sys_id]?sysparm_fields=sys_id,number,short_description,description,state,priority,category,subcategory,assignment_group,assigned_to,caller_id,cmdb_ci,business_service,opened_at&sysparm_display_value=true
手順 2:チャット/インタラクションの履歴を確認する
会話のスレッドを取得し、すでに話し合われた内容を把握します。
MCP を使用する場合:
Tool: SN-Query-Table
Parameters:
table_name: interaction
query: document=incident^document_id=[incident_sys_id]^ORDERBYDESCsys_created_on
fields: sys_id,type,direction,message,opened_for,assigned_to,state,channel,sys_created_on
limit: 20
REST API を使用する場合:
GET /api/now/table/interaction?sysparm_query=document=incident^document_id=[incident_sys_id]^ORDERBYDESCsys_created_on&sysparm_fields=sys_id,type,direction,message,opened_for,assigned_to,state,channel,sys_created_on&sysparm_display_value=true&sysparm_limit=20
手順 3:ナレッジベースで解決策を検索する
インシデントの説明に一致する関連ナレッジ記事を探します。
MCP を使用する場合:
Tool: SN-Query-Table
Parameters:
table_name: kb_knowledge
query: workflow_state=published^short_descriptionLIKE[keyword1]^ORtextLIKE[keyword1]
fields: sys_id,number,short_description,text,kb_category,workflow_state,rating
limit: 5
REST API を使用する場合:
GET /api/now/table/kb_knowledge?sysparm_query=workflow_state=published^short_descriptionLIKE[keyword1]^ORtextLIKE[keyword1]&sysparm_fields=sys_id,number,short_description,text,kb_category&sysparm_display_value=true&sysparm_limit=5
手順 4:類似する解決済みインシデントを探す
説明が類似し、解決済みとなっている過去のインシデントを探します。
MCP を使用する場合:
Tool: SN-Query-Table
Parameters:
table_name: incident
query: state=6^ORstate=7^short_descriptionLIKE[keyword]^ORcategoryLIKE[category]^ORDERBYDESCresolved_at
fields: sys_id,number,short_description,close_code,close_notes,resolved_at,category
limit: 10
REST API を使用する場合:
GET /api/now/table/incident?sysparm_query=state=6^ORstate=7^short_descriptionLIKE[keyword]^ORDERBYDESCresolved_at&sysparm_fields=sys_id,number,short_description,close_code,close_notes,resolved_at,category&sysparm_display_value=true&sysparm_limit=10
手順 5:既知の問題を確認する
その問題が、回避策のある既知の問題に関連しているかどうかを特定します。
MCP を使用する場合:
Tool: SN-Query-Table
Parameters:
table_name: problem
query: active=true^known_error=true^short_descriptionLIKE[keyword]
fields: sys_id,number,short_description,workaround,fix,state,known_error
limit: 5
REST API を使用する場合:
GET /api/now/table/problem?sysparm_query=active=true^known_error=true^short_descriptionLIKE[keyword]&sysparm_fields=sys_id,number,short_description,workaround,fix,state,known_error&sysparm_display_value=true&sysparm_limit=5
手順 6:推奨チャット返信を生成する
収集したコンテキストに基づいて、適切な返信案を生成します。
シナリオ別の返信テンプレート:
シナリオ 1:既知の解決策が見つかった場合(KB の一致)
Hi [Name], I found a solution that should help with this issue.
Here are the steps:
1. [Step from KB article]
2. [Step from KB article]
3. [Step from KB article]
You can also find detailed instructions in our knowledge base: KB[number] - [Article Title]
Could you try these steps and let me know if the issue is resolved?
シナリオ 2:回避策のある既知のエラー
Hi [Name], this is a known issue that our team is actively working to resolve permanently.
In the meantime, here is a workaround that should get you back up and running:
[Workaround steps]
I have linked your incident to the known problem (PRB[number]) so you will be notified when the permanent fix is deployed.
シナリオ 3:トラブルシューティングが必要な場合
Hi [Name], I would like to help you troubleshoot this issue. Could you provide a few more details?
1. When did this issue first start?
2. Are you seeing any error messages? If so, could you share them?
3. Has anything changed recently (software updates, new hardware, etc.)?
This will help me narrow down the cause and find the right solution for you.
シナリオ 4:エスカレーションが必要な場合
Hi [Name], thank you for your patience. Based on what we have found so far, this issue requires specialized support from our [Team Name] team.
I am going to transfer you to a specialist who can assist further. Here is a summary of what we have covered:
- [Summary point 1]
- [Summary point 2]
Your incident [INC number] will stay open, and the specialist will have all the context from our conversation.
シナリオ 5:VIP の問い合わせ
Hello [Name], thank you for reaching out. I understand this issue is affecting your work, and I want to make sure we get it resolved as quickly as possible.
I am prioritizing your request and [action being taken]. I will provide you with an update within [timeframe].
Is there anything else I can assist with in the meantime?
手順 7:インタラクションを記録する
推奨した返信と実施した操作を記録します。
MCP を使用する場合:
Tool: SN-Add-Work-Notes
Parameters:
table_name: incident
sys_id: [incident_sys_id]
work_notes: |
=== CHAT REPLY RECOMMENDATION ===
Context: [Brief issue summary]
KB Match: KB[number] - [Title] (confidence: high/medium/low)
Similar Incidents: [INC numbers]
Known Error: [PRB number if applicable]
Recommended Reply: [Reply type - Solution/Workaround/Troubleshooting/Escalation]
[Reply text used]
ツールの使用方法
MCP ツールのリファレンス
| ツール | 使用する場面 |
|---|---|
SN-Get-Record | インシデントとユーザーのコンテキストを取得する |
SN-Query-Table | インタラクション、KB 記事、類似インシデント、既知のエラーを検索する |
SN-Natural-Language-Search | 自然言語でナレッジベースを検索する |
SN-Update-Record | チャット中にインシデントの状態や担当割り当てを更新する |
SN-Add-Work-Notes | 推奨返信と実施した操作を記録する |
SN-Execute-Background-Script | 複雑な照合ロジックや一括での推奨分析を実行する |
REST API のリファレンス
| エンドポイント | メソッド | 用途 |
|---|---|---|
/api/now/table/incident | GET | インシデントのコンテキストを照会する |
/api/now/table/kb_knowledge | GET | ナレッジベースを検索する |
/api/now/table/problem | GET | 既知のエラーを探す |
/api/now/table/interaction | GET | チャット履歴を確認する |
/api/now/table/sys_user | GET | 問い合わせユーザーの詳細と VIP ステータスを確認する |
ベストプラクティス
- 返信前に確認する: すでに回答されている質問をしないよう、チャット履歴を必ず確認します
- 技術レベルに合わせる: ユーザーが技術者か非技術者かに応じて、言葉の難易度を調整します
- 選択肢を提示する: 解決策が複数ある場合は、最も簡単なものを最初に提示し、代替案も示します
- 見通しを伝える: 解決までの推定時間や次の手順を必ず伝えます
- VIPに配慮する: 問い合わせ者のVIPフラグを確認し、優先度と口調を適切に調整します
- ナレッジベースの記事にリンクする: 今後同じ問題が発生したときにユーザーが自力で解決できるよう、具体的なナレッジベースの記事を案内します
- 解決を確認する: 終了する前に、問題が解決したことをユーザーに必ず確認します
トラブルシューティング
ナレッジベースに一致する項目がない
原因: 検索語が具体的すぎるか、このトピックに関するナレッジベースの記事が登録されていません 解決策: 検索語を広げます。正確な説明ではなく、カテゴリで検索してみます。同様のインシデントに対する解決パターンを参考にします。
チャット履歴を利用できない
原因: 対話記録が作成されていないか、別のチャネルでチャットが行われました
解決策: インシデントのコメントについて、sys_journal_field を確認します。メールでのやり取りについては、sys_email を確認します。
推奨される返信が技術的すぎる
原因: 技術的なナレッジベースの記事を、平易な表現に直さずに返信が生成されています 解決策: 問い合わせ者の役割と部門を確認します。技術的な手順を平易な言葉で書き直します。手順を一緒に進めることを提案します。
エスカレーション先が不明
原因: 特定の問題の種類に対する割り当てグループの振り分けが不明確です
解決策: インシデントのカテゴリに一致するグループを sys_user_group で検索します。割り当ての検索ルールを確認するか、標準のエスカレーションマトリックスを使用します。
例
例 1:パスワードリセットのチャット
# 1. Get incident context
Tool: SN-Get-Record
Parameters:
table_name: incident
sys_id: [sys_id]
fields: number,short_description,caller_id.name,category
# 2. Find KB article
Tool: SN-Query-Table
Parameters:
table_name: kb_knowledge
query: workflow_state=published^123TEXTQUERY321=password reset self-service
fields: number,short_description,text
limit: 3
# Recommended reply:
# "Hi [Name], I can help you reset your password. You can do this
# yourself anytime by visiting [Self-Service Portal URL] and clicking
# 'Forgot Password'. Would you like me to walk you through it, or
# would you prefer I initiate a reset from my end?"
例 2:既知の問題によるアプリケーションエラー
# 1. Check for known errors
Tool: SN-Query-Table
Parameters:
table_name: problem
query: known_error=true^short_descriptionLIKESAP login
fields: number,short_description,workaround
limit: 3
例 3:一括返信の分析
Tool: SN-Execute-Background-Script
Parameters:
description: Analyze most common chat topics and recommended replies
script: |
gs.info('=== CHAT TOPIC ANALYSIS ===');
var ga = new GlideAggregate('incident');
ga.addQuery('contact_type', 'chat');
ga.addQuery('sys_created_on', '>=', gs.daysAgo(30));
ga.addAggregate('COUNT');
ga.groupBy('category');
ga.orderByAggregate('COUNT', 'DESC');
ga.setLimit(10);
ga.query();
while (ga.next()) {
gs.info('Category: ' + ga.category.getDisplayValue() + ' | Chat Incidents: ' + ga.getAggregate('COUNT'));
}
関連スキル
itsm/email-recommendation- メールベースの返信に関する推奨itsm/incident-triage- チャットの振り分けに使用するトリアージのコンテキストitsm/kb-generation- チャットで推奨される解決策のナレッジベース記事を作成itsm/incident-summarization- エスカレーション時の引き継ぎ用にインシデントを要約