Media > AI活用ユースケース > カスタマーサポート > 問い合わせメールを内容別に分類して担当へ振り分ける

問い合わせメールを内容別に分類して担当へ振り分ける

実装ステータス:構成例 技術的に実現可能な構成として設計したもの。自社未検証

受信した問い合わせメール(またはフォーム投稿)を入力に、問い合わせ種別、担当すべきチーム、優先度、緊急度、含まれる製品名を判定させ、該当チームのキューへ自動で振り分けます。

サマリー
利用ツール
ChatGPT/Claude/Gemini/Make/n8n/Power Automate
対象業界
EC/IT・SaaS/小売/金融
対象部門
カスタマーサポート
対象業務
分類・仕分け
主な課題
人手が足りない/問い合わせが多い/確認ミスが多い
AIで行う処理
分類
主な効果
品質標準化/対応スピード向上/工数削減
導入難易度
★★★☆☆
実装レベル
本格構成
費用感
ノーコード連携(中)
人間の確認
条件付き
現在工数
110h/月
AI導入後
22h/月
想定削減
80%
年間削減
1,056h
モデル条件による試算値です。実在企業の実績ではありません。

01導入前 / 導入後の業務フロー

導入前(Before)
  1. 問い合わせがメール・フォーム・チャットで届く
  2. 問い合わせ管理システムにチケットとして登録される
  3. 一次受付の担当2名が、届いた順にチケットを開く
  4. 内容を読み、どのチームが対応すべきかを判断する
  5. チームを選んで割り当てる
  6. 緊急性が高そうなものは、チャットで担当チームに口頭で伝える
  7. 各チームの担当者が、自分のキューから順に処理する
導入後(After)
  1. 問い合わせが届く
  2. 自動内容を分類し、担当チーム・優先度・緊急度を判定する
  3. 自動緊急案件を検出したら、通常キューとは別に即時通知する
  4. 自動確信度が高いものは、該当チームのキューへ自動で割り当てる
  5. 確信度が低いもの、分類不能のものだけを、一次受付が仕分ける
  6. 各チームの担当者が処理する
  7. 自動割り当て後に「別チームへ再割り当て」された件を記録する
各工程の詳しい説明を読む
  1. 問い合わせがメール・フォーム・チャットで届く
  2. 問い合わせ管理システムにチケットとして登録される
  3. 一次受付の担当2名が、届いた順にチケットを開く
  4. 内容を読み、どのチームが対応すべきかを判断する
  5. チームを選んで割り当てる
  6. 緊急性が高そうなものは、チャットで担当チームに口頭で伝える
  7. 各チームの担当者が、自分のキューから順に処理する

問題は4つあります。

(a)一次受付が滞留する。 2名で1日200件を仕分けるため、朝に届いた分の仕分けが昼過ぎになることがあります。この時間は、顧客から見れば「返事が来ない時間」です。

(b)緊急案件が埋もれる。 「システムが止まっています」という報告が、通常の質問に混ざって順番待ちになることがあります。

(c)振り分けを間違える。 チームAに振られた案件が実はチームBの範囲で、たらい回しになります。顧客への回答が半日遅れます。

(d)土日・夜間に受け付けたものが月曜まで動かない。 緊急案件かどうかの判定が人の作業なので、営業時間外は止まります。

  1. 問い合わせが届く
  2. 【自動】 内容を分類し、担当チーム・優先度・緊急度を判定する
  3. 【自動】 緊急案件を検出したら、通常キューとは別に即時通知する
  4. 【自動】 確信度が高いものは、該当チームのキューへ自動で割り当てる
  5. 【人】 確信度が低いもの、分類不能のものだけを、一次受付が仕分ける
  6. 【人】 各チームの担当者が処理する
  7. 【自動】 割り当て後に「別チームへ再割り当て」された件を記録する

自動化されるのは「読む」「判断する」「割り当てる」の3つです。

3の緊急検出が、この構成でもっとも価値のある部分です。 営業時間外でも緊急案件が検出され、当番の担当者に通知が飛びます。

02今回想定するシステム構成

構成図
問い合わせ(メール / Webフォーム / チャット)
   │
   ▼
問い合わせ管理システム(チケット登録)
   │
   ▼【トリガー】チケットが作成されたとき(Webhook)
Power Automate(または Make / 個別実装)
   │
   ├──▶ 顧客マスタを参照(契約プラン / 過去の問い合わせ履歴)
   ├──▶ 分類定義を参照
   │
   ▼
LLM API ── 分類・担当チーム・優先度・緊急度の判定
   │
   ├──【緊急】→ 当番へ即時通知(Teams / Slack / 電話)
   ├──【確信度 高】→ 該当チームのキューへ自動割り当て
   └──【確信度 低 / 分類不能】→ 一次受付のキューへ
   │
   ▼
問い合わせ管理システムへ書き戻し
役割想定する製品代替候補
問い合わせ管理各社のチケット管理SaaSメール+スプレッドシート、kintone
ワークフローPower AutomateMake、n8n、個別実装
生成AIClaude APIOpenAI API、Gemini API
通知Microsoft TeamsSlack、メール、電話(緊急時)

問い合わせ管理SaaSに、AIによる自動振り分け機能が搭載されている製品が増えています。まずそれを確認してください。 自前で組む価値があるのは、自社独自の分類体系が細かい場合や、既存システムに機能がない場合です。

03どうやって実装するのか

Step1

処理の起点を決める

チケットが作成されたときを起点にします。問い合わせ管理システムがWebhookを提供していればそれを、なければ1分おきに新規チケットをポーリングします。

ポーリング間隔を長くしないでください。 この構成の価値は速さにあります。5分おきのポーリングだと、緊急案件の検出が最大5分遅れます。

Step2

入力データを集める

データ中身取得元
問い合わせ本文件名と本文チケット
添付ファイルの有無スクリーンショットなどチケット
顧客情報契約プラン、契約金額規模、担当営業顧客マスタ
過去の問い合わせ履歴直近3件の問い合わせ内容と結果問い合わせ管理システム
分類定義種別、担当チーム、優先度の基準サポート部が整備
緊急検出の定義何を緊急とするかサポート部が整備

顧客の契約プランを渡すことが重要です。 同じ内容の問い合わせでも、上位プランの顧客は優先度が高い、という運用がある場合、これがないと判定できません。

過去の問い合わせ履歴も効きます。 「先週も同じ不具合を報告している」という文脈があれば、優先度が上がります。

Step3

データの取得方法を決める

問い合わせ本文: チケット管理システムのAPIで取得します。メール本文には引用と署名が含まれるため、除去が必要です。

顧客情報: 問い合わせ元のメールアドレスから顧客を特定します。個人のフリーメールから問い合わせが来ることがあるため、特定できない場合の分岐を用意します。

Step4

AIへ渡す前に整形する

  1. 引用・署名の除去 … 過去のやり取りの引用が本文の大半を占めることがあります
  2. 添付ファイルの扱い … 画像の内容は分類に使わない設計にします。画像解析を入れると処理が重くなり、速さという価値が損なわれます。 添付の有無だけをフラグとして渡します
  3. 顧客の特定 … メールアドレスから顧客マスタを引きます
  4. 自動送信メールの除外 … 配信停止依頼、システムからの自動返信を、送信元パターンで除外します
Step5

AIに処理させる

処理内容
種別の分類使い方の質問/不具合報告/設定変更依頼/請求関連/その他
担当チームの判定分類定義に基づく
優先度の判定契約プラン、影響範囲、過去履歴から
緊急度の判定緊急検出の定義に該当するか
製品名の抽出どの製品・機能についての問い合わせか

回答はさせません。 この構成は振り分けだけです。

Step6

指示内容を固定する

あなたはカスタマーサポートの一次受付です。
以下の問い合わせを分類し、担当チームと優先度を判定してください。

【厳守事項】
- 回答を作成しないでください。分類のみを行ってください。
- 分類は、提示された分類定義の中からのみ選んでください。
  新しい分類を作らないでください。
- どの分類にも当てはまらない場合は "分類不能" とし、
  confidence を low にしてください。無理に分類しないでください。
- 顧客の感情や態度を評価しないでください。
  (例:「クレーマー」「怒っている」ではなく
    「返金を要求する記述がある」と事実を書く)
- 緊急判定は、提示された緊急検出の定義に該当する場合のみ
  true にしてください。定義にない理由で緊急にしないでください。
- 問い合わせ内容に書かれていない事象を推測しないでください。
- 1件の問い合わせに複数の用件が含まれる場合、
  主たる用件で分類し、他を secondary_topics に列挙してください。

【分類定義】
{category_definitions}

【緊急検出の定義】
{urgent_criteria}

【顧客情報】
契約プラン: {plan} / 契約規模: {contract_size}
過去30日の問い合わせ件数: {recent_count}

【過去の問い合わせ(直近3件)】
{recent_history}

【問い合わせ本文】
件名: {subject}
本文: {body}
添付ファイル: {has_attachment}

「顧客の感情や態度を評価しない」の1行が重要です。 これがないと、AIは「クレーマーの可能性が高い」といった記述を返します。それがチケットに記録され、担当者の目に触れることは、顧客対応の質を下げます。 観測できる事実(返金の要求がある、複数回の問い合わせがある)だけを書かせます。

「定義にない理由で緊急にしない」も重要です。AIは文面の強い表現(「至急」「困っています」)に反応して緊急判定を出しがちですが、緊急の定義は自社が決めるものです。 全件が緊急になると、緊急通知の意味がなくなります。

Step7

出力形式を固定する

{
  "category": "",
  "assigned_team": "",
  "priority": "P1 | P2 | P3",
  "is_urgent": false,
  "urgent_reason": "",
  "product": "",
  "secondary_topics": [],
  "observed_facts": [],
  "confidence": "high | medium | low",
  "reason": "",
  "unclassifiable": false
}
  • observed_facts … 「返金の要求がある」「解約に言及している」など、対応にあたって知っておくべき事実。評価ではなく事実として書かせます
  • reason … 分類の根拠。一次受付が確認する際に使います
Step8

システムへ連携する

自動割り当て: confidence: high かつ unclassifiable: false の場合、問い合わせ管理システムのAPIで担当チームを設定します。

緊急通知: is_urgent: true の場合、通常のキュー割り当てに加えて、当番担当者へTeams/Slackで通知します。営業時間外は、当番の担当者へSMSまたは電話通知を行う設計も検討してください。

一次受付キュー: confidence: low または unclassifiable: true の場合、一次受付のキューへ回します。

この部分は、問い合わせ管理システムのAPI仕様に依存します。利用環境に応じた個別確認が必要です。

Step9

人が確認する

事前確認はしません。 自動で割り当てます。

理由は、この構成の価値が速さにあるからです。人が確認してから割り当てる設計にすると、現状と変わりません。

代わりに、事後の仕組みで品質を担保します。

  1. 再割り当ての記録 … 割り当てられたチームが「これはうちではない」と判断して再割り当てした件を記録します。これが誤分類率の実測値になります
  2. 日次のレビュー … 一次受付が、前日の自動割り当ての結果を一覧で確認します(10分程度)
  3. 緊急判定の見直し … 緊急と判定されなかったが、実際は緊急だった件を記録します

導入初月は、自動割り当てをせず、AIの判定と人の判定を並行して記録してください。 一致率を測り、90%を超えることを確認してから自動割り当てに切り替えます。

Step10

例外に対処する

起きること対応
分類できない一次受付キューへ。無理に分類しない
顧客が特定できない(フリーメール)顧客情報なしで分類する。優先度は既定値にする
1件に複数の用件主たる用件で分類し、secondary_topics に記録する。チケットを分割するかは人が判断する
添付ファイルに情報がある(画像のみのメール)本文が空なら分類できない。一次受付キューへ回す
営業時間外の緊急案件当番へ通知する。通知先を必ず設定しておく。設定がないまま運用しない
同一顧客から短時間に複数の問い合わせ関連づけて表示する。個別に分類はする
スパム・営業メール分類定義に「対象外」を設け、専用キューへ
AI処理が失敗する一次受付キューへ回す。 処理失敗でチケットが宙に浮くことを絶対に避ける
法的要求(弁護士名義、内容証明の予告など)緊急検出の定義に含め、法務へも同時通知する

「AI処理が失敗したときにチケットが宙に浮かない」ことは、この構成で最も重要な例外処理です。 顧客からの問い合わせが誰にも届かない状態は、システム障害より深刻な結果になります。処理の成否にかかわらず、必ずどこかのキューに入る設計にしてください。

Step11

記録を残す

  • 問い合わせ本文
  • AIの分類結果と reason
  • 実際に対応したチーム
  • 再割り当ての履歴
  • 緊急判定の的中・見逃し

再割り当ての履歴が、この構成の唯一の実測指標です。週次で誤分類率を見て、5%を超えたら分類定義を見直してください。

04実装レベルの3段階

最小構成:過去分をまとめて分類し、精度を測る / 検証のみ
半自動化:分類結果を一次受付に提示し、人が確認して割り当てる / 判断の支援
本格構成:確信度の高いものを自動割り当て+緊急の即時通知 / 振り分けまで

この業務は、本格構成まで進まないと効果が出ません。 半自動化(人が確認して割り当てる)では、一次受付の作業が残るためです。 ただし、導入初月は半自動化で運用し、一致率を測ってから自動割り当てに切り替えてください。

05工数削減シミュレーション

前提値(モデル条件)
対象人数
2 名
月間件数
4,400 件
1件あたり現在時間
1.5 分
1件あたり導入後時間
0.3 分
現在  4,400件 × 1.5分 ÷ 60 = 110 時間/月
導入後 4,400件 × 0.3分 ÷ 60 = 22 時間/月
月間削減時間
88h
削減率
80%
年間削減時間
1,056h
年間金額換算(時間単価3,000円)
317万円
モデル条件による試算であり、実際の効果は業務内容・運用方法によって異なります。

自社条件で導入効果を整理したい方へ

このユースケースを自社に当てはめた場合の前提値と削減見込みを、業務ヒアリングをもとに整理します。

AI活用について相談する

06向いている企業・向いていない企業

向いている
  1. 問い合わせが月2,000件以上あり、担当チームが3つ以上に分かれている組織。一次受付の滞留が課題になっている場合。
向いていない
  1. 問い合わせ管理SaaSに自動振り分け機能がある場合。月300件未満で一次受付が滞留していない場合。

07最小構成で試す方法

  1. 分類定義を書く。種別5つ、担当チーム4つ、優先度3段階から始めます
  2. 緊急検出の定義を書く。「何を緊急とするか」を具体的に列挙します
  3. 過去の問い合わせ50件を選ぶ(実際にどのチームが対応したかが分かるもの)
  4. ChatGPT、Claude、Gemini などのチャット画面に、上のプロンプトと定義を貼る
  5. 50件を10件ずつ投げて分類させる
  6. 実際に対応したチームと照合する

評価の観点は3つです。

  • 一致率 … 実際の担当チームと一致した割合。90%を超えるかが判断基準です
  • 緊急の見逃し … 実際に緊急対応した案件を、緊急と判定できたか。ここはゼロでなければなりません
  • 感情評価の混入 … 「クレーマー」のような記述が出ていないか

一致率が90%を下回る場合、多くは分類定義の境界が曖昧です。特に「使い方の質問」と「不具合報告」の境界は、顧客の書き方では区別できないことがあります。 その場合、両方を扱えるチーム編成にするか、分類を統合します。

08実装時につまずきやすいポイント

問題対策
処理失敗でチケットが誰にも届かない失敗時は必ず一次受付キューへ回す。最優先で作り込む
全件が緊急と判定される緊急の定義を具体的に列挙する。「至急」という語だけで緊急にしない
AIが「クレーマー」などの評価を書く感情評価を禁止する。観測できる事実だけを書かせる
「質問」と「不具合報告」の境界が曖昧顧客の書き方で区別できないなら、分類を統合するかチーム編成を見直す
一致率が上がらない分類定義の境界を明記する。実際の振り分け実績から定義を作り直す
引用でトークンが膨らむ引用と署名を除去する
営業時間外の通知先が未設定当番体制を先に決める。通知先がないまま緊急検出を作らない
誤分類率が人の誤り率を上回る導入初月に並行運用して測る。上回るなら自動割り当てをしない
画像解析を入れて処理が遅くなる添付の有無だけをフラグにする。速さを優先する
1件に複数の用件があり片方が忘れられるsecondary_topics を必ず記録し、担当者に見せる

09セキュリティ・AIガバナンス上の注意点

この構成で扱うデータ: 顧客の氏名、メールアドレス、所属企業、問い合わせ内容。個人情報を含みます。問い合わせ内容によっては、顧客の業務内容や機密情報が含まれることもあります。

  1. 個人情報の外部送信 … 問い合わせ本文には氏名・連絡先が含まれます。外部AIサービスへの送信が、自社のプライバシーポリシーに記載した利用目的の範囲内かを確認してください。 委託先の監督義務も生じます
  2. 氏名のマスキング … 分類に顧客の氏名は不要です。メールアドレスから顧客を特定した後は、本文中の氏名を伏せて渡す設計を検討してください
  3. 顧客の機密情報 … 問い合わせに顧客のシステム構成、取引先名などが含まれることがあります。BtoBの場合、顧客との契約で情報の取り扱いが定められている場合があります
  4. 感情評価の禁止 … §7に書いたとおりです。AIが付けた評価が記録に残り、対応の質を変えることは避けるべきです
  5. 学習利用 … 入力を学習に使わないことが契約で保証されるサービスを選びます
  6. 自動実行してよい範囲 … 振り分けと通知までです。顧客への自動返信をこの構成に含めないでください。 分類が誤っていた場合、誤った返信が顧客に届きます。回答は UC-0019 で別に扱います

10まず何から始めるか

1週目:分類定義と緊急の定義を書く

AIを使う前に、これをやってください。 過去3か月の振り分け実績を見て、実際にどう分けているかを言語化します。この作業の過程で、チーム間の担当範囲が曖昧な部分が見つかります。 それは分類の問題ではなく組織の問題なので、先に整理します。

緊急の定義は、過去に実際に緊急対応した案件を洗い出して、そこから条件を作ります。 「至急と書いてある」ではなく、「サービスが利用できない旨の記述がある」「解約に言及している」といった具体的な条件にします。

2週目:50件で一致率を測る

最小構成(§8)で50件を分類し、実際の担当チームと照合します。一致率90%、緊急の見逃しゼロが目標です。

3〜4週目:半自動化で並行運用する

自動割り当てはせず、AIの判定を一次受付に見せる形で2週間運用します。人の判定と一致するかを毎日記録します。

2か月目: 一致率が90%を超えていれば、確信度の高いものの自動割り当てに切り替えます。緊急通知の当番体制を先に整備してください。

3か月目以降: 誤分類率を週次で監視します。5%を超えたら分類定義を見直します。


11関連ユースケース

12この仕組みを理解するための記事

13技術仕様の確認日・参考情報

技術仕様確認日:2026-09-02/最終更新:2026-09-08
確認した内容情報源確認日
Claude APIのStructured Outputs(JSON Schemaによる出力形式の固定、enumによる値の制限)Anthropic: Structured outputs2026-09-02
Power Automate / Outlookコネクタによるメール受信トリガーMicrosoft Learn: Outlook と Power Automate2026-09-02

問い合わせ管理システムのWebhook / API 提供状況、チケットへの書き戻し仕様は製品によって異なります。この部分は利用環境に応じた個別確認が必要です。

実装ステータス:構成例。 公開仕様に基づいて設計した構成であり、当社で実際に構築・検証したものではありません。工数の数値はモデル条件による試算です。

自社の業務に使えるAI活用候補を整理します

このユースケース(UC-0018)についてのご相談はこちらから。

AI活用について相談する
目次