BlueAI株式会社BlueAI
カリキュラム/第4章: 業務自動化/4-3 Claude Code でメール一括作成|50 通を個別カスタマイズ

4-3 Claude Code でメール一括作成|50 通を個別カスタマイズ

無料

顧客リスト+テンプレートから 50 通の個別パーソナライズメールを Claude Code で一気に生成。トーン分岐、配信ツール連携(SendGrid 等)、特定電子メール法への配慮までまとめて解説します。

4章: 業務自動化45分
酒井歩乃加
監修: 酒井歩乃加

フリーランス編集者・ライター / 元マイベスト編集ディレクター

平原尚樹
監修: 平原尚樹

株式会社BlueAI 代表取締役CEO / ソフトウェアエンジニア

このレッスンで身につくこと

このレッスンでは、Claude Code を使って 顧客 CSV から個別カスタマイズされたメール本文を 50〜500 通単位で一括生成 できるようになります。テンプレート差し込みではなく、1 人 1 人の状況に合わせて言い回しまで変える レベルを目指します。

ポイント

このレッスンのゴール

  • メール一括作成の 4 つの典型シナリオ を整理し、自分の業務に当てはめられる
  • 顧客 CSV から 個別文面を 50 通 生成する基本パターンを書ける
  • 既存顧客 / 新規 / 休眠 でトーンを切り替える分岐プロンプトを書ける
  • 件名・冒頭の パーソナライズ箇所 をルール化できる
  • SendGrid / Gmail API での 自動送信 と「手動コピペ運用」のトレードオフを判断できる
  • 失敗パターン — 同文流用バレ・個人情報漏洩・配信タイミング — を最初に潰せる
  • 特商法 / オプトアウト / GDPR の最低限の配慮を実装に組み込める

所要時間 — 約 45 分(読むだけなら 20 分) 難易度 — ★★☆☆☆(CSV を扱える前提)


はじめに — 「差し込みメール」と「一括カスタムメール」は別物

差し込みメール一括カスタムメール は、似て非なるものです。差し込みは「{会社名}」を機械的に入れ替えるだけ。一括カスタムは 顧客ごとに本文の構成・トーン・推奨商品まで変える もの。前者は Word の差し込み印刷でもできますが、後者は 従来「手作業で 1 通ずつ書く」しかなかった領域 でした。Claude Code はここを一気に飲み込めます。

気づき

「コピペ可能なメール」は、相手にも 1 秒で見抜かれます。

人は文面の 自分専用感 を直感的に検知します。「先日の◯◯について」「先月ご購入の△△、その後いかがですか」が入っているだけで、開封率も返信率も劇的に変わります。Claude Code の本質的価値は、この自分専用感を 50 通分でも 500 通分でも維持できる ことにあります。


メール一括作成の典型シナリオ 4 つ

業務で発生するメール一括送信は、ほぼ次の 4 つに分類できます。プロンプト設計の出発点として最初に押さえます。

シナリオ主な目的文面のキー要素推奨頻度
フォローアップ購入・面談後のお礼と次の提案直近接点の具体内容、次回提案接点後 3〜7 日
リード再活性化休眠顧客の掘り起こし前回ご縁・期間、新着情報半年に 1 回
ニュース配信新商品・キャンペーン告知受信者属性に応じた切り口月 1〜2 回
アポイント打診商談・面談の依頼候補日、所要時間、目的都度

全部を 1 つのプロンプトで賄おうとしない のが鉄則です。フォローアップとニュース配信では「最適な書き出し」も「推奨される長さ」も違います。シナリオごとに ==prompts/email-*.md== にテンプレートを分けて保存するのが、第 4-1 章で学んだレポート自動化と同じ考え方です。

ポイント

最初に取り組むなら「フォローアップ」が一番効果が見えます。母数が少なく、トーン分岐も少なく、返信率の改善が数字で測りやすいからです。慣れてからニュース配信に広げると失敗しません。


顧客 CSV から個別文面生成(基本パターン)

まずは フォローアップ のシナリオで、基本パターンを身につけます。手順は CSV 準備 → プロンプト → 出力確認 → 微修正 の 4 ステップです。

Step 1 — 顧客 CSV を用意する

最初は実データではなく、15 件のダミー CSV で練習します。本番データで詰まる原因(列名違い、文字化け)を最初から避けるためです。

> 顧客リスト customers.csv を作って。
> 列は「会社名, 担当者名, 役職, メールアドレス, 前回購入日, 購入金額, 前回購入商品, ステータス」。
> ステータスは「既存 / 新規 / 休眠」のいずれか、それぞれ 5 件ずつ。
> 前回購入日は 2025-11-01〜2026-05-01 の範囲で散らす。
> 金額は 10 万〜500 万円。商品名は「Plan A」「Plan B」「Plan C」「コンサル」「研修」のいずれか。

ステータス列を最初から入れておく のが今回の肝です。あとでトーン分岐の判断材料になります。

Step 2 — 個別文面を生成する

CSV を読み込んで、各顧客宛のメール本文をファイルに分けて出力させます。

> customers.csv を読み込んで、各顧客宛のフォローアップメールを作って。
>
> 件名のテンプレート:
>   「{会社名} {担当者名}様 — {前回購入商品} のその後について」
>
> 本文に必ず含める要素:
>   - 担当者名 + 様付け、役職の言及(任意)
>   - 前回購入商品と購入日(◯ヶ月前のご購入)
>   - 直近の状況伺い(疑問・困りごとを引き出す質問 1 つ)
>   - 次回提案(金額帯に応じてプラン名を変える)
>   - 結びの一言(押し付けがましくない、返信負荷の低い)
>
> 出力:
>   - emails/ フォルダに 会社名-担当者名.txt で保存
>   - 全件の一覧を email-list.csv に(件名, 宛先, 担当者, ステータス, ファイルパス)
>
> 文面ルール:
>   - 1 通あたり 200〜350 字
>   - 過度に丁寧すぎず、ビジネスメールとして自然に
>   - 同文流用に見えないよう、書き出しの言い回しを 5 パターン以上ローテーション

書き出しのローテーション指示 がポイントです。これを書かないと「いつもお世話になっております」が 50 通並びます。「拝啓 〜」「先日は」「ご無沙汰しております」「お忙しいところ」「◯月にご購入いただいた」など、Claude は明示すれば自然にバラします。

Step 3 — 生成結果を抜き取り確認する

emails/ フォルダに 15 件の .txt が並びます。全件読まなくて OK。ランダムに 3〜5 通開いて、次を確認します。

  • 担当者名・会社名・商品名に 取り違え がないか
  • 書き出しが 同じパターンの連続 になっていないか
  • 数値(購入金額・期間)に 幻覚(hallucination) が混ざっていないか

特に 3 つ目が大事です。Claude は CSV に書かれていない情報を「もっともらしく補完」することがあります。「半年前のお取引から」と書いてあるのに、CSV では 2 ヶ月前 — みたいな食い違いが起きていないか、5 件ほどクロスチェックします。


言い回しのトーン分岐(既存顧客 / 新規 / 休眠)

ステータスを入れた CSV の真価がここで出ます。ステータス別にトーンを切り替える 指示を 1 段かぶせるだけで、文面の質感が一気に上がります。

> customers.csv のステータス列に応じてメールのトーンを変えて。
>
> 既存顧客:
>   - 親しみのある語り口、絵文字は使わない
>   - 「いつもありがとうございます」系で始める
>   - 過去の購入実績に軽く触れる
>
> 新規顧客:
>   - フォーマル寄り、敬語をやや厚めに
>   - 自己紹介と感謝を冒頭に
>   - 押し売りは厳禁、関係構築を優先
>
> 休眠顧客:
>   - お詫び 1 段(ご無沙汰)+ 近況の軽い共有
>   - 強い提案ではなく「お困りごとありませんか」のスタンス
>   - 返信が無くても自然な締め方
>
> 共通:
>   - 文末の CTA は 1 つだけ
>   - 「ご検討よろしくお願いします」のような曖昧な締めは禁止

共通ルールに「CTA は 1 つだけ」を入れる のが効きます。メールは ==1 通 = 1 アクション== が鉄則。複数の依頼を 1 通に詰めると、相手は最も簡単なものだけ返事をして、残りは流れます。

気づき

トーンの切替は「テンプレートの差し替え」ではなく「指示の重ね方」で実現します。

トーン別にテンプレート HTML を 3 種類用意して切り替える方式は、表面的には整いますが、結局 テンプレ流用感 が残ります。Claude に「ステータスに応じてトーンを変えて」と一言渡し、書き出しと結びの言い回しを 毎回生成 させるほうが、自然な手紙感が圧倒的に強く出ます。


件名と本文のカスタマイズ

件名は開封率の 80% を決めます。本文がどれだけ良くても、件名で弾かれれば届きません。3 つの原則を押さえます。

原則 1 — 件名に固有名詞を 1 つ入れる

「{会社名} 様」「{商品名} のその後」のように、受信者が「自分宛だ」と一目で分かる単語 を必ず入れます。「いつもお世話になっております」だけの件名は、迷惑メール扱いされる確率が跳ね上がります。

原則 2 — 件名は 20〜30 字以内

スマホの受信箱だと 25 字前後で切れます。重要な単語を冒頭 に置きます。「【ご案内】〜」のような飾りカッコは、冒頭の貴重な 5 字を消費するので、迷ったら 使わない ほうが良い結果が出ます。

原則 3 — 本文冒頭 1 行で「自分宛」を確定させる

NG: 「いつも大変お世話になっております。」
OK: 「先月ご購入いただいた Plan B、その後のご利用状況はいかがでしょうか。」

1 行目に固有情報を入れるかどうか で、相手の集中度が変わります。Claude には「冒頭 1 行に必ず固有名詞または直近接点に触れる」と明示します。


SendGrid / Gmail API への接続 vs 手動コピペ

生成したメールを どう送るか は、運用フェーズで一番悩むポイントです。3 つの選択肢があります。

方式適した規模自動化度リスク
手動コピペ〜30 通/週★☆☆誤送信、宛先取り違え
Gmail API + 下書き保存〜200 通/週★★☆API 制限、認証管理
SendGrid / Resend200 通〜★★★スパム判定、配信ドメイン管理

推奨ルート — 「下書きまで自動、送信は手動」

最初に強く勧めるのは Gmail API で「下書き」まで自動生成、送信ボタンは人間 の運用です。Claude に頼みます。

> email-list.csv の各行について、Gmail API で下書きを作成するスクリプトを書いて。
>
> 認証は OAuth2、credentials.json を読み込み。
> 各下書きは:
>   - To: メールアドレス列
>   - Subject: 件名列
>   - Body: ファイルパス列の .txt の中身
>   - 送信はせず、Drafts に保存
>
> 完了後、Gmail の下書きフォルダに 15 件並ぶ状態にして。
> エラーは errors.log に行番号と理由を記録、それ以外は処理を継続。

下書き止まり にしておけば、Gmail の画面で 1 通ずつ目視確認 → 送信ができます。誤送信リスクが 実質ゼロ になり、配信ペースも調整できます。「全自動で配信」は 運用に乗せて 3 ヶ月経ってから が安全です。

SendGrid / Resend を使うとき

メルマガ規模(月 1,000 通超)になると、Gmail からの送信は スパム判定1 日の送信上限 にぶつかります。このフェーズでは SendGrid / Resend / Amazon SES のような 配信専用サービス に切り替えます。Claude に「SendGrid SDK で email-list.csv を一括送信、レート制限は 10 req/sec、失敗は 3 回までリトライ、結果を delivery-log.csv に記録」と頼めば 10 分でスクリプトが立ち上がります。SPF / DKIM / DMARC のドメイン認証は事前に済ませておくこと。これを怠るとほぼ全部迷惑メール行きになります。

ポイント

配信ドメインは「メイン取引用のドメイン」と分ける のが鉄則です。一斉配信でスパム判定された瞬間、メインのメールアドレスからの送信もブロックされるリスクがあります。mail.example.co.jp のような送信専用サブドメインを用意し、本社業務メールと隔離します。


失敗パターン — 3 つの致命的な落とし穴

実運用で必ず踏む 3 つの地雷があります。先回りで全部潰します。

落とし穴 1 — 同文流用バレ

「いつもお世話になっております。」 で始まる 50 通が、たまたま同じ業界の 3 社の担当者間で話題になる — これが 同文バレ です。一気に信頼を失います。

対策はシンプルで、書き出しと結びの 2 箇所を必ずローテーション することです。Claude に「書き出しは 8 パターン以上、結びは 5 パターン以上で散らして」と書きます。さらに 1 通あたりに必ず 1 つ固有情報 — 過去の購入商品・直近のやり取り・担当者の役職など — を入れさせます。固有情報があれば、文面の骨格が同じでも「自分宛」と感じられます。

落とし穴 2 — 個人情報漏洩

CSV を Claude に渡す ということは、顧客の氏名・メールアドレス・購入履歴を Anthropic に送信する ことになります。これは社内コンプライアンスで NG が出る会社が多いポイントです。

Bad

絶対やってはいけない — マイナンバー・クレジットカード番号・健康情報など 機微情報 を含む CSV をそのまま Claude に渡すこと。

実務では次の選択肢を組み合わせます。

  • 仮名化 — 「田中太郎 → 顧客A」「ABC商事 → 取引先1」のマッピングを ローカルで 作成し、Claude には仮名版だけ渡す。生成後にローカルで実名に置換
  • Bedrock / Vertex 経由の Claude — 自社クラウド契約配下で動かし、データの取り扱い範囲を契約で縛る
  • Anthropic の Zero Data Retention 設定 — Enterprise 契約で利用可能、入出力をログに残さない設定

「Claude に渡すデータの粒度は、社外のフリーランス委託に渡す粒度と同じ感覚で判断する」というのが現実的な目安です。

落とし穴 3 — 配信タイミング

深夜 2 時に届くフォローアップメール は、ほぼ全員に嫌われます。「自動化された機械的なメール」と一瞬で見抜かれ、開封率が半減します。

> SendGrid のスケジュール送信機能を使って、
> 全メールを 翌営業日の 10:00〜11:00 の間にランダム分散させて送信。
> 土日に届かないよう、金曜の夜にスケジュールする場合は月曜朝に振り替え。

営業時間内・かつ平日 にランダム分散させるのが基本です。「ランダム分散」を入れる理由は 同時刻に 50 通 が同じドメインに届くと、企業のメールサーバーで スパム判定 される確率が上がるからです。1〜3 分間隔で散らします。

Bad

絶対やってはいけない 配信タイミング 3 選 — 「金曜の夜 21 時以降(月曜朝に埋もれる)」「月初の月曜 8〜9 時(受信箱が爆発している)」「深夜・早朝(自動化バレ)」。火曜〜木曜の 10〜11 時 が無難な狙い目です。


プロンプトテンプレート 3 つ

すぐ使える 3 つのテンプレートprompts/ 配下に保存しておきましょう。半年後のメンテのために、コメントも豊かに残します。

テンプレート 1 — prompts/email-followup.md

フォローアップ用。本文の Step 2 のプロンプトに加え、トーン分岐ルール、書き出しローテーション 8 パターン、結びローテーション 5 パターン、CTA は 1 つだけ、文字数 200〜350 字、固有名詞を冒頭 1 行に入れるルールをすべて 1 ファイルにまとめます。

テンプレート 2 — prompts/email-reactivation.md

休眠顧客向け再活性化用。トーンは「お詫び 1 段 + 近況共有 + 軽い問いかけ」 に寄せます。CTA は「最近のお困りごとを 1 行で教えてください」のように 返信負荷を極限まで下げる ものに固定。商品提案は 入れない のがコツです。最低限「以前のご縁を覚えていますよ」を伝えるだけで、半数は反応します。

テンプレート 3 — prompts/email-newsletter.md

ニュース配信用。1 通の中で 3 つの話題 を扱うことが多いので、構成を 「リード文 + トピック A・B・C + 締め」 の固定構成にします。各トピックは 顧客のステータス・業種・購入履歴 に応じて 5 種類用意し、Claude が自動で 3 つ選ぶ運用にすると、配信のたびに違う組み合わせが自動生成され、飽きさせない配信 が回ります。

ポイント

テンプレートを作ったら、必ず「半年後の自分が読んで意味が分かるか」基準で見直してください。プロンプト内コメントで「ここはなぜこのルールなのか」を 1 行ずつ書いておくと、メンテナンスが圧倒的に楽になります。


法令と倫理 — 特商法 / オプトアウト / GDPR

自動化された配信は、法令の影響を直撃で受けます。最低限の押さえどころを 3 つ。

特商法(特定電子メール法)

日本国内の事業者から「広告・宣伝目的」のメールを送る場合、オプトイン(事前同意) が原則必須です。例外として「過去 1 年以内に取引のある顧客」「名刺交換した相手」「メールアドレスを公開している事業者」などへの送信は許容されますが、どのメールにも次の 3 つを必ず記載 します。

  • 送信者の 氏名 / 会社名 / 住所
  • 受信拒否の連絡先(メールアドレスまたは オプトアウト URL
  • 任意項目として 配信停止の方法

Claude には「全メールのフッターに、会社名・住所・配信停止 URL を必ず入れて」と一言。footerは 共通テンプレート にして全メールに自動付与します。

オプトアウト導線の用意

「配信停止」と書くだけでは不十分です。クリックすると 1 アクションで停止できる仕組み が必要です。Resend / SendGrid には標準でオプトアウト URL 機能があるので、必ず ==unsubscribe.example.com/{user_id}== のような個別 URL を発行し、ワンクリックで unsubscribed_at を記録するエンドポイントを用意します。

GDPR(海外向け配信)

EU 圏に居住する個人 へ配信する場合、GDPR の影響を受けます。日本企業でも、EU 在住の日本人顧客がリストに混ざっていれば対象です。要点としては 明示的同意の取得・取得目的の明示・データ削除権の保証・違反時の高額罰金 があります。一括配信で海外比率が高いなら、事前に弁護士に相談 することを強く勧めます。Claude にも「EU 在住者にはこの追加文言を入れて」と指示は出せますが、法的判断は人間 の領域です。

Bad

絶対やってはいけない — 名刺交換した相手のリストを 許諾なしに広告メール配信 に転用すること。特商法違反、名刺交換時の暗黙了解の逸脱、GDPR 違反のトリプル地雷です。「配信に使ってよいか」を 取得時点で確認 しておくのが唯一の正解です。


まとめ

このレッスンで押さえてほしいポイントを 7 つ並べます。

  1. メール一括作成は 4 シナリオ — フォローアップ / 再活性化 / ニュース配信 / アポ打診。最初はフォローアップ から
  2. CSV に ステータス列 を入れて、Claude にトーン分岐させる。これだけで自分専用感が一気に上がる
  3. 書き出しと結びのローテーション を明示しないと「同文バレ」する
  4. Gmail API の「下書き保存」 経由運用が、誤送信リスクを実質ゼロにしつつ自動化できる現実解
  5. 配信ドメイン分離・SPF / DKIM / DMARC・配信時刻のランダム分散 は配信規模が増えてからの必須三点セット
  6. 機微情報を含む CSV を生のまま Claude に渡さない。仮名化 or Bedrock / Vertex 経由で運用
  7. 特商法のフッター 3 点セット・ワンクリックオプトアウト は最初から実装に組み込む

<Checklist items={["ダミー CSV 15 件でフォローアップメールを 1 セット生成してみる","ステータス別トーン分岐を加えて、トーン差を目視で確認する","プロンプトを prompts/email-followup.md に保存して再利用できる形にする","Gmail API で下書き保存スクリプトを動かす(送信はしない)","フッターに会社情報・配信停止 URL を含めるルールを CLAUDE.md に追加","本番リストの 5 件だけで小規模テスト → 30 件 → 全件と段階的に拡張"]} />

章末演習

章末演習 — 自分の業務で実際に手を動かしてみましょう。所要時間 20〜30 分。

  1. 自分の顧客リスト(過去 3 ヶ月の接点があった 10〜30 件)から、フォローアップメール を Claude Code に生成させてください。実データが難しければ、ダミーで OK
  2. ステータス列 を加え、トーン分岐を入れた版と入れない版を作り、文面の質感の違い を読み比べる
  3. 失敗パターン 3 つ(同文流用・個人情報漏洩・配信タイミング)のうち、自分の業務で一番怖いもの を 1 つ選び、対策をプロンプトと運用に組み込む

<Quiz question="メール一括作成で「同文流用バレ」を防ぐ、最も実効性が高い指示はどれですか?" options={["書き出しと結びの言い回しを必ず複数パターンでローテーションし、各通に固有情報を 1 つ入れる","全員に同じ件名で送り、本文だけテンプレートを変える","本文を 500 字以上の長文にして、情報量で個別性を出す"]} answer={0} />

<Quiz question="顧客 CSV を Claude に渡すとき、個人情報の観点で最初に検討すべき対策はどれですか?" options={["氏名・社名を仮名化(顧客A、取引先1 等)してから渡し、生成後にローカルで実名に戻す","そのまま渡して問題ないか、後から法務部に確認する","メールアドレスだけを暗号化して渡せば十分"]} answer={0} />


次のレッスン 5-1: CLAUDE.md の威力 では、本章で繰り返し触れた プロンプトテンプレート / プロジェクト共通ルール を、CLAUDE.md という 1 つの設定ファイルにまとめて、毎回のプロンプトを 実質 1 行 にまで短縮する方法を学びます。