OpenClaw、Neon、Resendで構築された自動化コールドメールシステム

✍️ OpenClawRadar📅 公開日: March 31, 2026🔗 Source
OpenClaw、Neon、Resendで構築された自動化コールドメールシステム
Ad

システムアーキテクチャと技術スタック

自動化されたコールドメールシステムは、OpenClawをAIエージェントとして使用し、すべてをオーケストレーションし、スクリプトを実行し、24時間365日返信を監視します。データベースにはサーバーレスPostgres DBのNeonを使用し、リード、送信、返信、会話を追跡します。メール処理は、トランザクションメールAPIであり返信受信機能を備えたResendを通じて行われます。追加ツールには、返信が受信トレイにも届くようにするメール転送用のImprovMX、プロスペクト獲得用のApolloが含まれます。

データベーススキーマ

データベースは4つのテーブルを使用します:

  • leads (id, email, name, company, status, project, notes)
  • emailssent (id, leadid, subject, body, resendmessageid, sent_at, project)
  • emailsreceived (id, leadid, fromemail, subject, body, receivedat, project)
  • conversations (id, leadid, project, lastreply_at, status)

すべてのテーブルにあるproject列により、1つのデータベースから複数のキャンペーンを実行できます。

リードフロープロセス

リードは以下の順序でシステムを流れます:

  • Apolloエクスポート → インポートスクリプト → leadsテーブル (ステータス: pending)
  • send.js → pendingリードを選択 → Resend経由で送信 → ステータス: sentに更新
  • followup.js → 7日後、返信なし → フォローアップ送信 → ステータス: followed_up
  • poll-replies.js → 5分ごとに実行 → Resend受信を確認 → emails_receivedに保存
  • AIエージェントが新規返信を検出 → iMessage通知送信 → ユーザーが返信

新規キャンペーンの設定

新規キャンペーンを設定するには:

  • projects.jsonにプロジェクトを追加(送信元アドレス、返信先、1日あたりの制限)
  • Resendでドメインを検証(SPF + DKIM)
  • 返信が受信トレイにもCCされるようにImprovMX転送をドメインに設定
  • Resend受信Webhookをサーバーエンドポイントに登録
  • リードCSVをDBにインポート(import-apollo-leads.js)
  • パーソナライゼーショントークンを含むメールテンプレートを作成
  • 2-3件のテスト送信を自分自身に行う
  • プロスペクト獲得/アウトリーチcronを設定 — 例:毎日8時に新規リード50件を検索してメール送信
Ad

送信スクリプトのロジック

送信スクリプトは以下のパターンに従います:

// データベースに接続
// ステータス = 'pending' AND プロジェクト = 'my_campaign'のリードを取得
// 各リードに対して(DAILY_LIMITまで):
// - リードフィールドを使用して件名+本文をパーソナライズ
// - Resend API経由で送信
// - emails_sentに挿入
// - リードステータスを'sent'に更新
// 完了時にOpenclawがメッセージを送信する任意のチャネル(私はiMessageを好みます)経由で自分自身にサマリーを送信

返信の自動取得

Resendには受信リレー機能があり — yourdomain.zoraug.resend.appに送信されたメールはすべてWebhookをサーバーに送信します。Next.jsエンドポイントは以下のように設定されています:

POST /api/inbound → Resendペイロードを解析 → 送信者メールをDBのリードと照合 → emails_receivedに挿入 → iMessageですぐに通知

これは24時間365日実行され、誰かが返信したときに即座にiMessage通知を提供します。

モニタリング

モニタリングには以下のコマンドを使用します:

node email-status.js # 全プロジェクト:送信件数、返信件数、保留中
node email-status.js projectname # 単一プロジェクト

出力例:

project1: 2,353 送信済み | 380 返信 | 1,800 保留中
project2: 1,971 送信済み | 120 返信 | 400 保留中

実践的なヒント

  • 名前に加えてさらにパーソナライズ — Apolloの組織名や役職フィールドから情報を取得し、都市、業種、特定の課題を参照します。これにより返信率が約1%から約4%に向上しました。
  • プレーンテキストメール — HTMLなし、ロゴなし、実際の人間が書いたように見える
  • 短い件名 — 4-6語、句読点なし、小文字
  • 単一のCTA — 1つのリンク、1つの依頼。「サイトをチェックして電話を予約してフォローしてください」ではない
  • 1日あたりの制限50-100件 — 新しいドメインで1日1,000件を一斉送信しない、すぐにフラグが立つ
  • 実際の受信トレイへの返信先 — noreply@や一般的な受信トレイではない。実際に確認するアドレスを使用

📖 Read the full source: r/openclaw

Ad

👀 See Also

本番環境で日次実行されるマルチエージェントセキュリティレビュー:アーキテクチャと発見事項
Use Cases

本番環境で日次実行されるマルチエージェントセキュリティレビュー:アーキテクチャと発見事項

ultrathink.artでは、専用のセキュリティエージェントを含む6つ以上のAIエージェントを本番環境で稼働させています。このセキュリティエージェントは、構造化されたチェックリストに基づいて毎日脆弱性チェックを実施し、優先度別のタスクとして結果を記録し、コーディングエージェントが自動的に修正を行います。

OpenClawRadar
AI TDDパイプライン:不良な指示が3,400件のテストを生み出した経緯とその解決策
Use Cases

AI TDDパイプライン:不良な指示が3,400件のテストを生み出した経緯とその解決策

ある開発者が、Claude Codeを使用して、異なるエージェントがテスト、コーディング、レビューを担当するマルチエージェントTDDパイプラインを構築しました。最初の指示「すべてに対してテストを書け」の結果、3,400件のテストが生成され、そのうち有効なものはわずか44%で、実際のバグを捕捉しない「カバレッジ・シアター」状態に陥りました。

OpenClawRadar
RedditユーザーがAIエージェント再起動による30%の予算浪費を報告、チェックポイント解決策を共有
Use Cases

RedditユーザーがAIエージェント再起動による30%の予算浪費を報告、チェックポイント解決策を共有

r/LocalLLaMAの開発者が、ワークフローが途中で失敗した際の再起動にAI予算の30%を費やしていることを発見しました。彼らはすべてのツール呼び出しにチェックポイントを実装し、冗長な処理を排除することでAPIコストを即座に削減しました。

OpenClawRadar
Claude、Gemini、GPTを活用したAI支援コーディングタスク
Use Cases

Claude、Gemini、GPTを活用したAI支援コーディングタスク

Claude、Gemini、GPTを組み合わせることで、それぞれの固有のアクセス能力を特定のタスクに活用し、AIコーディングワークフローを強化する方法をご紹介します。

OpenClawRadar