目次
Contents
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が内容を要約してスプレッドシートに追記&メール送信します。
④ トリガー設定で自動化
- GAS画面左側の「時計マーク(トリガー)」をクリック
- 「トリガーを追加」→ 関数:
onFormSubmit - イベントのソース:「フォームから」/イベントの種類:「フォーム送信時」
- 保存 → 権限承認 → 完了
これで、フォームに回答があるたびに自動でChatGPTが要約してくれます🎉
⑤ トラブルシューティング
- 動かない:「onFormSubmit」関数にインストール型トリガーが設定されているか確認。
- 要約が空白:APIの制限(トークン上限)やプロンプトの文字数を確認。
- メールが届かない:迷惑メールに振り分けられていないか確認。
- 複数回答を処理したい:ループ処理でまとめて要約も可能(応用編)。
まとめ
ChatGPTとGoogleフォームを連携すれば、 回答内容の要約・整理をAIが自動で行ってくれます。 GASを使えば「フォーム → AI要約 → メール通知」まで完全自動化が可能です。
業務の問い合わせ対応やアンケート集計を効率化したい方にとって、 “AIが考える自動報告” は次世代の標準になるかもです。
