FiveVai AI Lab
← 実演一覧に戻る

Message Assistant

Gmail と Backlog にまたがる未読を、毎朝 Slack の優先度リストに変換する。

複数チャネルの未読チェック → 4段階の優先度つきブリーフィングを Slack DM で受信
任せるAI難易度 2/5Bash / Claude Haiku 4.5 / Gmail API (gws CLI) / Backlog REST API / Slack Incoming Webhook

このPoCから得た実装知

  1. 1LLM に渡す前にルールベースでアーカイブ候補を除外すると、API コストと処理時間を削れる
  2. 2プロンプトインジェクション対策はシステムプロンプトの宣言だけでなく、ローカルの事前スクリーニング(jq フィルタ)と組み合わせて二重に守る
  3. 33段階バリデーション(スキーマ存在 → 値域 → ID 整合性)を入れると、LLM 出力の形式崩れによる障害を本番前に止められる
  4. 4priority_rules.json で VIP 送信者・アーカイブパターン・キーワードブーストを外部化すると、ルール変更にコード改修が不要になる
  5. 5片方のチャネル取得が失敗しても他方で続行する設計が、cron 定期実行での信頼性を担保する

判断材料

AI 権限レベル
任せるAI
想定対象部門
経営事業責任者プロジェクト管理
扱うデータ
Gmail 受信トレイBacklog 未読通知Slack
人間の承認
不要(閲覧・通知のみ)
失敗時の止め方
Claude API 分類が失敗した場合、該当メッセージは全件「手動確認」扱いに自動フォールバックする。Gmail ラベル付与は本番実行時のみ適用し、DRY_RUN で副作用なしに事前確認できる
導入難易度
2 / 5
初期導入期間
セットアップ(認証・ラベル作成)に1〜2時間、cron 設定まで含めて半日
必要な社内担当
Claude API キー保有者Gmail アカウント管理者(gws 認証)Backlog API キー発行者
連携対象 SaaS
GmailBacklogSlack
最小構成
Gmail のみ(Backlog は .env 未設定でスキップ可)
横展開先
メール優先度管理タスク通知集約朝のブリーフィング自動化

このPoCが向いている会社

以下に1つでも当てはまる会社では、効果が大きい。

  • Gmail と Backlog を日常的に使い、どちらも未読が積みあがりがちな経営者・事業責任者
  • 朝のメールチェックに時間をとられ、本来の意思決定が後回しになっている
  • 複数のプロジェクトを並走させており、対応優先度の判断自体が負担になっている
  • 自社のルール(VIP 取引先・重要キーワード)に合わせた分類をしたいが、汎用フィルタでは限界がある

経営インパクト

Before

Gmail と Backlog を別々に開き、重要度を自分で判断しながら未読を処理する

After

Slack DM に P1〜P4 の優先度つきリストが届き、まず何をすべきかがひと目でわかる

減ったリスク
プロンプトインジェクション疑いのメッセージを AI に渡す前に分離し、隔離ラベルを付与する
横展開できる型
チャネル別取得 → 共通スキーマへの正規化 → 注入スクリーニング → ルール事前分類 → LLM 分類 → 通知、というパイプライン構造は Slack・LINE WORKS など別チャネルへの横展開に再利用できる

このデータがあれば、これができる

最小構成 ─ まずここから
INPUT DATA
  • Gmail 未読メール(直近 24 時間、最大 50 件)
YOU CAN DO
  • P1〜P4 優先度つきブリーフィングを Slack DM に送信
  • Gmail に分類ラベルを付与
発展構成 ─ ここまでつなぐと強い
INPUT DATA
  • Gmail 未読メール
  • Backlog 未読通知
  • priority_rules.json(VIP 送信者・アーカイブパターン・キーワードブースト)
YOU CAN DO
  • ルール自動分類(API 呼び出しスキップ)+ Claude Haiku による残件分類
  • P1〜P4 の件数サマリーと詳細を Slack DM に送信
  • プロンプトインジェクション疑い件数とその差出人を Slack に表示
  • Gmail への分類ラベルおよび処理済みラベルの自動付与

Pain — どんな痛みがあったか

経営者・COOの痛み
  • Gmail と Backlog を朝に順番に開き、何が急ぎかを自分で判断する時間がとられる
  • 重要な顧客メールを見落とすリスクが未読件数に比例して高まる
  • メルマガや自動通知が重要メールに混ざり、本当に読むべきものが埋もれる
プロジェクト管理担当の痛み
  • Backlog の未読通知がどのプロジェクトの何を意味するか、開いて確認するまでわからない
  • 対応が必要なアサイン通知と参考情報の通知が混在している

Intent — なぜ作ったか

メール確認を「仕事」と認識していたが、本来の仕事は確認の先にある判断と行動だ。Gmail と Backlog を毎朝まとめて AI に渡し、優先度の判断だけを任せる。自分はリストのトップから順に動けばいい状態をつくる。

Approach / Rationale / Lessons / 改善ログ の続きを読む

Magic Link で 60 秒。クレカ不要・退会即時。

最初の1週間でやること

  • DRY_RUN モードで実行し、分類結果を標準出力で確認する
  • priority_rules.json に自社の VIP 取引先メールアドレスを登録する
  • アーカイブさせたいメルマガ送信者を correct.sh --archive で追加する
  • cron を平日朝 7 時に設定し、Slack DM でブリーフィングを受け取る

やらないこと

  • Gmail への書き込み(送信・削除)は行わない。ラベル付与だけ
  • Backlog へは読み取り専用で、チケットの更新は行わない
  • AI に渡す前に注入スクリーニングで除外するため、メール本文が LLM に無制限に届く設計にしない

費用対効果の考え方

  • 毎朝の Gmail + Backlog チェックにかかる確認・判断時間の削減
  • 重要メールの見落とし防止(P1 は即返信・P2 は本日中のアクションが明示される)
  • プロンプトインジェクション疑いの自動隔離による誤操作リスクの低減
このPoCの位置づけ

シェルスクリプト × Claude API で作るマルチチャネル優先度フィルタの実装事例

毎朝の未読チェックを、優先度つきのブリーフィングに変える。インフラは cron とシェルスクリプトだけ。

導入前チェックリスト

商談前に、自社側でこの 4 点を確認しておくと検討がスムーズに進む。

  • Gmail と Backlog のどちらを使っているか、両方か?

    Backlog は .env を空にすればスキップできる。Gmail だけでも動作する

  • Claude API キーと Slack Incoming Webhook URL を発行できるか?

    どちらも必須。Anthropic Console と Slack アプリ管理画面で取得する

  • macOS に gws(Google Workspace CLI)をインストールし、gmail.modify スコープで認証できるか?

    Gmail の未読取得とラベル付与に必要。brew install gws で導入できる

  • VIP 取引先や優先プロジェクトのパターンを priority_rules.json に登録できる担当者がいるか?

    コード変更不要で correct.sh から追加できる