中規模のマーケティングエージェンシーがクライアントメールに溺れていました。3人のアカウントマネージャーが1日の半分をリクエスト分類、Salesforceへの情報コピー、ステータス更新に費やしていました。OpenClawでプロセス全体を自動化し、劇的な結果を達成しました。
メールカオス
40のアクティブアカウントにまたがる毎日200+通のクライアントメール。各メールに分類(緊急/通常/参考)、CRM入力、適切なルーティングが必要。毎日6時間の人的時間、付加価値ゼロ。
アーキテクチャ概要
OpenClawはセルフホストのUbuntu 22.04サーバー(4コア、8GB RAM)で稼働し、IMAPでエージェンシーのGoogle Workspaceメールにアクセス。REST APIでSalesforceに接続、Slack webhookで内部ルーティング。ローカルLlama-3-8Bモデル(Ollama経由)がメール意図の分類、構造化データの抽出、ドラフト返信の生成を行います。
┌─────────────┐ IMAP/30秒 ┌──────────────┐
│ Gmail / │◄──────────────│ OpenClaw │
│ Workspace │───────────────►│ ノード │
└─────────────┘ ドラフト返信 └──────┬───────┘
│
┌─────────────┼─────────────┐
▼ ▼ ▼
┌──────────┐ ┌──────────┐ ┌──────────┐
│Salesforce│ │ Slack │ │ Notion │
│ CRM │ │ Webhook │ │ ログDB │
└──────────┘ └──────────┘ └──────────┘OpenClaw設定
# IDENTITY.md — メールトリアージエージェント あなたはマーケティングエージェンシーのメールトリアージ専門家です。 クライアントメールの分類、データ抽出、ルーティングが役割です。 ## 分類ルール - 緊急:48時間以内の締切、予算問題、クレームに言及 - アクション:成果物、会議、ステータス更新のリクエスト - 参考:転送ニュースレター、CCスレッド、自動通知 - スパム:ベンダー営業、無関係なマーケティング ## データ抽出 全クライアントメールから抽出: 1. クライアント企業名(CRMと照合) 2. プロジェクト名(アクティブプロジェクトと照合) 3. 言及された締切日 4. 予算額(あれば) 5. 感情(ポジティブ/ニュートラル/ネガティブ) ## 返信ルール - 緊急 → テンプレで返信ドラフト作成、Slack #urgent-inboxにアラート - アクション → Salesforceタスク作成、返信ドラフト、担当者にルーティング - 参考 → タグ付け、アーカイブ、CRM活動ログ更新 - 自動送信は絶対禁止。常にドラフトを作成し人間がレビュー。
# docker-compose.yml — メールトリアージスタック
version: '3.8'
services:
openclaw:
image: openclaw/openclaw:latest
ports:
- "18789:18789"
environment:
- OPENCLAW_MODEL=ollama:llama3:8b
- OPENCLAW_GATEWAY_TOKEN=${GATEWAY_TOKEN}
- IMAP_HOST=imap.gmail.com
- IMAP_PORT=993
- IMAP_USER=inbox@agency.com
- IMAP_PASSWORD=${IMAP_APP_PASSWORD}
- IMAP_POLL_INTERVAL=30
- SALESFORCE_CLIENT_ID=${SF_CLIENT_ID}
- SALESFORCE_CLIENT_SECRET=${SF_CLIENT_SECRET}
- SALESFORCE_REFRESH_TOKEN=${SF_REFRESH_TOKEN}
- SLACK_WEBHOOK_URGENT=${SLACK_URGENT_WEBHOOK}
- SLACK_WEBHOOK_DAILY=${SLACK_DAILY_WEBHOOK}
volumes:
- ./identity:/app/identity
- ./data:/app/data
restart: unless-stopped
ollama:
image: ollama/ollama:latest
ports:
- "11434:11434"
volumes:
- ollama_data:/root/.ollama
deploy:
resources:
reservations:
devices:
- capabilities: [gpu]
volumes:
ollama_data:完全ワークフロー
1. メール取り込み
OpenClawが30秒ごとにGmail IMAPをポーリング。新メールを解析:送信者、件名、本文、添付ファイル(ファイル名のみ)、CCリスト、スレッドコンテキスト。
// OpenClaw ポーリング: INBOX (UNSEEN) 30秒ごと // 解析フィールド: from, subject, body, cc, date, attachments
2. 意図分類
LLMが各メールを緊急/アクション/参考/スパムに分類し、信頼度スコアを付与。80%未満の信頼度のメールは人間レビュー用にフラグ。
分類: 緊急 (信頼度: 0.94) 理由: クライアントが「金曜締切」に言及 + ネガティブ感情 クライアント: Acme社 → プロジェクト: Q2キャンペーンリフレッシュ
3. 構造化データ抽出
キーフィールドを抽出しCRMレコードと検証。ファジーマッチングで企業名のバリエーション(例:「Acme」vs「Acme Corporation Inc.」)に対応。
抽出結果: クライアント: Acme社 (SF ID: 001xx000003DGbW) プロジェクト: Q2キャンペーンリフレッシュ (SF Opp: 006xx000001abc) 締切: 2026-03-21 (金曜) 予算言及: ¥6,750,000 (変更なし) 感情: ネガティブ (0.23)
4. CRM自動更新
REST APIでSalesforceレコードを更新:活動ログエントリ、必要に応じて商談ステージ更新、連絡先「最終連絡日」リフレッシュ。
POST /services/data/v59.0/sobjects/Task
{
"Subject": "メール: Q2締切懸念",
"WhoId": "003xx000002xyz",
"WhatId": "006xx000001abc",
"Status": "Open",
"Priority": "High"
}5. Slackルーティング + ドラフト返信
緊急メールでSlackに即時アラートとコンテキストを送信。Gmailにドラフト返信を生成し、アカウントマネージャーがレビュー・編集・送信。
Slack #urgent-inbox: 🔴 緊急 Sarah@AcmeCorpから 件名: Q2キャンペーン — 締切懸念 → Gmailドラフト返信準備完了 → SFタスク作成済み (高優先度) → 担当者: @jessica に通知済み
90日後の成果
90日間にわたり、3つの主要指標で変革を測定しました:
| 指標 | 導入前 | 導入後 | 変化 |
|---|---|---|---|
| 日次メール管理時間 | 6時間 | 45分 | ↓ 87.5% |
| CRMデータ精度 | 約60% | 95%+ | ↑ 58% |
| 平均応答時間 | 4.2時間 | 38分 | ↓ 85% |
| 週次緊急メール見逃し | 3-5通 | 0通 | ↓ 100% |
| 顧客満足度 (NPS) | 34 | 67 | ↑ 97% |
「月曜の朝が怖くなくなった。受信トレイが事前にソートされ、ドラフト返信が承認待ちの状態。眠らないジュニアアカウントマネージャーがいるようなもの。」— エージェンシーディレクター
コスト分析
| 項目 | 月額 | 備考 |
|---|---|---|
| サーバー (Hetzner CAX31) | $15 | 4コアARM, 8GB RAM |
| Ollama + Llama-3-8B | $0 | セルフホスト、API料金なし |
| Salesforce API | $0 | 既存プランに含まれる |
| Slack (無料プラン) | $0 | Webhookベース、アップグレード不要 |
| Google Workspace | $0 | 既存サブスクリプション |
| 合計 | $15/月 | vs $2,400/月(ジュニアスタッフ3人分の工数) |
年間節約:スタッフ時間の約$28,000をクライアント対応業務に再配分。初年度ROI:15,500%。
セキュリティとプライバシー
⚠️ メール資格情報を平文で保存しないこと。Docker secretsまたは権限制限付き.envファイル(chmod 600)を使用してください。
よくある質問
Q1. 分類が間違っていたら?
Q2. 添付ファイルは処理できる?
Q3. Outlook / Exchangeで使える?
Q4. 推奨モデルサイズは?
Q5. セットアップにどれくらいかかる?
得られた教訓
コードではなくIDENTITYから始める
精度向上の80%はIDENTITY.mdの自然言語ルールの改善から。モデル選択や設定変更ではない。
信頼度閾値が重要
分類信頼度80%(90%ではなく)がスイートスポット。90%は過多のメールを人間レビューにフラグし、目的に反する。
スレッドコンテキストは必須
単一メール分類では継続スレッドのコンテキストを見逃す。スレッド内の直近3メッセージをLLMプロンプトに追加し、精度が78%から94%に向上。
自動送信しない
最大の教訓:AI生成の返信を絶対に自動送信しない。常にドラフトを作成。38分の応答時間は人間のレビュー+送信を含み、クライアントはエージェンシーをより信頼する。