フォーム回答からGmail下書きを自動作成するGASコマンド

Googleフォームで問い合わせや申込みを受けていると、次に面倒になるのがメール返信です。
完全自動送信までやると、宛先ミスや文面ミスが怖い。そこでおすすめなのが、フォーム回答からGmailの下書きだけを自動で作る形です。
送信は人が確認してから。GASに任せるのは、転記と下書き作成まで。個人運用や小さなチームなら、このくらいが一番使いやすいです。
できること
このGASコマンドでは、フォーム回答がスプレッドシートに追加されたタイミングで、Gmail下書きを自動作成します。
- フォーム回答を読む
- 名前、メール、用件を本文へ差し込む
- Gmail下書きを作る
- 処理済みステータスをシートへ残す
「フォームを見る → Gmailを開く → テンプレを貼る → 名前を直す」という流れを、かなり短くできます。
シートの準備
Googleフォームの回答先スプレッドシートに、以下の列がある前提で進めます。
- タイムスタンプ
- メールアドレス
- お名前
- 用件
- 希望日
- 処理状況
処理状況 は手動で追加しておきます。GASがここに 下書き作成済み と書き込みます。
コピペで使えるGASコマンド
スプレッドシートで 拡張機能 > Apps Script を開き、以下を貼り付けます。
const CONFIG = {
sheetName: 'フォームの回答 1',
statusHeader: '処理状況',
fromName: 'GASおじラボ',
};
function setupFormDraftTrigger() {
const ss = SpreadsheetApp.getActiveSpreadsheet();
ScriptApp.newTrigger('createDraftFromFormSubmit')
.forSpreadsheet(ss)
.onFormSubmit()
.create();
}
function createDraftFromFormSubmit(e) {
const sheet = e.range.getSheet();
if (sheet.getName() !== CONFIG.sheetName) return;
const row = e.range.getRow();
const headers = sheet.getRange(1, 1, 1, sheet.getLastColumn()).getValues()[0];
const values = sheet.getRange(row, 1, 1, sheet.getLastColumn()).getValues()[0];
const record = Object.fromEntries(headers.map((header, index) => [header, values[index]]));
const statusCol = headers.indexOf(CONFIG.statusHeader) + 1;
if (!statusCol) throw new Error('処理状況列が見つかりません');
if (record[CONFIG.statusHeader]) return;
const email = record['メールアドレス'];
const name = record['お名前'] || 'お客様';
const purpose = record['用件'] || 'お問い合わせ';
const preferredDate = record['希望日'] || '未指定';
if (!email) {
sheet.getRange(row, statusCol).setValue('メールなし');
return;
}
const subject = `【${CONFIG.fromName}】お問い合わせありがとうございます`;
const body = [
`${name} 様`,
'',
'お問い合わせありがとうございます。',
`${CONFIG.fromName}です。`,
'',
`用件: ${purpose}`,
`希望日: ${preferredDate}`,
'',
'内容を確認し、あらためてご連絡いたします。',
'',
'よろしくお願いいたします。',
].join('\n');
GmailApp.createDraft(email, subject, body, {
name: CONFIG.fromName,
});
sheet.getRange(row, statusCol).setValue('下書き作成済み');
}
最初に1回だけやること
貼り付けたら、setupFormDraftTrigger を1回実行します。
初回は権限確認が出ます。Gmail下書き作成とスプレッドシート操作の許可が必要です。
これで次回以降、フォーム回答が入るたびに createDraftFromFormSubmit が動きます。
安全に使うポイント
このコマンドの良いところは、メールを自動送信しないことです。
Gmailの下書きに止めておけば、送信前に宛先、名前、本文を確認できます。個人情報を扱う問い合わせや、金額・日程が絡む連絡では、この一手間を残すほうが安全です。
また、処理済みステータスをシートに残しているので、同じ回答に対して何度も下書きを作る事故も避けられます。
まとめ
フォーム、スプレッドシート、Gmail下書き。ここまでつなぐのがGASのうま味です。
外部SaaSを増やさなくても、Googleの中だけで小さな業務導線を作れます。まずは自動送信ではなく、下書き作成から始めるのがおすすめです。
GASおじラボでは、こうしたGoogle自動化テンプレを増やしています。もっと使ってみたい人は、GASおじラボのメンバーシップも見てみてください。