はじめに
Googleフォームには、回答後にメールで自動応答する機能が備わっています。
このメールを標準の文面ではなく、好きな文面で送りたいと思ったので調べてみました。
回答を編集するための URL をメールに含めることもできます。
対象の人
- Googleフォームの標準の自動応答メールとは違う内容で送りたい人
- 好きな文面で送りたい、とか
- 回答内容はメールに入れたくない、とか
- メール以外の方法で通知したい人
- 今回は扱っていませんが参考になると思います
さっそく
任意のGoogleフォームを作ります。
フォームができたら画面右上の歯車を押して、標準機能のメールが送られないようにしておきます。
次に、画面右上の ︙
から「スクリプトエディタ」を開きます。
続いて、下記のような関数を書いて下さい。
この関数はフォームで回答される度に走る想定です。
- やっていること
- 回答者のメールアドレスに
- お礼の文面と回答日時、回答編集用URLを送信
なお、引数 e
についての詳細は https://developers.google.com/apps-script/guides/triggers/events#form-submit_1 を確認下さい。
function onSubmit(e) {
const resp = e.response;
// 回答者のメールアドレス
const mailAddress = resp.getRespondentEmail();
if (!mailAddress) {
return;
}
// 回答日時
const timestamp = Utilities.formatDate(resp.getTimestamp(), 'JST', 'yyyy-MM-dd HH:mm:ss');
// 回答編集用URL
const editRespUrl = resp.getEditResponseUrl();
// 本文
const body =
'アンケートにご回答頂きありがとうございました。\n' +
`${timestamp} に回答を受け付けました。\n` +
'\n' +
'回答内容を変更したい場合は下記から行えます。\n' +
`${editRespUrl}`;
// メール送信
MailApp.sendEmail({
to: mailAddress,
subject: 'アンケート御礼',
body: body
});
}
次に、フォームで回答される度に上記の関数が動くようにトリガーを設定します。
画面の左側のメニューから、トリガーを押します。
続いて画面右下の「トリガーを追加」を押します。
トリガーは下の画像のように設定して保存します。
- 実行する関数:
onSubmit
- イベントの種類を選択:
フォーム送信時
保存した内容が一覧に出てくれば準備完了です。
これでフォームに回答すると、以下のような自前の応答メールが自動で送られます。
所感
ここに書いた内容を応用すると、メールを送る以外にもたとえば Slack などに投稿することもできそうです。