📨
概念 #n8n #ユースケース #一括メール #ループ #SendGrid #パーソナライズ #バッチ処理 📚 n8nワークフロー自動化

ループ処理でリストを走査し一括メール送信する

GoogleシートまたはDBから送信先リストを取得し、Loop Over Itemsで1件ずつパーソナライズされたメールを送信するバルクメールワークフロー。

ユースケース概要

Googleシートに登録した顧客リストを読み込み、Loop Over Itemsで1件ずつパーソナライズされたメールを送信する。送信レート制限に対応したバッチ処理付き。

解決する課題: 数百〜数千件のパーソナライズメールをコードなしで安全に一括送信する

使用するn8nノード:

  • Schedule Trigger(定期実行)またはManual Trigger
  • Google Sheets(リスト取得)
  • Filter(未送信者のみ絞り込み)
  • Loop Over Items(1件ずつ処理)
  • SendGrid(メール送信)
  • Wait(レート制限対応の待機)
  • Google Sheets(送信済みフラグ更新)

ワークフロー構成

[Schedule Trigger]

[Google Sheets: 顧客リスト取得]

[Filter: status == "未送信" のみ]

[Loop Over Items: Batch Size=1]
  ├── [SendGrid: パーソナライズメール送信]
  │       ↓
  │   [Google Sheets: status を "送信済み" に更新]
  │       ↓
  │   [Wait: 1秒待機(レート制限対応)]
  └── (次のitemへ)

実装手順

Step 1: Googleシートのリスト取得

Operation: Get Many Rows
Spreadsheet ID: your-spreadsheet-id
Sheet: 顧客リスト
Filters:
  status: 未送信

シートの列構成例:

| id | name    | email              | plan | status |
|----|---------|--------------------|----- |--------|
| 1  | Alice   | alice@example.com  | pro  | 未送信  |
| 2  | Bob     | bob@example.com    | free | 未送信  |

Step 2: Loop Over Itemsの設定

Input Data Field Name: data
Batch Size: 1

バッチサイズを1にすることで、送信失敗時に1件だけ影響を受ける。

Step 3: SendGridでパーソナライズメール送信

To Email: {{ $json.email }}
From: noreply@yourapp.com
Subject: {% if $json.plan == 'pro' %}Proプランの新機能についてのご案内{% else %}無料プランのアップグレードのご案内{% endif %}
Template ID: your-sendgrid-template-id
Dynamic Template Data:
  name: {{ $json.name }}
  plan: {{ $json.plan }}

Step 4: 送信済みフラグを更新

Operation: Update Row
Spreadsheet ID: your-spreadsheet-id
Row Number: {{ $json.rowNumber }}
Update:
  status: 送信済み
  sent_at: {{ $now.toISO() }}

Step 5: Waitノードで送信間隔調整

Wait Amount: 1
Wait Unit: Seconds

SendGridの無料プランは1日100通まで。レート制限は送信速度より総数に注意。

ポイント・注意事項

  • Googleシートへの「送信済み」フラグ更新は、送信成功後に実施する。失敗した場合は未送信のまま残すため再実行可能
  • 大量送信(1000件以上)の場合、SendGridの有料プランまたはAmazon SESを検討する
  • メール件名・本文に個人情報を含む場合、送信先リストのアクセス権限管理に注意する

関連機能

  1. 1. 🔄n8n概要 - ワークフロー自動化プラットフォーム
  2. 2. ⚙️n8nワークフローの基本(ノード・コネクション・実行)
  3. 3. n8nトリガーの種類(Webhook・スケジュール・イベント)
  4. 4. 🔀n8nロジック制御(フィルター・条件分岐・ループ・マージ)
  5. 5. 🌐n8n HTTP Request・API連携
  6. 6. 🔗n8n主要インテグレーション(Slack・Gmail・GitHub)
  7. 7. 🛡️n8nエラーハンドリング・デバッグ
  8. 8. 🤖n8n AI・LLMエージェント(Chain・Agent)
  9. 9. 💻n8n Codeノード・カスタム処理
  10. 10. 🏢n8nエンタープライズ機能(ソース管理・シークレット・チーム管理)
  11. 11. 🌤️毎朝SlackにAIで天気・ニュースを通知する
  12. 12. 📊GitHubのPRをGoogleシートに自動記録する
  13. 13. 📧新規ユーザー登録時にWelcomeメールを自動送信する
  14. 14. 💳StripeのWebhookで決済完了を検知して処理する
  15. 15. 📈スケジュールトリガーで週次レポートを自動生成する
  16. 16. 🎫Gmailトリガーでサポートメールを自動Notionチケット化する
  17. 17. 🎯条件分岐でリード属性に応じて担当者を振り分ける
  18. 18. 📨ループ処理でリストを走査し一括メール送信する
  19. 19. 📋複数APIのデータをマージして統合レポートを作成する
  20. 20. 🗄️外部REST APIからデータを取得してDBに保存する
  21. 21. 🔍GraphQL APIでGitHubのIssueを取得・加工する
  22. 22. 🔐Bearer認証付きAPIを呼び出してデータ同期する
  23. 23. SlackとNotionを連携したチームタスク管理フロー
  24. 24. 🤝GmailとHubSpotを連携したCRM自動化フロー
  25. 25. 🚀GitHubデプロイイベントをSlackに通知する
  26. 26. 🚨APIエラー発生時にSlackへアラートを送る
  27. 27. 🔁リトライ付きの堅牢なデータ同期フローを構築する
  28. 28. 📝エラーログをAirtableに自動記録する
  29. 29. 🤖LLMを使ったカスタマーサポート自動応答ボット
  30. 30. 🔎ドキュメントRAG検索システムを構築する
  31. 31. 📬AIでメール内容を自動分類・ルーティングする
  32. 32. 🔧JavaScriptで複雑なデータ変換処理を実装する
  33. 33. 📄npmライブラリを使ったPDF自動生成フロー
  34. 34. ✔️カスタムバリデーションロジックをCodeノードで実装する
  35. 35. 🗂️Gitでワークフローをバージョン管理する
  36. 36. 🌍環境変数で本番・ステージングを切り替える
  37. 37. 👥チームでのワークフロー共同管理フロー
  38. 38. 📋AIで履歴書を自動スクリーニング・スコアリングする
  39. 39. 🧾請求書PDFをOCRで自動データ入力・会計ソフト登録する
  40. 40. 📱ブログ記事→SNS自動投稿パイプラインを構築する
  41. 41. 📦Shopify注文処理を完全自動化する(在庫・配送・顧客通知)
  42. 42. 🔔予約リマインダーを自動送信してノーショーを削減する
  43. 43. 📊経営ダッシュボードを毎朝Slackに自動配信する
  44. 44. 🔭競合情報を自動収集してWeeklyレポートにまとめる
  45. 45. 🎉新入社員オンボーディングを完全自動化する

出典: https://docs.n8n.io/flow-logic/looping/