ChatGPTとGoogleフォームを連携して回答を要約する方法

目次

ChatGPTとGoogleフォームを連携して回答を要約する方法【GASで自動化】

Googleフォームに届いた回答を、自動でChatGPTが要約してくれたら便利ですよね。 たとえばアンケートやお問い合わせ内容をAIがまとめてくれると、 確認・返信の手間がぐっと減ります。

この記事では、ChatGPT × Googleフォーム × GAS を使って、 回答内容をAIが自動で要約してスプレッドシートやメールにまとめる方法を紹介します。

この記事でできること

  • Googleフォームの回答をGASで自動取得
  • ChatGPT APIで要約を生成
  • スプレッドシートまたはメールで要約結果を共有
  • 定期的な自動実行にも対応(トリガー設定)

① フォームとスプレッドシートを準備

Googleフォームを作成し、「スプレッドシートにリンク」しておきます。 これにより、フォームの回答が自動的にシートへ記録されます。

例:

  • 質問①:お名前
  • 質問②:お問い合わせ内容

次に、スプレッドシートのメニュー「拡張機能 → Apps Script」を開きます。

② ChatGPT APIキーを設定

OpenAIの APIキー発行ページ にアクセスして、 「+ Create new secret key」からAPIキーを作成します。

取得したキーは、GASの「スクリプトプロパティ」に安全に保存します。

  • メニュー「設定 → プロジェクトのプロパティ → スクリプトのプロパティ」
  • キー名: OPENAI_API_KEY
  • 値: ChatGPTのAPIキー

③ GASスクリプトを貼り付け

以下のスクリプトを貼り付けて保存します。

function onFormSubmit(e) {
  const OPENAI_KEY = PropertiesService.getScriptProperties().getProperty("OPENAI_API_KEY");
  const items = e.response.getItemResponses();

  // 回答内容を取得
  let name = "";
  let inquiry = "";
  items.forEach(ir => {
    const title = ir.getItem().getTitle();
    if (title === "お名前") name = ir.getResponse();
    if (title === "お問い合わせ内容") inquiry = ir.getResponse();
  });

  // ChatGPTに要約依頼
  const url = "https://api.openai.com/v1/chat/completions";
  const prompt = "以下のお問い合わせ内容を、簡潔でわかりやすく3行以内に要約してください:\n" + inquiry;

  const payload = {
    model: "gpt-3.5-turbo",
    messages: [{ role: "user", content: prompt }],
    temperature: 0.5
  };

  const options = {
    method: "post",
    headers: { Authorization: "Bearer " + OPENAI_KEY },
    contentType: "application/json",
    payload: JSON.stringify(payload)
  };

  const response = UrlFetchApp.fetch(url, options);
  const result = JSON.parse(response.getContentText());
  const summary = result.choices[0].message.content.trim();

  // スプレッドシートに要約を記録
  const ss = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  const lastRow = ss.getLastRow();
  ss.getRange(lastRow, ss.getLastColumn() + 1).setValue(summary);

  // メールで通知(任意)
  const mailTo = "you@example.com";
  const subject = "【AI要約】" + name + "様からの新規回答";
  const body = "お問い合わせ内容:\n" + inquiry + "\n\nAI要約:\n" + summary;

  GmailApp.sendEmail(mailTo, subject, body);

  Logger.log("AI要約送信完了:" + summary);
}

このスクリプトでは、フォーム送信時(onFormSubmit)に自動で動作し、 ChatGPTが内容を要約してスプレッドシートに追記&メール送信します。

④ トリガー設定で自動化

  1. GAS画面左側の「時計マーク(トリガー)」をクリック
  2. 「トリガーを追加」→ 関数:onFormSubmit
  3. イベントのソース:「フォームから」/イベントの種類:「フォーム送信時」
  4. 保存 → 権限承認 → 完了

これで、フォームに回答があるたびに自動でChatGPTが要約してくれます🎉

⑤ トラブルシューティング

  • 動かない:「onFormSubmit」関数にインストール型トリガーが設定されているか確認。
  • 要約が空白:APIの制限(トークン上限)やプロンプトの文字数を確認。
  • メールが届かない:迷惑メールに振り分けられていないか確認。
  • 複数回答を処理したい:ループ処理でまとめて要約も可能(応用編)。

まとめ

ChatGPTとGoogleフォームを連携すれば、 回答内容の要約・整理をAIが自動で行ってくれます。 GASを使えば「フォーム → AI要約 → メール通知」まで完全自動化が可能です。

業務の問い合わせ対応やアンケート集計を効率化したい方にとって、 “AIが考える自動報告” は次世代の標準になるかもです。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次