Gemini APIとGASで営業メールを自動生成する方法【プロンプト付き】

「提案メールを毎回ゼロから書いてる…」「顧客ごとに文面を変えるのが面倒」――そんな悩みをGemini APIとGoogle Apps Scriptで解決します。スプレッドシートに顧客情報を入力するだけで、パーソナライズされた営業メールを自動生成できる仕組みを、コードから丁寧に解説します。

AIを使ったメール生成というと「ChatGPTに貼り付けて手動でコピー」というイメージがあるかもしれません。でも、GASと組み合わせればスプレッドシートのボタン1つで100件分の個別メールを自動生成できます。しかも無料(Gemini APIの無料枠内)で始められます。

この記事でできること

  • スプレッドシートの顧客リストをもとにGemini APIで個別メール文面を自動生成
  • 生成したメールをGmailで自動送信(または下書き保存)
  • プロンプトを変えるだけで提案・フォローアップ・御礼メールにも対応
  • 実装に必要なGASコード一式を本記事で公開

事前準備(10分)

必要なものは以下の3つです。すべて無料で揃います。

  • Googleアカウント(Gmailアドレスがあれば可)
  • Gemini APIキー(Google AI Studioで取得・無料)
  • Googleスプレッドシート(GASプロジェクトを作成する)

Gemini APIキーの取得方法

1. Google AI Studio にアクセスし、Googleアカウントでログイン
2.「Get API key」→「Create API key in new project」をクリック
3. 表示されたAPIキー(AIzaで始まる文字列)をコピーして保存

APIキーはスクリプトプロパティに保存します(コードに直書きしないこと)。GASの「プロジェクトの設定」→「スクリプトプロパティを追加」で GEMINI_API_KEY というキー名で貼り付けてください。

STEP 1:スプレッドシートの準備

新しいGoogleスプレッドシートを作成し、シート名を「顧客リスト」に変更します。1行目にヘッダーを作成してください。

A列(会社名)B列(担当者名)C列(メールアドレス)D列(業種)E列(課題・ニーズ)F列(送信ステータス)
株式会社〇〇山田 太郎yamada@example.com製造業月次レポート作成に毎月10時間かかっている(空欄)

「課題・ニーズ」列がポイントです。ここに顧客の具体的な悩みを記入することで、AIがその悩みに刺さるパーソナライズメールを生成します。

STEP 2:GASコードを貼り付ける

スプレッドシートのメニュー「拡張機能」→「Apps Script」を開き、以下のコードを貼り付けます。

/**
 * Gemini API x GAS 営業メール自動生成ツール
 */

const SHEET_NAME = '顧客リスト';
const SENDER_NAME = '松下 浩平';
const YOUR_SERVICE = 'GASxAI業務自動化サービス';
const DRAFT_MODE = true; // true=下書き保存, false=即送信

function generateAndSendEmails() {
  const sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(SHEET_NAME);
  const lastRow = sheet.getLastRow();
  if (lastRow < 2) {
    SpreadsheetApp.getUi().alert('顧客データがありません。');
    return;
  }
  const data = sheet.getRange(2, 1, lastRow - 1, 6).getValues();
  let successCount = 0;
  let skipCount = 0;
  data.forEach((row, index) => {
    const [company, name, email, industry, needs, status] = row;
    if (status === '送信済み' || !email) { skipCount++; return; }
    const emailContent = generateEmailContent(company, name, industry, needs);
    if (!emailContent) return;
    if (DRAFT_MODE) {
      GmailApp.createDraft(email, emailContent.subject, emailContent.body);
    } else {
      GmailApp.sendEmail(email, emailContent.subject, emailContent.body, { name: SENDER_NAME });
    }
    sheet.getRange(index + 2, 6).setValue(DRAFT_MODE ? '下書き保存済み' : '送信済み');
    successCount++;
    Utilities.sleep(1000);
  });
  SpreadsheetApp.getUi().alert('完了!
生成: ' + successCount + '件
スキップ: ' + skipCount + '件');
}

function generateEmailContent(company, name, industry, needs) {
  const apiKey = PropertiesService.getScriptProperties().getProperty('GEMINI_API_KEY');
  if (!apiKey) { console.error('GEMINI_API_KEY が未設定'); return null; }
  const prompt = 'あなたは営業メールの専門家です。以下の顧客情報をもとに自然な営業メールを作成してください。

【顧客情報】
・会社名: ' + company + '
・担当者名: ' + name + ' 様
・業種: ' + industry + '
・課題: ' + needs + '

【提供サービス】
' + YOUR_SERVICE + '

【ルール】
・件名は30文字以内
・本文は250〜350文字
・共感ファーストで書く
・返信促進文を末尾に
・署名不要

【出力形式】
件名: [件名]
本文:
[本文]';
  const url = 'https://generativelanguage.googleapis.com/v1beta/models/gemini-2.0-flash-lite:generateContent?key=' + apiKey;
  const payload = { contents: [{ parts: [{ text: prompt }] }], generationConfig: { temperature: 0.7, maxOutputTokens: 500 } };
  try {
    const response = UrlFetchApp.fetch(url, { method: 'POST', contentType: 'application/json', payload: JSON.stringify(payload) });
    const result = JSON.parse(response.getContentText());
    const text = result.candidates[0].content.parts[0].text;
    const subjectMatch = text.match(/件名:s*(.+)/);
    const bodyMatch = text.match(/本文:
([sS]+)/);
    return {
      subject: subjectMatch ? subjectMatch[1].trim() : company + ' ' + name + '様へのご提案',
      body: bodyMatch ? bodyMatch[1].trim() : text
    };
  } catch (error) {
    console.error('Gemini API エラー:', error);
    return null;
  }
}

function onOpen() {
  SpreadsheetApp.getUi()
    .createMenu('メール自動生成')
    .addItem('メールを生成・送信', 'generateAndSendEmails')
    .addToUi();
}

STEP 3:APIキーをスクリプトプロパティに登録する

APIキーをコードに直書きするのはセキュリティ上NGです。必ずスクリプトプロパティに保存してください。

  1. GASエディタ左メニューの「プロジェクトの設定(歯車アイコン)」をクリック
  2. 「スクリプトプロパティ」セクションで「プロパティを追加」
  3. プロパティ名: GEMINI_API_KEY、値: 取得したAPIキーを貼り付け
  4. 「スクリプトプロパティを保存」をクリック

STEP 4:動作確認

  1. スプレッドシートに戻り、顧客データを2〜3行入力する
  2. メニュー「メール自動生成」→「メールを生成・送信」をクリック
  3. 初回は権限の許可ダイアログが表示されます。「許可」をクリック
  4. 処理完了後、Gmailの「下書き」フォルダを確認する

トラブルシュートチェックリスト

  • 「GEMINI_API_KEY が未設定」→ スクリプトプロパティのキー名を確認
  • 「Request failed」→ APIキーが正しいか、Gemini APIが有効か確認
  • 「下書きが届かない」→ DRAFT_MODE が true になっているか確認
  • API制限エラー → Utilities.sleep(4000) に変更して再試行

応用:プロンプトを変えるだけで用途が広がる

このツールの強みはプロンプトを変えるだけで用途が無限に広がる点です。

  • フォローアップメール:「先日ご提案した件について〜」の文体に変更
  • 御礼メール:「本日はお時間をいただきありがとうございました」に変更
  • リマインドメール:返信のない顧客への再アプローチ文
  • 件名A/Bテスト:複数パターンを生成してスプレッドシートに記録

さらに発展させると、Gmailの送信記録をスプレッドシートに自動記録したり、返信があった顧客を自動でフラグ立てしたりすることも可能です。

まとめ

Gemini APIとGASを組み合わせることで、顧客の課題に合わせたパーソナライズ営業メールを自動生成できます。

  • スプレッドシートに顧客情報を入力するだけでOK
  • Gemini APIの無料枠で月数百件まで対応可能
  • プロンプト変更で提案・フォロー・御礼など多用途に展開できる

「このコードをうちの営業フローに合わせてカスタマイズしてほしい」「CRMと連携させたい」という方は、下記からお気軽にご相談ください。

お問い合わせはこちら

コメント

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA