Googleフォームの回答者に、自動で特定の情報(例えば自社システムのアカウント情報など)を通知したいというケースはわりかしあるのではないでしょうか?今回はGAS(Google Apps Script)を用いて、予め用意したIDリストから未使用のものを選んで回答者に通知するという機能を説明したいと思います。
#Googleフォームの回答者にIDを自動返信する方法
まずは下準備としてGoogleフォームとID(←こちらは自動返信したい情報と読み替えてください。)を管理するリスト(スプレットシート)を準備します。
【Googleフォームの準備】
まずはフォームの設定として、以下をチェックします。メールの自動返信用にメールアドレスの入力を必須とし、情報の取得漏れが無いようにしておきます。
メールアドレスの他に、名前を入力してもらう欄を付け加えて、今回のデモでは以下のシンプルな2設問のフォームを用意しました。
【スプレットシートでIDリストを作成】
スプレットシートに、回答者に払い出したいID情報を予め登録
しておきます。ID/PASSのように送付したい情報が複数になっても自動送信可能です。後述のスクリプトを書き換えるようにしてください。
また、Googleフォームの回答情報はこのIDリストに転記していくことで、こちらをユーザリストとして扱っていくことを想定しています。ですので、Googleフォームの設問項目を順番に1行目に入力しておいてください
。今回の例でいうと{メールアドレス、名前}
が該当します。
なお、後述のスクリプトでスプレッドシートのIDを参照しますが、IDは下に示すようにスプレットシートのURLの黄色下線部の部分
に該当します。お手元のスプレットシートをご確認くださいませ。(IDはダミー値にしています。)
#GASでアカウント払い出し機能の実装
Googleフォームの編集画面から、スクリプトエディターを起動し以下を入力してください。挙動はコメントを確認くださいませ。
function myFunction(e) {
// Googleフォームのレスポンスから必要なデータを取得する
var itemResponse = e.response.getItemResponses();
var email = e.response.getRespondentEmail();
var name = itemResponse[0].getResponse();
var sheet = SpreadsheetApp.openById('1【スプレットシートのIDを指定】').getSheets()[0];
// B列(Eメールアドレス)が空値になっている行を特定し、未使用IDをターゲットにする
var user_list = sheet.getRange('B:B').getValues();
var empty_row = user_list.filter(String).length + 1;
var id = sheet.getRange(empty_row, 1).getValue();
// フォームで取得した値を入力する
sheet.getRange(empty_row, 2).setValue(email);
sheet.getRange(empty_row, 3).setValue(name);
// IDを本文に加えて、メールを送る
var title = '【ID通知メール】';
var content = [
name+'さま。',
'ご登録ありがとうございます。',
'IDは以下の通りです。',
'【ID】' + id,
].join('\n');
GmailApp.sendEmail(email, title, content);
}
【トリガーの設定】
あとはこのスクリプトがフォーム回答時に実行されるように設定をする必要があります。以下の手順で、トリガーを設定してくだい。
【実行結果(回答送信時の挙動)】
未使用のIDの欄に、フォームの回答結果が反映されることが確認できます。
また、回答者の登録したメールアドレスに対して、ID情報が自動で通知されることも確認できました。
次の回答者にはid_02が通知されるようになっています。ID払い出し及びその通知を自動化することによって、稼働効率化だけでなくIDの通知漏れなども防ぐこともできるため、運用の中で今回紹介した内容が流用できるところがあればぜひトライしてみてください。
今回は、GASを用いてGoogleフォームの回答者にIDを自動返信する方法について説明しました。
GAS自体はプログラミング経験がなくても割と簡単に使うことができるようになるので、ご興味が在る方はぜひ学習の検討をしはじめてみてくださいね。