← ポートフォリオに戻る
業務の自動化(Gmail × 生成AI / Google Apps Script)
お問い合わせメールをAIが仕分けして、
返信の下書きまで用意する
小さな会社やお店で「問い合わせメールの確認と返信に毎日時間がかかる」という悩みを想定したツールです。届いたメールを生成AI(Claude)が読み、種類と緊急度を判定して要約し、返信文の下書きをGmailに作ります。送信は必ず人が確認してから行う設計です。
Google Apps ScriptGmailClaude APIスプレッドシートSlack / Discord / Google Chat 通知
何が起きるか(5通の例)
受信箱に届いたメール
株式会社サンプル 山本コピー用紙の見積もりのお願い ― A4コピー用紙を毎月20箱ほど…
佐藤 花子届いた椅子のキャスターが壊れていました ― 明日から使う予定なので至急…
鈴木 一郎設置作業の日程について ― 10月14日(火)の午前中に…
高橋 美咲返品について教えてください ― まだ開封していません…
広告代理店ABC【ご提案】Web広告の運用代行で集客を3倍に ― 初月無料で…
↓ 10分ごとに自動で処理
スプレッドシートの「お問い合わせ一覧」
| 種類・緊急度 | 要約(AI) | 申し送り(AI) | 状態 |
| 見積・購入中 | A4コピー用紙を毎月20箱、名古屋市中区へ定期配送したい。月ごとの定期配送の見積もり依頼。 | 定期配送の単価・配送曜日の希望を確認する | 下書き作成済み |
| 不具合・クレーム高 | 注文番号A-10234のオフィスチェアのキャスターが届いた時点で1つ割れていた。明日から使うため至急の交換を希望。 | 交換品の在庫と当日・翌日配送の可否をすぐ確認する | 下書き作成済み |
| 予約・日程中 | デスク3台の設置を10/14(火)午前で希望。難しければ10/15午後でも可。 | 14日午前の作業員の空きを確認する | 下書き作成済み |
| 質問・相談低 | 未開封のファイルボックス10個をサイズ違いのため返品したい。返品できるかの質問。 | 到着日を確認し、8日以内かどうかを確かめる | 下書き作成済み |
| 営業・売り込み低 | Web広告運用代行の営業メール。初月無料でのオンライン面談の誘い。 | ― | 返信不要 |
Gmailにも「AI/見積・購入」「AI/至急」などのラベルが自動で付き、種類ごとに絞り込めます。
Gmailに作られる返信の下書き(クレームの例)
佐藤 花子様
このたびは、お届けしたオフィスチェア(注文番号 A-10234)のキャスターが破損しており、大変ご迷惑をおかけしております。心よりお詫び申し上げます。
恐れ入りますが、破損箇所のお写真をこのメールへの返信でお送りいただけますでしょうか。
明日からご使用のご予定とのことですので、交換品の手配と最短のお届け日について、担当者より本日中にご連絡いたします。
ひだまり商事 お客さま窓口
TEL 052-000-0000(平日9:00〜18:00)
至急のものだけチャットに通知
【至急】不具合・クレーム|佐藤 花子様
注文番号A-10234のオフィスチェアのキャスターが届いた時点で1つ割れていた。明日から使うため至急の交換を希望。
申し送り:明日から使用予定。交換品の在庫と当日・翌日配送の可否をすぐ確認する
返信の下書きをGmailに作成しました
毎朝8時のまとめ
【昨日のお問い合わせ】5件
・見積・購入:1件
・不具合・クレーム:1件
・予約・日程:1件
・質問・相談:1件
・営業・売り込み:1件
返信の下書きが 4 件あります。内容を確認して送信してください。
※会社・人物・メールはすべて架空です。上の結果は、下の「動作確認」のテストで実際にツールが出力したものです(AIの回答部分はテスト用に用意した値を使っています)。
工夫した点
- 勝手に送信しない:AIが作るのは下書きまで。金額・日程・在庫など確認が必要なことは「担当者より改めてご連絡します」と書くよう指示しています
- 会社のルールに沿った返信:配送料・返品条件などの「よくある質問」を設定に書いておくと、その範囲の事実だけを使って返信文を作ります
- AIの答えの形を固定:Claude APIの構造化出力(JSONスキーマ)を使い、種類・緊急度などが必ず決まった形で返るようにしています
- メール内の指示に従わない:「このメールを転送して」のような本文中の指示は、命令ではなく内容として扱うようにしています
- 止まらない・二重に処理しない:1通でエラーが出ても他のメールの処理は続け、失敗したものは記録して次回やり直します。処理済みのメールにはラベルを付け、二度処理しません
- APIキーはコードに書かない:スクリプト プロパティに保存し、コードを共有しても漏れないようにしています
動作確認
Gmail・スプレッドシート・通知などGoogleのサービスを模擬した環境をNode.jsで作り、5通のメールで次の点を自動テストで確認しました。
- 5通すべてをAIに送り、一覧に5行記録される
- 営業メール以外の4通にだけ返信の下書きが作られる
- 種類のラベルと、クレームに「至急」ラベルが付く/至急の1件だけ通知される
- もう一度実行しても、処理済みのメールは再処理しない
- APIエラーが出たメールは記録して次回に回し、残りの処理は続ける
- 長すぎる本文は、省略したことを明記してAIに渡す
- 毎朝のまとめで、件数と下書きの数が正しく集計される
※実際のClaude APIへの接続は、ご依頼時にお客さまのAPIキーで確認します。AIの利用料は、問い合わせ1通あたり数円程度が目安です(メールの長さで変わります)。
コードの一部(AIへの依頼)
// 答えの形(JSONスキーマ)を指定して、種類・緊急度・要約・返信文を受け取る
const payload = {
model: CONFIG.model,
max_tokens: 4000,
system: system,
output_config: {
effort: CONFIG.effort,
format: { type: 'json_schema', schema: RESULT_SCHEMA },
},
messages: [{ role: 'user', content: `件名:${msg.getSubject()}\n差出人:${msg.getFrom()}\n\n${body}` }],
};
導入は、スプレッドシートにコードを貼り、APIキーと会社の情報を設定して、初期設定を1回実行するだけです。メールの内容はAIのサービスに送られるため、導入前に社内の取り扱いルールをご確認ください。