GAS×AIで作る、アンケート回答の自動要約メール【コピペOK】

AI

イベントの感想アンケート、サークルの出欠、お客様の声——Googleフォームは便利ですが、集まった回答を読むのが一番面倒ではないでしょうか。

この記事では、フォームに回答が集まったら、AIが自動で要約して自分にメールしてくれる仕組みを作ります。プログラミング不要、コードはコピペでOKです。

このレシピでできること

  • 毎週決まった曜日に、その週の回答の「要約」がメールで届く
  • 「不満・要望っぽい回答」だけを抜き出して教えてもらうことも可能
  • 回答を1件ずつ読む作業から解放される

仕組みの全体像

  1. Googleフォームの回答は自動でスプレッドシートに溜まる(標準機能)
  2. GASが週1回、その週の回答をまとめて読み取る
  3. GASからAIのAPIに「要約して」と依頼する
  4. 返ってきた要約を自分のGmailに送る

このレシピはAIのAPIキー(Gemini APIなら無料枠あり)が必要です。取得が初めての人は、先にAPI料金と安全設定の記事を読んでください。「気づいたら課金されていた」を防ぐ設定も載せています。

セットアップ手順

STEP1:フォームの回答をスプレッドシートに接続する

  1. Googleフォームの「回答」タブを開く
  2. スプレッドシートのアイコンをクリックして、回答用シートを作成する

STEP2:GASを設置する

  1. 作成された回答スプレッドシートを開き、「拡張機能」→「Apps Script」を開く
  2. 下のコードを貼り付け、冒頭の2か所(APIキーとシート名)を書き換える
  3. 実行して承認し、テストメールが届けば成功
  4. トリガーを「週ベースのタイマー・月曜午前」に設定する
function summarizeWeeklyAnswers() {
  // ▼ 書き換え箇所は2つだけ
  const API_KEY = "ここにGemini APIキーを貼る";
  const sheetName = "フォームの回答 1";

  const sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(sheetName);
  const data = sheet.getDataRange().getValues();
  const oneWeekAgo = new Date(Date.now() - 7 * 24 * 60 * 60 * 1000);

  // 直近1週間の回答だけ抽出(A列がタイムスタンプの前提)
  const recent = data.filter(function(row) {
    return row[0] instanceof Date && row[0] > oneWeekAgo;
  });
  if (recent.length === 0) return;

  const text = recent.map(function(row) { return row.join(" / "); }).join("\n");

  const prompt = "以下はアンケート回答です。全体の傾向を3行で要約し、" +
    "不満・要望と思われる回答があれば箇条書きで抜き出してください。\n\n" + text;

  const res = UrlFetchApp.fetch(
    "https://generativelanguage.googleapis.com/v1beta/models/gemini-2.0-flash:generateContent?key=" + API_KEY,
    {
      method: "post",
      contentType: "application/json",
      payload: JSON.stringify({ contents: [{ parts: [{ text: prompt }] }] })
    }
  );
  const summary = JSON.parse(res.getContentText())
    .candidates[0].content.parts[0].text;

  MailApp.sendEmail(Session.getActiveUser().getEmail(),
    "【週次】アンケート要約(" + recent.length + "件)", summary);
}

使用しているモデル名やAPIの仕様は変更されることがあります。エラーが出たら、エラー文をそのままAIに貼って「最新の書き方に直して」と頼むのが最短です(直し方の記事)。

個人情報の扱いに注意

  • 氏名・連絡先を含む回答を外部のAIに送るのは避けるか、要約対象の列から除外する
  • 会社・学校のアンケートで使う場合は、組織のルールを必ず確認する
  • 不安な場合は「自由記述の列だけ」を要約対象にするのが安全

応用アイデア

  • 要約の宛先を上司や共同運営者にして、報告自体を自動化する
  • 「ポジティブ/ネガティブの件数を数えて」とプロンプトに足せば簡易的な感情分析に
  • バイト先の顧客アンケートの傾向把握にも応用できます

APIキーの取得と安全設定はこちら

コメント

タイトルとURLをコピーしました