AIで問い合わせメール自動分類する方法|Gmail×ChatGPTを30分で構築【無料中心】

AIで問い合わせメール自動分類する方法|Gmail×ChatGPTを30分で構築【無料中心】

この記事は「まだ自動化を一度も試したことがない人」向けに、アカウント作成から設定、動作確認、公開(自動で動く状態)までを最短ルートで案内します。
途中でつまずいてもやり直せるように、各ステップで「なぜ必要か」も伝えながら進めていこうと思います。

1. この記事でできること

この記事ではGmailに届いた問い合わせメールをAI(ChatGPT API)で自動分類し、指定のラベルを自動で付与する仕組みを最短30分で作ります。

ノーコード自動化サービス「Make(旧Integromat)」を使うのでプログラミングは不要です。
無料プラン中心で進めますが、OpenAIのAPIキー発行にはクレジットカード登録が必要です(利用料は数円~/日レベルから)。

2. 今回作る自動化の仕組みの全体像

全体の流れはシンプルです。

  • Gmailで「要分類」ラベルが付いた新着メールを検知(Makeのトリガー
  • 件名と本文をChatGPT(OpenAI API)に渡して分類(例:見積り依頼/サポート/解約/迷惑メール/その他)
  • 結果に応じてGmailのラベル「自動分類/◯◯」を自動付与

ポイントは「ラベル運用」です。はじめにGmailにラベルを作っておくとMake側は結果の文字列をそのままラベルにマッピングできて分岐設定が最小化できます。
無料プランのMakeは最短実行間隔が15分なので最大15分遅れで自動分類されます。

3. 事前に必要なアカウント・準備物

ツール/サービス 用途 無料プラン クレカ要否 この章で取得/作成
Googleアカウント(Gmail) 問い合わせ受信、ラベル付与 あり 不要 Gmailラベル一式
Make(make.com) ノーコード自動化基盤 あり(最短15分間隔) 不要 シナリオ1本
OpenAI API(ChatGPT) メール内容のAI分類 従量課金 必要(API課金のため) APIキー1本

準備物(事前に決めておくとスムーズに進められます)

  • 分類カテゴリ名:見積り依頼/サポート/解約/迷惑メール/その他(必要なら後で増減可)
  • 重要度の基準:高/中/低(AIに判定させます)

4. 必要なツール、アカウントの設定

4-1. Gmailでラベルを作る(理由:後工程をシンプルにする)

Gmailを開き、左メニューの「新しいラベルを作成」から以下を作ります。親子構造にするのは視認性を上げつつMakeで動的に指定しやすいためです。

  • 自動分類/見積り依頼
  • 自動分類/サポート
  • 自動分類/解約
  • 自動分類/迷惑メール
  • 自動分類/その他
  • 要分類(最初のトリガー用の一時ラベル)

最初は手動で「要分類」ラベルを付けたメールだけを対象にし、安心してテストできるようにします。慣れたら受信箱全体に広げましょう。

4-2. OpenAI APIキーを取得(AI分類に必須)

OpenAIのアカウントにログインし、APIセクションから新しいAPIキーを作成します。APIの利用にはクレジットカード登録が必要です。
1通あたりの費用は軽量モデルでごく少額(数十~数百トークン/通、月数百通でも数百円程度が目安)です。APIキーは後でMakeに貼り付けるので必ずメモしておいてください。

4-3. Makeアカウント作成(理由:ノーコード自動化の基盤)

make.comで無料アカウントを作成します。無料プランでも1シナリオ・15分ごとの実行で十分に試せます。Google連携時はブラウザの指示に従って認可してください。

5. 自動化ツールの設定

ここからは実際の手を動かします。まず作ってみることが大切です。

5-1. シナリオの骨組み(理由:最小構成でまず動かす)

  1. Makeで新しいシナリオを作成します。


  2. 最初のモジュールに「Gmail」を選び、「Watch emails(新着監視)」を選択します。検索条件にを指定します。これで「要分類」ラベルが付いたメールだけが対象になります。



  3. テスト用に、自分のGmailで1通メールに「要分類」ラベルを手動で付けておきます。

5-2. AI分類の設定(判定結果を機械可読にする)

  1. 次のモジュールに「OpenAI(ChatGPT)」を追加し、「Generate a Completions(または同等の会話API)」を選びます。



  2. 「Create a connection」からメモしておいたAPIキーを接続します。


  3. モデルは軽量・低コストのもの(例:gpt-4o-mini)を選ぶとランニングコストを抑えられます。
    プロンプトは「出力をJSONだけに限定」するのがコツです。以下をコピーして使ってください(タグになるものは画像のように選択肢から選んでください)。
{"role": "system", "content": "あなたはカスタマーサポートの仕分け担当です。次の制約を必ず守ってください。1) 出力はJSONのみ、前後に余計な文字を入れない 2) categoryは[見積り依頼, サポート, 解約, 迷惑メール, その他]のいずれか 3) urgencyは[高, 中, 低] 4) reasonは短く日本語で。"}
{"role": "user", "content": "以下のメールを分類してください。\n件名: {{GmailのSubject}}\n本文: {{GmailのBody(プレーンテキスト)}}\n出力フォーマット: {\"category\":\"\",\"urgency\":\"\",\"reason\":\"\"}"}

出力をJSON限定にすると、後工程で「JSONを解析」して値だけを安全に取り出せます。温度(temperature)は0.2程度に下げ、ブレを小さくします。

5-3. JSONの解析(ラベル名にそのまま差し込む)

  1. 「JSON > Parse JSON(JSON解析)」モジュールを追加し、OpenAIのテキスト出力を入力にします。



5-4. Routerでカテゴリーごとに分岐させる

  1. 「Flow Control > Router」を追加し、5つのカテゴリーの条件を作る。(category = 見積もり依頼 など)
    categoryが選択肢に出てこない場合は一度テスト実行すると出てきます。

5-5. Gmailにラベル付与(人がすぐ見つけられる形に)

  1. 5つのRouterから「Gmail > Update email label」をそれぞれ追加し、Message IDに最初のGmailモジュールのIDをマッピングします。


  2. Labelには条件ごとのラベルを選択する。見積もり依頼の条件なら「自動分類/見積もり依頼」とする。


全体の構成図としてはこんな感じです。

 

5-5. スケジュールON(理由:自動で回り続ける状態へ)

シナリオ右上のスケジュールをONにし、15分間隔で実行にします(無料プランの最短)。これで放っておいても新着があれば自動分類されます。

6. 動作確認(実際の質問例)

以下の文面(件名と本文)を自分宛に送信し、受信後に手動で「要分類」ラベルを付けてみましょう。数分以内に自動で「自動分類/◯◯」ラベルが追加されれば成功です。うまくいかなくても大丈夫。どこで止まったかを順に見直せば戻せます。

  • 見積り依頼の例:件名「御社サービスAの見積り依頼」 本文「ユーザー数20名での月額費用と初期費用を教えてください」→ 期待カテゴリ:見積り依頼、緊急度:中
  • サポートの例:件名「ログインできません」 本文「パスワードリセットを試しましたがメールが来ません」→ 期待カテゴリ:サポート、緊急度:高
  • 解約の例:件名「解約手続きについて」 本文「来月末での契約終了を希望します」→ 期待カテゴリ:解約、緊急度:中
  • 迷惑メールの例:件名「今すぐ当選金を受け取れます」→ 期待カテゴリ:迷惑メール、緊急度:低

Makeの実行履歴で各モジュールの入出力を確認してください。OpenAIの出力がJSONになっているか、categoryに想定語が入っているかがチェックポイントです。

7. うまく動かないときのチェックポイント

  • Gmailトリガーが反応しない:検索条件がになっているか、該当メールにそのラベルが付いているかを確認。最初の実行は「Run once」で手動実行してみましょう。
  • OpenAIでエラー(401/429):APIキーの貼り付けミス、または課金未設定・利用上限に達していないかを確認。キーは環境変数として再発行も可。
  • JSON解析で失敗:AIの出力がJSON以外を含んでいる可能性。プロンプトに「出力はJSONのみ」と明記し、temperatureを下げ、フォーマット例を必ず提示してください。
  • ラベルが付かない:Gmail側に「自動分類/◯◯」が存在するか、categoryの表記ゆれ(例:"見積り依頼" vs "見積依頼")がないかを確認。必要に応じて分岐+固定ラベルで回避。
  • 思った分類にならない:システムプロンプトに「短い定義」を1~2行足すと精度が安定します(例:解約=契約終了の意思表示が明確なもの)。
  • 実行が遅い:Make無料プランは15分間隔。即時性が必要なら有料プランやGmailフィルタ+複数シナリオなどを検討。
  • 費用が不安:OpenAIのモデルを軽量に、メール本文は要約してから分類する二段構えにするとコスト削減になります。まずは数日回して実績を確認しましょう。

8. 次にできる改善アイデア

  • 自動返信の下書き作成:カテゴリ別のテンプレート(例:見積り依頼にはヒアリング項目)を自動生成し、Gmailの下書きに保存。人は最終チェックだけ。
  • 優先度ルーティング:urgency=高はSlack/Teamsに即時通知、担当者メンション、チャンネル分岐。
  • 学習用ログ:Googleスプレッドシートに件名・カテゴリ・AI理由を書き出し、月次で見直し。誤分類をプロンプトに反映。
  • 少数の例示(Few-shot):過去の代表メールを数件、カテゴリごとにプロンプトへ追加し、判断基準を明確化。
  • 迷惑メール対策:Gmailの既存スパム判定に加え、件名の特徴語や差出人ドメインで事前フィルタ。
  • 複数窓口の統合:別アドレス(info@・support@)をGmailで集約し、同じシナリオで一括分類。

まずは今回の最小構成で「最後まで作り切る」ことが大事です。一度回り始めれば、少しずつ直したい点が見えてきます。失敗しても大丈夫。ラベル運用とプロンプトを小さく調整しながら、自分の業務に合わせて育てていきましょう。