chat-recommendation について
ServiceNow CSMの担当者向けスキルです。ライブチャット中にケース、顧客履歴、ナレッジ記事、解決済みケースを参照し、選択可能な返信案を作成します。
主な機能
- 01ケースとチャットの文脈分析
- 02顧客情報とケース履歴の取得
- 03記事と類似する解決済みケースの検索
- 04個別化された返信候補の作成
活用シーン
- 01ライブチャット中の返信案作成
- 02顧客ランクに応じたトーン調整
- 03新人担当者の研修や返信テンプレート作成
MCP 対応
SN-Get-RecordやSN-Query-TableなどのMCPツールでServiceNowのケース、顧客情報、ナレッジ記事、チャット記録を取得し、返信案を作成します。
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ happy-technologies-llc/ happy-platform-skills --skill chat-recommendationインストール後、Claude Code で/chat-recommendationを入力して読み込まれたか確認します。
詳細
チャット応答の推奨
概要
このスキルは、ライブチャット中にカスタマーサービス管理(CSM)エージェント向けに、状況に応じたチャット応答の候補を生成します。次のことに役立ちます。
- カテゴリー、製品、顧客ランクなど、現在のケースの状況を分析する
- 顧客の問題に関連する記事をナレッジベースから検索する
- 解決済みの類似ケースを確認し、実績のある応答パターンや解決策を調べる
- 顧客の履歴を取得して、推奨内容をパーソナライズする
- エージェントが使用できる、プロフェッショナルで共感的かつ正確なチャット返信を生成する
使用する場面: CSM エージェントがライブチャットやメッセージでのやり取りに対応しており、迅速で状況に適した応答候補が必要な場合に使用します。新しいエージェントのトレーニングや、応答テンプレートの作成にも役立ちます。
前提条件
- ロール:
sn_customerservice_agent、sn_customerservice_manager、またはcsm_admin - アクセス権:
sn_customerservice_case、interaction、kb_knowledge、sys_journal_field、customer_account、csm_consumerテーブルへの読み取りアクセス - 知識: 組織の CSM ナレッジベースの構成とチャット対応ワークフローに関する知識
- 設定: CSM ワークスペースでチャットチャネルが有効になっていること。ナレッジベースに最新の記事が登録されていること
手順
ステップ 1:現在のケースとやり取りの状況を取得する
有効なケースの詳細と現在のチャットのやり取りを取得し、顧客が何について問い合わせているかを把握します。
MCP を使用する場合(Claude Code/Desktop):
Tool: SN-Get-Record
Parameters:
table_name: sn_customerservice_case
sys_id: [case_sys_id]
fields: number,short_description,description,state,priority,category,subcategory,contact,account,consumer,product,asset,assigned_to,assignment_group,opened_at,contact_type,resolution_code,escalation
有効なチャットのやり取りを取得します。
Tool: SN-Query-Table
Parameters:
table_name: interaction
query: parent=<case_sys_id>^channel=chat^state=2^ORDERBYDESCopened_at
fields: sys_id,number,channel,state,opened_at,short_description,assigned_to,direction
limit: 1
REST API を使用する場合:
GET /api/now/table/sn_customerservice_case/{case_sys_id}?sysparm_fields=number,short_description,description,state,priority,category,subcategory,contact,account,consumer,product,assigned_to,assignment_group,opened_at,contact_type,escalation&sysparm_display_value=true
GET /api/now/table/interaction?sysparm_query=parent=<case_sys_id>^channel=chat^state=2^ORDERBYDESCopened_at&sysparm_fields=sys_id,number,channel,state,opened_at,short_description,assigned_to&sysparm_limit=1&sysparm_display_value=true
ステップ 2:顧客の履歴とアカウント情報を取得する
顧客の履歴、ランク、過去のやり取りを把握し、応答をパーソナライズします。
MCP を使用する場合:
Tool: SN-Query-Table
Parameters:
table_name: customer_account
query: sys_id=[account_sys_id]
fields: sys_id,name,number,customer_tier,industry,notes,phone,account_code
limit: 1
Tool: SN-Query-Table
Parameters:
table_name: csm_consumer
query: sys_id=[consumer_sys_id]
fields: sys_id,name,email,phone,title,preferred_language,timezone
limit: 1
顧客の最近のケース履歴を取得します。
Tool: SN-Query-Table
Parameters:
table_name: sn_customerservice_case
query: consumer=[consumer_sys_id]^sys_id!=<current_case_sys_id>^ORDERBYDESCopened_at
fields: number,short_description,state,category,resolution_code,resolution_notes,opened_at,closed_at
limit: 5
REST API を使用する場合:
GET /api/now/table/customer_account/{account_sys_id}?sysparm_fields=name,number,customer_tier,industry,notes&sysparm_display_value=true
GET /api/now/table/csm_consumer/{consumer_sys_id}?sysparm_fields=name,email,phone,preferred_language,timezone&sysparm_display_value=true
GET /api/now/table/sn_customerservice_case?sysparm_query=consumer=<consumer_sys_id>^sys_id!=<current_case_sys_id>^ORDERBYDESCopened_at&sysparm_fields=number,short_description,state,category,resolution_code,resolution_notes&sysparm_limit=5&sysparm_display_value=true
ステップ 3:関連する記事をナレッジベースから検索する
ケースのキーワード、カテゴリー、製品を使ってナレッジベースを検索し、適切な解決策を見つけます。
MCP を使用する場合:
Tool: SN-Query-Table
Parameters:
query: workflow_state=published^kb_category.label=[case_category]^textLIKE[key_terms]^ORshort_descriptionLIKE[key_terms]
table_name: kb_knowledge
limit: 5
構造化クエリの場合:
Tool: SN-Query-Table
Parameters:
table_name: kb_knowledge
query: workflow_state=published^kb_category.label=[case_category]^textLIKE[key_terms]^ORshort_descriptionLIKE[key_terms]
fields: sys_id,number,short_description,text,kb_category,author,sys_updated_on,rating
limit: 5
REST API を使用する場合:
GET /api/now/table/kb_knowledge?sysparm_query=workflow_state=published^short_descriptionLIKE<key_terms>^ORtextLIKE<key_terms>&sysparm_fields=sys_id,number,short_description,text,kb_category,rating&sysparm_limit=5&sysparm_display_value=true
ステップ 4:類似する解決済みケースを探す
実績のある解決策を見つけるため、特徴が類似する過去の解決済みケースを検索します。
MCP を使用する場合:
Tool: SN-Query-Table
Parameters:
table_name: sn_customerservice_case
query: category=[case_category]^subcategory=[case_subcategory]^stateIN6,7^resolution_codeISNOTEMPTY^ORDERBYDESCclosed_at
fields: number,short_description,resolution_code,resolution_notes,category,subcategory,product,closed_at
limit: 5
エンコードされたクエリで、より広範囲に検索する場合:
Tool: SN-Query-Table
Parameters:
query: short_descriptionLIKE[key_terms]^stateIN6,7^resolution_codeISNOTEMPTY^ORDERBYDESCclosed_at
table_name: sn_customerservice_case
limit: 5
REST API を使用する場合:
GET /api/now/table/sn_customerservice_case?sysparm_query=category=<category>^subcategory=<subcategory>^stateIN6,7^resolution_codeISNOTEMPTY^ORDERBYDESCclosed_at&sysparm_fields=number,short_description,resolution_code,resolution_notes,product&sysparm_limit=5&sysparm_display_value=true
ステップ 5:最近のチャットメッセージを取得する
最近の会話メッセージを取得して、現在のやり取りの流れを把握し、質問の重複を避けます。
MCP を使用する場合:
Tool: SN-Query-Table
Parameters:
table_name: sys_journal_field
query: element_id=<case_sys_id>^element=comments^ORDERBYDESCsys_created_on
fields: value,sys_created_on,sys_created_by
limit: 20
ライブチャットのトランスクリプト項目も確認します。
Tool: SN-Query-Table
Parameters:
table_name: interaction_entry
query: interaction=<interaction_sys_id>^ORDERBYsys_created_on
fields: sys_id,message,type,sys_created_on,sys_created_by
limit: 50
REST API を使用する場合:
GET /api/now/table/sys_journal_field?sysparm_query=element_id=<case_sys_id>^element=comments^ORDERBYDESCsys_created_on&sysparm_fields=value,sys_created_on,sys_created_by&sysparm_limit=20
GET /api/now/table/interaction_entry?sysparm_query=interaction=<interaction_sys_id>^ORDERBYsys_created_on&sysparm_fields=message,type,sys_created_on,sys_created_by&sysparm_limit=50
ステップ 6:チャット応答の推奨を生成する
収集したすべての情報に基づき、推奨する応答をまとめます。シナリオごとに推奨内容を構成します。
=== CHAT RESPONSE RECOMMENDATIONS ===
Case: [number] | Customer: [name] | Tier: [tier]
Category: [category] / [subcategory] | Product: [product]
CUSTOMER CONTEXT:
- Account Tier: [tier] (adjust formality accordingly)
- Previous Cases: [count] ([resolved_count] resolved)
- Preferred Language: [language]
- Known Issue: [yes/no - if matches known KB article]
RECOMMENDED GREETING:
"Hello [contact_name], thank you for reaching out. I can see you're
contacting us about [short_description]. I'm here to help you with that."
RECOMMENDED RESPONSE (Based on KB Article [kb_number]):
"I understand you're experiencing [issue_description]. Based on our
documentation, here are the steps to resolve this:
1. [step_1 from KB article]
2. [step_2 from KB article]
3. [step_3 from KB article]
Would you like me to walk you through these steps?"
ALTERNATIVE RESPONSE (Based on Similar Case [case_number]):
"I've seen similar cases where [resolution_summary]. Let me check
if the same solution applies to your situation. Could you confirm
[clarifying_question]?"
ESCALATION RESPONSE (if needed):
"I want to make sure this gets the attention it deserves. I'm going
to bring in a specialist from our [team_name] team who can provide
more detailed assistance. Please hold for just a moment."
CLOSING RESPONSE:
"Is there anything else I can help you with today? If this issue
comes up again, you can reference KB article [kb_number] in our
support portal for quick self-service."
ツールの使用方法
MCP ツールのリファレンス
| ツール | 使用する場面 |
|---|---|
SN-Natural-Language-Search | KB 記事や類似ケースを自然言語で検索する |
SN-Query-Table | ケース履歴、やり取り、KB 記事を構造化クエリで検索する |
SN-Get-Record | sys_id を指定して単一のケースまたはやり取りのレコードを取得する |
REST API のリファレンス
| エンドポイント | メソッド | 用途 |
|---|---|---|
/api/now/table/sn_customerservice_case | GET | 現在および過去のケースを検索する |
/api/now/table/interaction | GET | チャットのやり取りの詳細を取得する |
/api/now/table/interaction_entry | GET | チャットのトランスクリプトメッセージを取得する |
/api/now/table/kb_knowledge | GET | ナレッジベースの記事を検索する |
/api/now/table/sys_journal_field | GET | コメントと作業メモを取得する |
/api/now/table/customer_account | GET | 顧客のアカウント情報とランクを取得する |
/api/now/table/csm_consumer | GET | 消費者のプロフィールと設定を取得する |
ベストプラクティス
- 顧客のティアに合わせてトーンを調整する: Premium/Gold ティアの顧客には、よりパーソナライズされた丁寧な回答を提供し、言葉遣いを適切に調整します
- 具体的な KB 記事を参照する: エージェントが顧客にリンクを共有できるよう、KB 記事番号を必ず記載します
- 専門用語を避ける: 推奨内容には顧客にわかりやすい言葉を使い、技術的な詳細は社内の作業メモに記載します
- 繰り返しの問い合わせに配慮する: 顧客が同じトピックで過去に問い合わせている場合は、その経緯に触れ、問題が繰り返し発生していることをお詫びします
- セルフサービスの選択肢を提案する: 適切な場合は、今後同様の問題が発生したときに利用できるポータルのリソースを案内します
- メッセージを簡潔に保つ: チャットでの回答は最大 2~4 文にし、長い手順は複数のメッセージに分けます
- 複数の選択肢を提示する: エージェントが最適なものを選べるよう、回答の候補を 2~3 種類提示します
- 顧客の名前を使う: あいさつや回答には必ず顧客の名を含め、パーソナライズします
トラブルシューティング
「KB 記事が見つかりません」
原因: ナレッジベースに、ケースのカテゴリまたは製品に一致する記事がない可能性があります
解決策: 短い説明から重要な用語のみを使って、エンコードされた SN-Query-Table の検索範囲を広げます。また、kb_knowledge_baseLIKE[name] を使って、別のナレッジベースに記事が存在するか確認します。
「類似する解決済みケースが見つかりません」
原因: カテゴリまたはサブカテゴリに、解決済みケースの履歴が十分にない可能性があります
解決策: サブカテゴリのフィルターを外してクエリの範囲を広げます。製品のみで一致を試すか、カテゴリの完全一致の代わりに short_descriptionLIKE[key_terms] を使用します。
「チャットのトランスクリプトが空です」
原因: インタラクションのエントリーレコードが別のテーブルを使っているか、チャットがまだ開始されていない可能性があります
解決策: 代わりに live_message テーブルを確認します:sysparm_query=group=<interaction_sys_id>^ORDERBYsys_created_on。また、インタラクションの状態がアクティブ(state=2)であることも確認します。
「顧客履歴が読み込まれません」
原因: Consumer の sys_id が Contact の sys_id と異なる可能性があります
解決策: まず customer_contact をクエリして Consumer の参照先を取得し、それを使ってケース履歴をクエリします。ケースの consumer フィールドは csm_consumer に、contact フィールドは customer_contact に紐づいています。
例
例 1:製品返品に関する問い合わせへのチャット回答の推奨
シナリオ: 顧客が不良品の返品についてチャットで問い合わせています。
ステップ 1 - ケースを取得:
Tool: SN-Query-Table
Parameters:
table_name: sn_customerservice_case
query: number=CS0078901
fields: sys_id,number,short_description,description,state,category,subcategory,product,contact,account,consumer
limit: 1
ステップ 2 - KB を検索:
Tool: SN-Query-Table
Parameters:
query: workflow_state=published^123TEXTQUERY321=product return defective item return policy
table_name: kb_knowledge
limit: 3
ステップ 3 - 類似する解決済みケースを検索:
Tool: SN-Query-Table
Parameters:
table_name: sn_customerservice_case
query: category=Returns^subcategory=Defective Product^stateIN6,7^ORDERBYDESCclosed_at
fields: number,short_description,resolution_code,resolution_notes
limit: 3
生成された推奨内容:
CHAT RECOMMENDATION - CS0078901
Customer: John Martinez | Tier: Silver | Product: Widget Pro X
GREETING:
"Hi John, I'm sorry to hear about the issue with your Widget Pro X.
I'd be happy to help you with the return process."
RECOMMENDED RESPONSE (KB0045678 - Product Return Policy):
"For defective products within the warranty period, we offer a full
replacement or refund. I can initiate the return for you right now.
Could you confirm the order number or the date of purchase?"
FOLLOW-UP:
"I've initiated return RMA-2026-0456 for your Widget Pro X. You'll
receive a prepaid shipping label at [email protected] within the
next hour. Once we receive the item, your replacement will ship
within 2 business days."
例 2:エスカレーションを伴う請求に関するチャット
シナリオ: 請求に関する問題を抱えるリピーター顧客で、未解決の過去のケースがあります。
ステップ 1 - ケースと顧客履歴を取得:
Tool: SN-Query-Table
Parameters:
table_name: sn_customerservice_case
query: number=CS0079200
fields: sys_id,number,short_description,state,category,contact,account,consumer,priority,escalation
limit: 1
Tool: SN-Query-Table
Parameters:
table_name: sn_customerservice_case
query: consumer=[consumer_sys_id]^category=Billing^ORDERBYDESCopened_at
fields: number,short_description,state,resolution_code,opened_at
limit: 5
生成された推奨内容:
CHAT RECOMMENDATION - CS0079200
Customer: Lisa Chen | Tier: Gold | Category: Billing
!! ATTENTION: Customer has 2 prior billing cases in last 90 days,
including 1 unresolved (CS0077500). Handle with care. !!
GREETING:
"Hello Lisa, thank you for contacting us. I can see this is regarding
a billing concern, and I want to make sure we get this fully resolved
for you today."
EMPATHY RESPONSE (repeat issue detected):
"I understand this is frustrating, especially since you've had to
reach out about billing before. I sincerely apologize for the
inconvenience. Let me personally ensure this is addressed properly."
ESCALATION (if needed):
"Lisa, I want to make sure you get the best possible support on this.
I'm connecting you with our billing specialist team lead who has the
authority to review and adjust your account immediately."
関連スキル
csm/case-summarization- 推奨内容を生成する前に、ケースの全コンテキストを要約しますcsm/email-recommendation- チャットではなく、メールの回答を生成しますcsm/sentiment-analysis- 顧客の感情を分析し、回答のトーンを調整しますcsm/activity-response- 社内の作業メモとステータス更新を生成しますknowledge/content-recommendation- ナレッジベースの詳細な検索手法