mcpField
D
detect-conversation-type

detect-conversation-type

github.com/happy-technologies-llcその他4141 回インストール2 日前に更新
リポジトリ

detect-conversation-type について

ServiceNowの各種エンゲージメントチャネルでの会話を分類し、ルーティングや後続対応に活用するスキルです。問い合わせ、依頼、苦情、フィードバック、エスカレーション、トラブルシューティング、フォローアップに加え、複数の意図も扱います。

主な機能

  1. 01会話を7種類に分類
  2. 02会話内の複数の意図を検出
  3. 03分類をルーティング規則に対応付け
  4. 04インタラクションに分類メタデータを追加
  5. 05担当者の修正から精度を追跡

活用シーン

  1. 01Virtual Agentトピックのルーティング設定
  2. 02会話を担当者や対応キューへ振り分け
  3. 03インタラクションレコードへの分類追加
  4. 04担当者の修正を基に規則を改善

MCP 対応

ServiceNowのMCPツールでメッセージやインタラクションレコードを取得し、トピックを検索して、後続レコードや分類メタデータを作成・更新します。

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/happy-technologies-llc/happy-platform-skills --skill detect-conversation-type

インストール後、Claude Code で/detect-conversation-typeを入力して読み込まれたか確認します。

詳細

会話タイプの検出と分類

概要

このスキルは、ServiceNow のエンゲージメントチャネル(Virtual Agent、チャット、メール、ポータル)で発生している会話のタイプを検出して分類し、インテリジェントなルーティングと対応を可能にします。

  • 問い合わせ:サービス、ポリシー、ステータスに関する情報を求める質問
  • リクエスト:対応可能なサービスリクエストまたはカタログ注文
  • 苦情:サービスの回復対応が必要な、不満の表明
  • フィードバック:サービス、プロセス、体験に関する建設的な意見
  • エスカレーション:即時の対応または管理者の関与が必要な緊急の問題
  • トラブルシューティング:診断手順が必要な技術的な問題解決
  • フォローアップ:以前の会話または既存のチケットの続き

使用する場面: Virtual Agent のトピックルーティングを構築するとき、分類メタデータでインタラクションレコードを拡充するとき、会話の引き継ぎ判断を自動化するとき、またはサービス改善のために会話のパターンを分析するときです。

前提条件

  • ロール: admin、sn_customerservice_manager、itil、または virtual_agent_admin
  • プラグイン: com.glide.cs.chatbot(Virtual Agent)、com.glide.interaction(Agent Workspace Interaction)
  • アクセス権: sys_cs_conversation、sys_cs_message、interaction テーブルへの読み取りアクセス
  • 知識: Virtual Agent のトピック設計、会話フローの概念、感情分析の基礎
  • 関連スキル: 感情スコアリング用の csm/sentiment-analysis、応答候補用の csm/chat-recommendation

手順

ステップ 1:会話メッセージを取得する

分類のために会話履歴を取得します。

MCP の方法:

Tool: SN-Query-Table
Parameters:
  table_name: sys_cs_message
  query: conversation=<conversation_sys_id>^ORDERBYsys_created_on
  fields: sys_id,body,direction,sys_created_on,typed_by,message_type
  limit: 50

REST の方法:

GET /api/now/table/sys_cs_message
  ?sysparm_query=conversation=<conversation_sys_id>^ORDERBYsys_created_on
  &sysparm_fields=sys_id,body,direction,sys_created_on,typed_by,message_type
  &sysparm_limit=50

インタラクションベースの会話の場合:

Tool: SN-Query-Table
Parameters:
  table_name: interaction
  query: sys_id=<interaction_sys_id>
  fields: sys_id,short_description,type,channel,state,opened_for,assigned_to,opened_at,work_notes
  limit: 1
ステップ 2:最初のユーザーメッセージを分析する

最初のユーザーメッセージは、会話タイプを判断する最も強い手がかりです。次の項目を抽出します。

インテントのシグナル:

シグナルの種類例分類
疑問詞"How do I..."、"What is..."、"Where can I..."問い合わせ
行動を示す動詞"I need..."、"Please set up..."、"Can you create..."リクエスト
否定的な感情"This is unacceptable..."、"I'm frustrated..."苦情
提案を示す表現"It would be nice if..."、"Have you considered..."フィードバック
緊急性を示す語句"URGENT"、"This is critical"、"Need help NOW"エスカレーション
問題の説明"It's not working"、"I'm getting an error..."トラブルシューティング
以前の会話への言及"Following up on INC..."、"As discussed..."フォローアップ
ステップ 3:分類ルールを適用する

重み付け分析を使用して、会話を各タイプに照らしてスコアリングします。

=== CONVERSATION CLASSIFICATION ===
Conversation ID: CS0045678
Channel: Virtual Agent (Service Portal)
User: Jane Smith (Engineering)
Initial Message: "I've been waiting 5 days for my laptop and no one
  has contacted me. This is the third time I've had to follow up.
  I need this resolved today or I need to speak with a manager."

Classification Scores:
| Type            | Score | Signals Detected |
|-----------------|-------|------------------|
| Complaint       | 85%   | Negative sentiment, dissatisfaction, wait time mention |
| Escalation      | 75%   | "speak with a manager", urgency ("today") |
| Follow-up       | 60%   | "third time", reference to prior interaction |
| Request         | 30%   | "need this resolved" (implicit service need) |
| Inquiry         | 10%   | No information-seeking language |
| Feedback        | 5%    | No constructive suggestion |
| Troubleshooting | 5%    | No technical problem described |

PRIMARY: Complaint (85%)
SECONDARY: Escalation (75%)
COMPOSITE: Complaint with Escalation Request

URGENCY: High
SENTIMENT: Negative (frustrated)
PRIORITY ACTION: Route to human agent with escalation flag
ステップ 4:複数のインテントを含む会話を検出する

1 つの会話に複数のインテントが含まれる場合があります。該当するものをすべて特定します。

MCP の方法:

Tool: SN-Query-Table
Parameters:
  query: 123TEXTQUERY321=laptop delivery delay complaint escalation
  table_name: sys_cb_topic
  limit: 10

インテントの変化を把握するため、メッセージごとに分析します。

Message 1: "I need to reset my password" -> Request
Message 2: "Also, the VPN has been slow all week" -> Troubleshooting
Message 3: "And when will the new laptops be available?" -> Inquiry

Classification: Multi-intent conversation
Primary: Request (password reset - most actionable)
Secondary: Troubleshooting (VPN performance)
Tertiary: Inquiry (laptop availability)
ステップ 5:分類をルーティングルールに対応付ける

分類に基づいて、適切な対応ワークフローを決定します。

ルーティングマトリックス:

分類チャネル優先度ルーティング先
問い合わせVirtual Agent低ナレッジ検索 -> FAQ トピック
リクエストVirtual Agent中カタログアイテムのトピック -> フルフィルメント
苦情ライブエージェント高CSM キュー -> サービス回復
フィードバック非同期低フィードバック収集 -> アンケート
エスカレーションライブエージェントクリティカルマネージャーキュー -> 優先対応
トラブルシューティングVirtual Agent中診断トピック -> IT サポート
フォローアップライブエージェント中元の担当者 -> コンテキストの再開

MCP の方法:

Tool: SN-Query-Table
Parameters:
  table_name: sys_cb_topic
  query: nameLIKEcomplaint^active=true
  fields: sys_id,name,description,queue,priority,active
  limit: 5
ステップ 6:インタラクションレコードを拡充する

分類メタデータでインタラクションまたは会話レコードを更新します。

MCP の方法:

Tool: SN-Update-Record
Parameters:
  table_name: interaction
  sys_id: <interaction_sys_id>
  data:
    u_conversation_type: "complaint"
    u_secondary_type: "escalation"
    u_urgency: "high"
    u_sentiment: "negative"
    u_classification_confidence: "85"
    u_routing_recommendation: "csm_escalation_queue"

REST の方法:

PATCH /api/now/table/interaction/<interaction_sys_id>
Body: {
  "u_conversation_type": "complaint",
  "u_secondary_type": "escalation",
  "u_urgency": "high",
  "u_sentiment": "negative"
}
ステップ 7:タイプに基づいて後続レコードを作成する

分類に基づいて、適切なレコードを自動的に作成します。

苦情の場合 -- CSM ケースを作成します:

MCP のアプローチ:

Tool: SN-Create-Record
Parameters:
  table_name: sn_customerservice_case
  data:
    short_description: "Complaint: Laptop delivery delay - 3rd follow-up"
    description: "<conversation summary>"
    priority: 2
    contact: "<user_sys_id>"
    category: "complaint"
    u_complaint_type: "service_delivery"
    u_source_conversation: "<conversation_sys_id>"

リクエストの場合 -- カタログリクエストを作成します:

Tool: SN-Create-Record
Parameters:
  table_name: sc_request
  data:
    requested_for: "<user_sys_id>"
    short_description: "Password reset request via chat"
    description: "<conversation context>"
    u_source_conversation: "<conversation_sys_id>"
ステップ 8:エスカレーションのルーティングを処理する

エスカレーションが検出されたら、直ちにルーティングを開始します。

MCP のアプローチ:

Tool: SN-Update-Record
Parameters:
  table_name: interaction
  sys_id: <interaction_sys_id>
  data:
    state: "transferred_to_agent"
    assignment_group: "<escalation_queue_sys_id>"
    u_escalation_reason: "Customer requested manager involvement"
    u_escalation_priority: "high"
    work_notes: "AI Classification: Complaint with escalation request. Customer has followed up 3 times regarding laptop delivery delay. Sentiment: Negative/Frustrated. Routing to escalation queue."
ステップ 9:分類精度を追跡する

分類の判断を継続的に監視し、検証します。

MCP のアプローチ:

Tool: SN-Query-Table
Parameters:
  table_name: interaction
  query: u_conversation_typeISNOTEMPTY^sys_created_on>javascript:gs.daysAgo(30)
  fields: u_conversation_type,u_classification_confidence,state,u_agent_override_type
  limit: 500

精度の指標を計算します:

=== CLASSIFICATION ACCURACY (Last 30 Days) ===

| Type            | Classified | Agent Override | Accuracy |
|-----------------|-----------|---------------|----------|
| Inquiry         | 245       | 12            | 95.1%    |
| Request         | 189       | 8             | 95.8%    |
| Complaint       | 67        | 5             | 92.5%    |
| Troubleshooting | 156       | 11            | 92.9%    |
| Escalation      | 34        | 3             | 91.2%    |
| Feedback        | 28        | 4             | 85.7%    |
| Follow-up       | 42        | 6             | 85.7%    |

Overall Accuracy: 93.4%
Most Common Misclassification: Feedback classified as Inquiry
ステップ 10:分類ルールを改善する

上書きデータを使用して、分類精度を向上させます。

MCP のアプローチ:

Tool: SN-Query-Table
Parameters:
  table_name: interaction
  query: u_agent_override_typeISNOTEMPTY^u_conversation_type!=u_agent_override_type
  fields: u_conversation_type,u_agent_override_type,short_description
  limit: 50

誤分類を分析して傾向を特定し、ルーティングルールを更新します。

ツールの使用方法

ツール目的使用するタイミング
SN-Query-Table会話、メッセージ、トピック、指標を取得します主なデータ取得
SN-Get-Record特定のインタラクションの詳細を取得します単一の会話の分析
SN-Create-Record後続レコード(ケース、インシデント)を作成します分類に基づいて対応するとき
SN-Update-Record分類メタデータでインタラクションを充実させます分類結果の記録
SN-Natural-Language-Search一致するトピックや類似の会話を検索しますトピックのルーティングとパターンマッチング

ベストプラクティス

  1. 最初のメッセージで分類する -- 初回の分類を行うために、複数回のやり取りを待たないでください
  2. 再分類に対応する -- 会話の途中でタイプが変わることがあります。分類を動的に更新してください
  3. 信頼度のしきい値を使用する -- 信頼度が70%未満の場合は、分類を人間のエージェントに引き継いでください
  4. 意図と感情を組み合わせる -- ネガティブな感情を伴うリクエストは、実際には苦情である可能性があります
  5. 複数の意図を適切に処理する -- 最も緊急性の高い意図に最初に対応し、その後で二次的な意図に対応してください
  6. 会話のコンテキストを保持する -- 分類メタデータ全体を、引き継ぎ先のエージェントまたはワークフローに渡してください
  7. エージェントによる上書きを追跡する -- 上書きデータを学習シグナルとして使用し、分類ルールを改善してください
  8. チャネルのコンテキストを考慮する -- 電話の通話には、チャットやメールとは異なるパターンがあります
  9. 言語やトーンの変化を検出する -- 中立的な表現からネガティブな表現への変化は、エスカレーションの兆候であることがよくあります
  10. プライバシーを尊重する -- メタデータフィールドに機密性の高い個人情報を記録または分類しないでください

トラブルシューティング

問題原因解決方法
メッセージが取得されない会話テーブルまたはID形式が間違っていますsys_cs_conversation テーブルと interaction テーブルのどちらを使用しているか確認してください
分類が常に「問い合わせ」になるデフォルトのフォールバックが積極的すぎます問い合わせのしきい値を下げ、シグナルパターンを追加してください
エスカレーションが検出されない緊急性を示す表現がシグナルリストにありません検出ルールに、ドメイン固有の緊急性を示す表現を追加してください
複数の意図が処理されない最初の意図しか抽出されていません意図を蓄積しながら、メッセージごとに分析する処理を実装してください
誤ったキューにルーティングされるトピックのマッピングが古くなっていますsys_cb_topic のルーティング設定を更新してください
信頼度スコアが低いメッセージが曖昧、または非常に短いです分類の前に、ユーザーに確認を求めてください

例

例 1:仮想エージェントによる問い合わせの分類

入力: ユーザーメッセージ:「2026年の会社の休日を教えてください。」

分類: 問い合わせ(信頼度95%)。ナレッジ検索トピックにルーティングします。推奨するナレッジベース記事:「2026年の会社休日カレンダー」。

例 2:エスカレーション検出を伴う苦情

入力: ユーザーメッセージ:「2週間前にリクエストを送信しましたが、何も進んでいません。まったく受け入れられません。実際に対応してくれる人と話す必要があります。」

分類: 苦情(88%)+エスカレーション(80%)。エスカレーションキューのライブエージェントにルーティングします。優先度を高く設定します。このユーザーの既存の未完了リクエストを自動検索します。

例 3:複数の意図があるチャットセッション

入力: ユーザーが 3 件のメッセージを送信します。パスワードのリセット依頼、VPN ポリシーに関する質問、ポータルのデザインに関するフィードバックです。

分類: 複数の意図を検出しました。主な意図:依頼(パスワードのリセット、対応可能)。副次的な意図:問い合わせ(VPN ポリシー)。3 つ目の意図:フィードバック(ポータル)。パスワードのリセットを IT トピックに振り分け、VPN に関する質問をナレッジ検索のキューに追加し、UX チームのレビュー用にフィードバックを記録します。

関連スキル

  • csm/sentiment-analysis - 会話の詳細な感情分析
  • csm/chat-recommendation - エージェント向けの返信候補
  • hrsd/chat-reply-recommendation - HR に特化したチャット返信候補
  • genai/playbook-recommendations - 会話に適した対応プレイブックを特定
  • itsm/incident-triage - インシデントの分類と振り分け

コメント