Googleフォームのメール通知を特定のアドレスに送る方法(Google Apps Script使用)
最近とある案件で、Googleフォームで回答が来た際に、メール通知を特定のアドレスに送りたいと言われました。Googleフォームって基本的には作成者のアカウントに回答が届くものだと思っていたので、そんなことできるのかと感じでしたが、調べていたらGoogle Apps Script(以下、GAS)を利用すれば凄く簡単に可能だとわかったので、備忘録も兼ねて残しておきます。
適当にフォームを作ったら、まず右上の点が3つ並んだところをクリックして、スクリプトエディタを開いてください(赤枠で囲ったところです)。
スクリプトエディタの画面が開いたと思いますので、そこに以下のテキストをコピペしてください。
function sendform(e){
var items = e.response.getItemResponses();
var msg = '';
for (var i = 0; i < items.length; i++) {
var item = items[i];
var q = item.getItem().getTitle();
var a = item.getResponse();
msg += q + ': ' + a + '\n\n';
}
GmailApp.sendEmail('送りたいメールアドレス', '返信メールのタイトル', msg);
}
そして「送りたいメールアドレス」のところに、アドレスを書き込んでください。アドレスは、カンマ区切りで幾つでも指定することができます。「返信メールのタイトル」も、自由に変えることができるのでご自由にどうぞ。
どんな質問だろうが数がいくつあろうが、これだけでフォームの質問タイトルや回答が全て通知メールに出力されます。
それ以外は基本的に、このスクリプトをいじる必要はありません。あとは、上のスクリプトが実行されるようにするためのトリガーの設定です。トリガーの設定を忘れると、フォームが送信されても通知が届かないのでご注意を。
トリガーの設定は、エディタ画面から、「編集」→「現在のプロジェクトのトリガー」の順にクリックすれば、今書いているスクリプトを実行するためのトリガー設定画面に遷移します(下記参照)。
具体的なトリガーの設定については、以下のスクショを参考にしてみてください。特別難しいことはなく、実行する関数(今回はsendForm)を選び、いつ実行されるか(今回はフォーム送信時)を選ぶだけ。スクリプトエディタにデフォルトで書かれている、myFunctionではないのでご注意を。
こうすれば、フォーム送信時に指定したアドレスに質問と回答内容が飛んできます。これだけでできるなんて、非常に簡単ですね。ちょっとしたことで色々便利になるGAS、もっと深く勉強してみます。
❇︎この記事は、筆者のMediumに書いた内容を少し編集したものです。よろしければ、そちらもご覧ください。
参考文献
サポートありがとうございます!いただいたサポートは、より良いアウトプットを生み出すために使用させていただきます。