【Google Apps Script (GAS)】GoogleフォームでThankYouメールを自動返信する方法
Googleフォームは簡単にアンケートや申し込みフォーム、問い合せフォームを作ることができる上に、無料で使用することができるツールです。
直感的な操作で簡単にフォームを作ることができるのですが、Googleフォームはフォームの申込者に対して、ThankYouメールを自動送信する機能は実装されていません。自動送信したい場合は自身で設定する必要があります。
フォームに申し込んだ側からすると、申し込みはちゃんと届いている?といった不安を与えてしまうので、できるかぎり設定したいところです。
Googleフォームに自動返信機能をつける方法として、大きく2通りあります。
- Google Apps Scriptを使って自分でプログラムを書く
- アドオンを使う
今回は「Google Apps Scriptを使って自分でプログラムを書く」方法を詳しく解説しつつ、メールの内容を簡単に変更できるようにカスタマイズしていこうと思います。
アドオン(Email Notifications for Google Forms)を使う方法についてはこちらのサイトが導入方法から設定方法など詳しく説明しています。 ただ、レビューをみるとGoogleWorkspaceだとうまく動かないこともあるようですのでご注意ください。
- スクリプトエディタを起動してプログラムを書き込む
- フォームが送信された時に動くようにトリガーを設定する
- フォームから入力を送信してテストする
本記事に書かれているプログラムをコピペするだけで、簡単に自動返信設定ができるようにしていますので、ぜひ設定してみてください。
アドオンは設定画面が英語で書かれているので、読めない筆者はきついです!
フォームを作成する
まずはフォームを作成します。
「Googleドライブ」の「新規」→「その他」メニューから「Googleフォーム」を選択してフォームを作成します。
メニューにない場合は「+ アプリを追加」からメニューに追加してください。
「設定」から「メールアドレスを収集する」にチェックを入れるとメールアドレスの質問が追加されます。
こちらも必ず設定してください。
Googleフォームの作成方法は「Googleフォームの作り方とScriptでの回答の取得方法」で解説しています。
- 「設定」から「メールアドレスを収集する」にチェックを入れる
自動返信プログラムを自分で書き込む
フォームができたら、自動返信のための設定をしていきます。
今回は自動返信するプログラムを自分で作って設定するので、「スクリプトエディタ」を使ってプログラムを書いていくことになります。
ただ、プルグラムは本記事に書いてある内容をコピーして貼り付けるだけでOKです。
スクリプトエディタを起動してプログラムを書き込む
まずは、プログラムを記述するために「メニュー」->「スクリプトエディタ」からスクリプトエディタを起動します。
スクリプトエディタが起動したら下記のプログラムをコピーして貼り付けます。
function sendThankYouMail(e) {
// ワーク変数
var mail = '';
var name = '';
//回答のオブジェクトを取得
var itemResponses = e.response.getItemResponses();
//回答内容を取得
for (var i = 0; i < itemResponses.length; i++) {
var itemResponse = itemResponses[i];
var question = itemResponse.getItem().getTitle();
var answer = itemResponse.getResponse();
// 質問が「メールアドレス」の場合
if (question == 'メールアドレス'){
mail = answer;
}
}
// メッセージを作成
var title = 'お問い合わせを受け付けました。';
var content = 'お問い合わせを受け付けました。\n'
+ 'ご返答までしばらくお待ちください。';
GmailApp.sendEmail(mail, title, content);
}
プログラムの解説
スクリプトエディタを起動するとfunction myFunction() {}が記述されていると思いますが、今回はわかりやすくするために削除してsendThankYouMail()にしました。
Googleフォームの回答情報を取得するためにはsendThankYouMail()の引数にeを追加します。
引数に設定したeからgetItemResponses()で回答情報を取得することができます。
取得した回答情報(itemResponses)は配列形式なので、for文で一つ一つ取り出していき「メールアドレス」の項目の回答を抽出します。
最後に自動返信するメッセージを設定して、取得した「メールアドレス」を宛先に設定してメール送信しています。
メール送信に関する細かい設定は「【Google Apps Script (GAS)】Scriptからメールを送信する方法と全9オプションの設定方法を解説!」で解説していますので参考にしてください。
メール本文に記述している「\n
」は改行コードというものです。
文章などをプログラムで作成していて、改行が必要になった場合は改行コードを入力することで改行できます。
フォームが送信された時に動くようにトリガーを設定する
プログラムが書けたら、「トリガー」を設定していきます。
「トリガー」とは、プログラムを実行するきっかけだと思ってください。
トリガーを設定することで「毎日実行する」、「フォームの入力内容が送信されたら実行する」などプログラムに合わせて、実行タイミングを設定します。
今回の自動返信であれば、「フォームの入力内容が送信されたら実行する」を設定していくことになります。
トリガーの設定ダイアログを開く
トリガーを設定するために「トリガー設定ダイアログ」を立ち上げます。
スクリプトエディタの左メニューから「トリガー」を選択すると設定されているトリガーを確認できる一覧画面が開きます。
一覧画面の右下に「 トリガーを追加」ボタンをクリックすると図のようなダイアログが立ち上がります。
トリガーを設定する
「トリガー設定ダイアログ」が立ち上がったら、設定を行なっていきます。
いくつか設定項目がありますが、下記の項目を変更して「保存」ボタンをクリックてください。
実行する関数を選択:myFunction
イベントのソースを選択:フォームから
イベントの種類を選択:フォームの送信時
これで自動返信機能をつける作業は終わりになります。
最後にテストをしてしっかり動くことを確認しましょう。
フォームから入力を送信してテストする
「プログラムの書き込み」と「トリガーの設定」が終わったら、プログラムがしっかり動いて、自動返信が届くことを確認します。
実はプログラムがちゃんと動いていなかった・・・、トリガーの設定内容を間違っていたなどがあると意図した通りに動かないので、最後にしっかりと確認するようにしてください。
返信内容をGoogleドキュメントを使ってテンプレート化する
ここまでの設定で自動返信の設定は完了しましたが、
お問い合わせを受け付けました。
ご返答までしばらくお待ちください。
と返信内容としては寂しいものになっていますので、もう少し気の利いた内容を送信できるようにメール内容をテンプレート化して、プログラム内で読み込んで送信することもできます。
メール内容が長文であれば、テンプレート化しておくとメンテナンスが楽です!
まとめ
問合せフォームから問合せがあったら、返信しないと届いたかどうかユーザーを不安にさせてしまいます。
かといって、ずっとパソコンの前に張り付いているわけではないので、問合せがくるたびにメールを返信することはできません。
なので、問合せフォームには自動返信機能をつけることをオススメします。
問合せフォームを簡単に作れるツールにGoogleフォームがありますが、自動返信機能が備わっていないので、自身で追加する必要があります。
Googleフォームに自動返信機能をつける方法として、大きく2通りあります。
- Google Apps Scriptを使って自分でプログラムを書く
- アドオンを使う
この記事では「Google Apps Scriptを使って自分でプログラムを書く」方法をご紹介しました。
コピペで簡単に追加することができるので、ぜひお試しください。
現役のシステムエンジニアです。
システム構築の経験を活かして、GoogleWorkspaceを使って業務効率化のための仕組み作りを考えています。