Gmail Organize
受信トレイのノイズを6分類に仕分け、Slack DM で今すぐ動くべきメールだけを届ける。
未読の山を毎朝眺める時間 → P1/P2/P3 の優先度リストが Slack に届いた状態
任せるAI難易度 2/5bash / jq / Claude Haiku 4.5 / Gmail API(gws CLI) / Slack Incoming Webhook
このPoCから得た実装知
- 1LLMにメール本文を渡す前にローカルでプロンプトインジェクション疑いを除外する2段構えが、経営者メールボックスの安全な自動化に不可欠
- 2モデル出力はスキーマ存在・値域・ID整合性の3段バリデーションで受け取り、いずれかで落ちたメールには 95_AI_ERROR ラベルを付けて人に戻す
- 3Bash + jq だけで完結する構成は、GASやサーバーなしで macOS の cron に乗せられる最小スタック
- 4分類カテゴリは6種に絞り込み、判断に迷ったら 90_Unknown を選ぶルールにすることでモデルの過剰重要判定を抑制した
- 5Slack 通知は P1/P2/P3 の優先度別セクション+要返信リストに構造化し、通知を開いた瞬間に次のアクションが分かる形にした
判断材料
- AI 権限レベル
- 任せるAI
- 想定対象部門
- 経営総務DX推進
- 扱うデータ
- Gmail受信トレイSlack DM
- 人間の承認
- 不要(閲覧・通知のみ)
- 失敗時の止め方
- バリデーション不通過のメールには 95_AI_ERROR ラベルを付与して処理をスキップ。注入疑いのメールは 91_Prompt_Injection_Suspected で隔離し、Gmail 上で人が手動確認できる
- 導入難易度
- 2 / 5
- 初期導入期間
- 環境変数(APIキー・Webhook URL)と gws 認証が整えば当日中に動く
- 必要な社内担当
- メールオーナーSlack ワークスペース管理者(Webhook作成のみ)
- 連携対象 SaaS
- GmailSlackClaude API(Anthropic)
- 最小構成
- CLAUDE_API_KEY と SLACK_WEBHOOK_URL を .env に記入し、gws 認証を通せば実行可能
- 横展開先
- 受信トレイ管理メール優先度付け経営者アシスタントSlackブリーフィング
このPoCが向いている会社
以下に1つでも当てはまる会社では、効果が大きい。
- 未読メールが毎日50件以上溜まり、重要なものを見逃しやすい経営者・DX責任者
- Gmail と Slack を軸に業務を回しており、新たなツールを増やしたくない
- サーバーを立てずに macOS の cron だけで定期実行したい
- メールのプロンプトインジェクション対策を実装込みで試したい
経営インパクト
Before
受信トレイを自分で開き、件名と差出人を目視で優先度判断してから返信対象を選ぶ
After
Slack DM に P1/P2/P3 のブリーフィングが届き、受信トレイを開かずに今日の対応順序が分かる
- 減ったリスク
- プロンプトインジェクション疑いのメールを事前除外することで、悪意あるメールがLLM判断を乗っ取るリスクを低減
- 横展開できる型
- 注入スクリーニング → LLM分類 → バリデーション → ラベル付与 → Slack通知 のパイプライン構成
このデータがあれば、これができる
最小構成 ─ まずここから
INPUT DATA
- ▸Gmail 未読・未処理メール(件名 / 差出人 / スニペット)
YOU CAN DO
- ▸6カテゴリへの自動分類
- ▸Gmail ラベル付与
- ▸Slack DM ブリーフィング(P1/P2/P3別)
発展構成 ─ ここまでつなぐと強い
INPUT DATA
- ▸Gmail 未読・未処理メール
- ▸カスタム user_context(顧客名・案件名)
- ▸cron による平日90分毎の定期実行
YOU CAN DO
- ▸優先度別・要返信別 Slack サマリー
- ▸注入疑いメールの自動隔離と通知
- ▸処理済み / エラー別 Gmail ラベル管理
- ▸実行ログ(~/.gmail-briefing/)
Pain — どんな痛みがあったか
経営者・COO/CIOの痛み
- 受信トレイを開くと重要メールと営業メールが混在し、優先度判断に時間が取られる
- 移動中や会議の合間に「今すぐ返すべきか」を件名だけで判断しなければならない
- 見落としが怖くて通知をオフにできない
Intent — なぜ作ったか
毎日の受信トレイ確認を自動化し、本当に今動くべきメールだけを Slack に届ける。ツールを増やすのではなく、すでに使っている Gmail と Slack の間にだけ処理を挟む構成にこだわった。
最初の1週間でやること
- gws 認証と Slack Webhook URL を用意する
- Gmail に9つのラベルを作成する(初回セットアップスクリプトで一括作成)
- MAX_EMAILS=5 の Dry Run で分類精度を確認する
- precheck_injection.sh の誤検出閾値をログで確認・調整する
- cron に平日90分毎の実行を登録する
やらないこと
- メール本文全文をスクリーニングなしで LLM に渡さない
- バリデーション失敗を無視して分類結果をそのまま適用しない
- 注入疑いメールを自動削除しない(隔離にとどめ、人が確認する)
- MAX_EMAILS を大きくしすぎてトークン消費とレート制限リスクを高めない
費用対効果の考え方
- 受信トレイを開いて優先度判断する時間の削減
- 重要メール見落としによる対応遅延の低減
- プロンプトインジェクション対策込みのメール自動化の実装知
このPoCの位置づけ
自律型AIの安全な実装パターン事例
AIがメールを自動分類するなら、注入スクリーニングとバリデーションがセットで必要。この実装がその答えを見せる。
導入前チェックリスト
商談前に、自社側でこの 3 点を確認しておくと検討がスムーズに進む。
Gmail の未読メールを優先度順に整理する時間が毎日発生していますか?
件名を目視で確認して返信判断している場合に該当します
Gmail と Slack を業務の中心に使っていますか?
新たなツール導入なしで連携できます
macOS 上でサーバーなしに cron だけで動かすことを求めていますか?
bash / jq / gws CLI が揃えば追加インフラは不要です