こんにちは!今回はGoogleフォームの回答をトリガーに、メールが自動送信される機能を作成していきます。
Googleフォームを使えば、プログラミングの知識なく、アンケート形式の回答フォームを超簡単に作成することができます。
質問と回答の内容は自動的に保存され、さらにデータ分析することができます。
そんなGoogleフォームには、フォーム回答者にメールを通知する機能はありますが、質問者(担当者)へのメール通知機能はありません。
このままだと、担当者は回答されたことに、すぐ気付くことができません。
そこで、フォーム回答時に、自動で担当者にメールを通知してくれる機能を、GASで作成したいと思います。
こうすれば、ユーザを待たせることなく、スムーズなサービスを提供することができます。また、回答内容によって送信先を変更します。
メールが自動送信されるまでの流れは、以下の通りです。
- 担当先ごとに、メールアドレスがスプレッドシートに登録されている。
- ユーザは、フォームの質問で担当先を選択し、送信ボタンをクリックする。
- スプレッドシートに登録してある担当先のメールアドレスに、メールが自動送信される。
フォームの作成
まずはフォームを作成します。Googleドライブのトップ画面にある「新規」をクリックし、「Googleフォーム」を選択します。そして「空白のフォーム」を選択します。
以下のようなフォームを作成します。
分かりやすく解説するために、質問は最小限にしています。質問の追加や、問合せ先の選択肢は柔軟に変更してください。
また、問合せ先の質問形式をラジオボタンで作成していますが、プルダウンでも問題ありません。
メールアドレスをスプレッドシートに設定
フォームの作成はこれで完了です。次に「回答」タブを選択し、スプレッドシートのアイコンをクリックします。
「新しいスプレッドシートを作成」にチェックし、「作成」をクリックします。
新しく作成されたスプレッドシートのIDとURLをメモします。IDはURLのxの部分です。
https://docs.google.com/spreadsheets/d/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/edit#gid=0000000000
次に、スプレッドシートに新しくメールアドレスのテーブルを作成します。複数のメールアドレスに通知したい場合は、カンマ(,)区切りで設定します。
メールアドレスを取得するためのキーを問合せ先にします。キーは、必ずフォームにある問合せ先の選択欄と同じ名称にしてください。
テーブルの作成が完了したら、「シート名」「問合せ先列番号」「メールアドレス列番号」をメモします。列番号はA列が1番、B列が2番、のようになります。
メール送信プログラム作成
Googleフォーム画面に戻り、送信ボタン横の「︙」をクリックし、「<> スクリプトエディタ」を選択すると、App Script画面に移動します。スプレッドシートの「ツール」タブ選択でも「<> スクリプトエディタ」がありますが、今回はこちらは使用しません。
AppScript画面に移動するので、以下のように、スクリプトを作成します。メモしていたスプレッドシートのID、URL、キーとメールアドレスの列番号は、すべて冒頭で定義しているので、変更してください。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 |
// スプレッドシートID(変更して下さい) const SPREAD_SHEET_ID = "1234567890abcdefghijklmnopqrstuvwxyzABCDEFGH"; // スプレッドシートURL(変更して下さい) const SPREAD_SHEET_URL = "https://docs.google.com.spreadsheets/d/1234567890abcdefghijklmnopqrstuvwxyzABCDEFGH/edit#gid=xxxxxxxxx"; // シート名(メールアドレス) const SHEET_NAME_MAILADDRESS = "MAILADDRESS_TABLE"; // キー列番号(変更して下さい) const COLUMN_KEY = "1"; // メールアドレス列番号(変更して下さい) const COLUMN_MAILADDRESS = "2"; // フォーム質問タイトル const FORM_TITLE_NAME = "氏名"; const FORM_TITLE_TO = "問合せ先"; function sendEmailApp(e) { // 件名 var subject = "フォームの入力がされました。"; // 本文 var body = "以下の内容のフォームが入力がされました。" +"\n" +"詳細はリンクを参照してください。" +SPREAD_SHEET_URL +"\n\n"; // フォーム情報取得 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(); switch(question){ case FORM_TITLE_NAME: body += question + ":" + answer + "\n\n"; break; case FORM_TITLE_TO: body += question + ":" + answer + "\n\n"; // 問合せ先取得 var reception = answer; break; } } // シート取得 var sheet = SpreadsheetApp.openById(SPREAD_SHEET_ID).getSheetByName(SHEET_NAME_MAILADDRESS); // 開始行 var startRow = 2; // メールアドレス検索数 var searchNum = sheet.getLastRow()-1; // 全取得 var keys = sheet.getRange(startRow, COLUMN_KEY, searchNum).getValues(); var targetRow = 0; for(var i=0; i<searchNum; i++){ // キーが一致すれば if(keys[i] == reception){ // 対象メールアドレスの行番号を取得 targetRow = i + 2; } } // メールアドレス取得 var mailAddress = sheet.getRange(targetRow, COLUMN_MAILADDRESS).getValues().toString(); // メール送信 MailApp.sendEmail(mailAddress, subject, body); } |
これでスクリプトは完成です。MailAppの詳しい使用方法はこちらを参考にしてください! GAS(Google Apps Script)とは、Googleが開発したプログラミング言語で、ExcelでいうVBA(マクロ)みたいなものです。そんなGASを使えば、簡単にメールを送信することができます。GASでメール送信を行うには、MailAppもしくはGmailAppクラスを使用します。 続きを見る
参考【MailAppとGmailApp】GASを使って簡単にメールを送信する方法
質問回答時にプログラムが動くようにトリガー設定
最後に、トリガーの追加を行います。画面左の時計アイコンを選択し、「トリガー」をクリックします。そして右下の「トリガーを追加」をクリックします。
実行する関数を選択を「sendEmailApp」、実行するデプロイを選択を「Head」、イベントのソースを選択を「フォームから」、イベントの種類を選択を「フォーム送信時」に設定し、「保存」をクリックします。
イベントのソースを選択で「フォームから」が存在しない場合は、スプレッドシートの画面からスクリプトエディタを起動した可能性があります。その場合は、「メール送信プログラム作成」を参考にすクリプトエディタを起動してください。
保存が完了すると、「プロジェクト名がGoogleアカウントへのアクセスをリクエストしています」というアクセス権限の画面が表示されるので、「許可」をクリックします。この手順を踏むと、グーグルアカウントへのアクセスが認められ、メールの送信ができるようになります。
上の画面が表示されず、「このアプリはGoogleで確認されていません」というエラー画面が表示された場合は、「詳細」をクリックします。そうすると「プロジェクト名(安全ではないページ)に移動」と表示されるので、そのままリンクをクリックすると、アクセス権限の画面が表示されます。
完成
以上で完了です。フォームの質問に回答して、送信すボタンをクリックすると、このようなメールが届きました。
お疲れ様でした!この記事を参考に、フォームの内容やテーブルの構成を色々とアレンジしてみてください!
-
-
おすすめ【知っとくとお得◎】メール設定で今後困らない知識を5分で理解する
OutlookやiPhoneでメールアカウントを追加したい時、SMTP、POP3、IMAP、SSLなどの言葉が出てきます。数年間意味が分からないまま、無心で設定を行っていました(笑)が、いざ勉強してみると簡単じゃん!!ということで、忘備録もかねて、メールの設定項目と仕組み・流れを簡単に説明していきたいと思います。
続きを見る