Googleフォームで自動返信のお問合せフォームを作る方法!
Googleフォームはアンケート以外にも、お問い合わせフォームとして利用することもでき、自動返信機能を作ることもできます。この記事では、Googleフォームで自動返信を行うお問い合わせフォームを作る方法を説明していきます。
目次
- 1Googleフォームでお問い合わせフォームを作る方法
- ・質問項目を作成
- 2Googleフォームの自動返信用のスプレッドシートを作る方法
- ・回答の格納フォームを作成
- 3Googleフォームの自動返信の機能を作る方法
- ・スクリプトエディタでプログラムを作成
- 4Googleフォームに回答があった時に通知する設定方法
- ・Googleアカウントのメールアドレスに回答を通知する設定手順
- ・特定のメールアドレスに回答を通知する設定手順
- 5Googleフォームの自動返信の動作検証
- ・テスト用のアドレスで動作検証を行う
- 6Googleフォームの自動返信が届かない時の対処法
- ・自動返信設定を見直す
- ・入力したメールアドレスが正しいか見直す
- ・合わせて読みたい!Googleに関する記事一覧
Googleフォームでお問い合わせフォームを作る方法
Googleフォームというとアンケート機能に目が行きがちですが、よくホームページなどに設置してあるお問い合わせフォームとして利用することもできます。
スクリプトという特殊なコードは必要ですが、コピペして発動タイミングを設定するだけで作成することができますので、利用を検討している人はぜひ作る方法を見ていってください。
質問項目を作成
まずはGoogleフォームで基礎となるフォームを作る必要があります。問い合わせフォームですので、名前とメールアドレス、その内容という質問内容が最低限必要です。
フォームを作成
まずはGoogleフォームで、新しいフォームを作成しましょう。Googleアカウントへログインし、Googleドライブを開きます。
左上にある「+ 新規」というボタンをクリックしましょう。
開いたメニューから「その他」→「Googleフォーム」で新規のGoogleフォームを作る準備を行います。
Googleフォームのページが開きます。無題のフォームにはフォームタイトルを入力してください。
入力者の名前
Googleフォームに設定する必要な質問事項として、問い合わせを送る人――つまり入力者の名前が必要です。名前の入力欄は「記述式」を選択します。ここの質問タイトルはスクリプトの方で利用します。
必須項目にした方がよいですので、「必須」をONにしておきましょう。
メールアドレス
問い合わせ内容の返信のため、入力者のメールアドレスも必要です。Googleフォームの質問のタイトルをメールアドレスにし、「記述式」を選択しましょう。この質問も必須項目としておきましょう。この質問タイトルもスクリプトで利用します。
入力内容がメールアドレスかどうかの検証も必要です。右下にある三点リーダー(「…」が縦に並んだマーク)をクリックしてメニューを開きましょう。
「回答の検証」をクリックして、検証内容の設定を行います。
検証内容を「テキスト」で「メールアドレス」に変更します。これを利用すれば、メールアドレスでない文章が入力された場合エラー表示がされます。
その横の「カスタムのエラー テキスト」には、入力内容がメールアドレスでない場合に表示される文章を入力します。「メールアドレスに誤りがあります」などといった文言を入力しましょう。
内容入力欄
問い合わせフォームですので、問い合わせ内容の質問欄も必要です。Googleフォームでは、問い合わせ内容の入力欄は「段落」で作成します。この「段落」は長文を入力するための入力欄です。
その他必要な項目
その他に、必要なものがあればGoogleフォームの質問内容を追加してください。それこそ注文フォームであれば住所や電話番号、必要な商品(ラジオボタンもしくはチェックボックスなど)の選択欄など質問事項が増えることもあるはずです。
問い合わせフォームの内容などに応じて、必要な質問は適宜追加してください。それぞれ必須項目であれば「必須」をONにする必要があります。
「お名前」と「メールアドレス」以外のその他の質問項目に関しては下記のスクリプトに大きく影響はしませんので、追加したいだけ追加して問題ありません。
Googleフォームの自動返信用のスプレッドシートを作る方法
Googleフォームの自動返信を行うためには、自動返信用のスプレッドシートが必要になります。回答の格納フォームとも言えます。
このスプレッドシートはGoogleフォームを利用したアンケート集計にもよく利用するものです。格納フォームとなるスプレッドシートを作る方法そのものはそれとほぼ同様です。
回答の格納フォームを作成
さて、Googleフォームの回答の格納フォームを作る方法ですが、作成したGoogleフォームに「回答」という欄があります。そこをクリックしてください。
解答欄はこの時点では0件ですが、今回注目するのはそこではなく、右上にあるスプレッドシートマーク(緑に+マークのボタン)です。ここから回答の格納フォームの作成を行います。スプレッドシートのマークをクリックしてください。
「新しいスプレッドシートを作成」を選択し「作成」をクリックしてスプレッドシートを作ることになります。
スプレッド―シートが表示され、回答の格納フォームを作ることができました。
タイムスタンプというのは、Googleフォームを入力して送信したその回答が送られた日時が記載される場所で、自動的にカラムが追加されています。そのほかの場所に関してはGoogleフォームで作成した内容に対する回答内容が表示されます。
Googleフォームの自動返信の機能を作る方法
次に、回答の格納フォームを基礎として自動返信の機能をツールを利用して作成します。ここからはツールから開いたスクリプトエディタへコードのコピペを行うことになります。一部自分で適宜調整する必要のある部分もあります。
スクリプトエディタでプログラムを作成
自動返信機能は、格納フォームでツールからスクリプトエディタを開いたうえでコードを用いてプログラムを作ることになります。このスクリプトエディタが難しいと感じる人もいると思いますが、そこに関しては基本コピペで済みますので試してみてください。
回答の格納フォームを開く
まずは回答の格納フォーム――先ほど作成したスプレッドシートを開きましょう。この回答の格納フォームを基礎としてスクリプトを構築し、自動返信メールを送るよう設定することになります。
「ツール」の「スクリプトエディタ」をクリック
スプレッドシートのメニューに「ツール」がありますので、そこをクリックします。
「ツール」のメニューが表示されますので、そのうちの「スクリプトエディタ」をクリックしてください。
上記画面が表示されますので、「無題のプロジェクト」の部分をクリックしてプロジェクト名を変更しましょう。(そのままでも支障はありません)
今回は「Autoreply」でプロジェクト名を作成しましょう。
自動返信のコードをコピペ
Googleフォームの自動返信のコードはスクリプトを構築することで行います。Java Scriptの知識が多少なりともある人はここに手を加えることも可能です。
よくわからない、という方は下記画像の次に表示されているスクリプトのコードをすべてスクリプトエディタへコピペしてください。スクリプトの内容は一つ間違えば作動しなかったりエラーが起きたりします。
なお、下記で表示しているコピペ用スクリプトは下記2か所のリンク先のスクリプトを参考に作成したものです。
function autoreplymail() {
//自動返信メールの件名
var title = "お問い合わせ頂きありがとうございます(自動返信)";
//自動返信メールの本文(\nは改行コード)
var body
= "お問い合わせ頂きありがとうございます。\n"
+ "このメールはお問い合わせ内容確認のための自動返信メールです。\n"
+"問い合わせ頂いた内容は下記のとおりになります。\n\n"
+ "------------------------------------------------------------\n\n";
//問い合わせ内容の後(フッター)の設定
var footer
= "------------------------------------------------------------\n\n"
+ "内容を確認の上、2営業日以内に改めてご連絡いたします。\n"
+ "2営業日を経過しても返信がない場合は、お手数ですが再度フォームからお問い合わせ頂けますと幸いです。\n"
+ "なお、本メールに心当たりが無い場合、お手数をおかけいたしますがその旨を記載の上、ご返信ください。\n\n"
+"---------------------\n"
+"サイト名\n"
+"Mail: xxx@abcde.co.jp\n"
+"URL: http://abcde.co.jp/\n"
+"---------------------\n\n";
//変数の設定
var name = 'お名前'; //フォームの項目名と一致させる
var mail = 'メールアドレス'; //フォームの項目名と一致させる
var address = "";
//スプレッドシートの操作
var sheet = SpreadsheetApp.getActiveSheet();
var row = sheet.getLastRow();
var column = sheet.getLastColumn();
var range = sheet.getDataRange();
var TIMESTAMP_LABEL = 'タイムスタンプ';
for (var i = 1; i <= column; i++ ) {
//スプレッドシートのカラム名の取得
var item = range.getCell(1, i).getValue();
//スプレッドシートの各カラムの入力値の取得
var value = range.getCell(row, i).getValue();
//タイムスタンプの名称を「お問い合わせ日時」へ変換
if ( item === TIMESTAMP_LABEL ) {
item = 'お問い合わせ日時';
}
//日付の表示を変換
if ( item === 'お問い合わせ日時' ) {
value = Utilities.formatDate(value, 'Asia/Tokyo','yyyy/MM/dd(E) HH:mm:ss');
}
//本文(body)にフォームの入力項目を追加
body += "■"+item+"\n";
//本文にフォームの入力内容を追加
body += value + "\n\n";
//「お名前」に「様」をつけてメール冒頭(本文の前)に追加
if ( item === name ) {
body = value+" 様\n\n"+body;
}
//「メールアドレス」を変数addressに入れる
if ( item === mail ) {
address = value;
}
}
//本文にフッターの内容を追加
body += footer;
//宛名=address、件名=title、本文=bodyで、メールを送る
GmailApp.sendEmail(address,title,body);
}
青字の部分は適宜変更可能な部分(変更後の文章崩れは保証しません)、赤字の部分は変更可能ですがGoogleフォームの質問タイトルと一致させておく部分になります。よく分からないという人は、上記部分以外触らないでおきましょう。
スクリプトエディタに貼り付ける前にコードの内容を変更したい場合は、一度メモ帳など(Wordは非推奨)に貼り付けたうえで編集して、ツールから開いたスクリプトエディタにコピペしてください。
なお、上記にも示してありますが、「\n」は改行コードになります。文章の内容(""内)に改行を含めたい場合は「\n」を入力してください。エンターキーで改行を入れても意味がありません。
フロッピーマークをクリックで保存してください。
名前とメールアドレスの項目はその情報がメール送信時に必要なためスクリプトで引っ張ってきていますが、そのほかの質問項目に関してはスクリプトで命令して自動的に取得します。ほかに質問項目を作成したい、という場合も気にせず追加して大丈夫です。
なお、タイムスタンプの名称は、変更するとスクリプト実行時ののエラーに繋がりますので、格納フォーム(スプレッドシート)の構成名は変更しないでください。
発動タイミングの指定
スクリプトの発動タイミングの指定は、トリガーというものを設定することで行います。ツールから作成したスクリプトエディタの時計マークをクリックしてください。
「トリガーの追加」をクリックします。
「実行する関数を選択」を「autoreplymail」にして、「イベントの種類を選択」(=発動タイミング)を「フォーム送信時」にしましょう。
「保存」をクリックします。
アカウントの選択画面が表示されますので、アカウントを選択します。
「このアプリは確認されていません」という注意表示がされる場合があります。危険なものかと思ってドキッとする人もいるかと思いますが、このまま続行して問題ありません。「詳細」をクリックして内容を開いてください。
「(スクリプトエディタの名前)(安全ではないページ)に移動」をクリックします。
すると認証画面に移動しますので、「許可」をクリックしてください。
これで発動タイミングの設定が完了します。
Googleフォームに回答があった時に通知する設定方法
問い合わせフォームということは、回答があったかどうか通知も欲しいという人もいます。その場合の設定方法の説明をしていきます。
Googleアカウントのメールアドレスに回答を通知する設定手順
Googleフォームは、回答があった際、その旨を通知する設定も可能です。回答があった際の通知の設定はツールを利用することなく設定可能です。
通常、通知の設定で送信される通知メールはそのGoogleアカウントのメールアドレスやそのフォームを共有しているGoogleのメールアドレスに通知されます。設定は「回答」欄から行います。
「新しい回答についてのメール通知を受け取る」をクリックして、回答があった際のメール通知設定をONにします。
また、格納フォームであるスプレッドシートからもその設定は可能となります。スプレッドシートの「ツール」で「通知ルール」をクリックしてください。
「ユーザーがフォームを送信した時」「メール - その都度」を選択して、スプレッドシートでの通知設定を保存します。
Googleフォームで設定した通知メールは上記のような感じで送られてきます。
特定のメールアドレスに回答を通知する設定手順
Googleのメールアドレス以外の特定のメールアドレスに回答を通知する場合は、スクリプトを設定する必要があります。こちらも下記のスクリプトのコードを[ツール]→[スクリプトエディタ]で、そのスクリプトエディタにコピペすることで可能です。
先ほど作成したスクリプトエディタで、コピペした先ほどのスクリプトの後ろに、下記のスクリプトのコードをそのままコピペしてください。
下記スクリプトコードを利用すると、回答内容も一緒に通知されます。
必要ないという場合は「//スプレッドシートの操作」から「//本文にフォームの入力内容を追加」のスクリプトコードまで削除して、bodyの部分の青字部分を「お問い合わせがあったため内容確認のこと」などに適宜変更してください。
function notification() {
//通知メールの件名
var title = "お問い合わせがありました";
//通知メールの本文(\nは改行コード)
var body
="お問い合わせ内容は下記のとおりです。\n\n"
+ "------------------------------------------------------------\n\n";
//変数の設定
var address = "xxx@abcd.co.jp"; //通知を受信したいメールアドレスの入力
//スプレッドシートの操作
var sheet = SpreadsheetApp.getActiveSheet();
var row = sheet.getLastRow();
var column = sheet.getLastColumn();
var range = sheet.getDataRange();
for (var i = 1; i <= column; i++ ) {
//スプレッドシートのカラム名の取得
var item = range.getCell(1, i).getValue();
//スプレッドシートの各カラムの入力値の取得
var value = range.getCell(row, i).getValue();
//本文(body)にフォームの入力項目を追加
body += "■"+item+"\n";
//本文にフォームの入力内容を追加
body += value + "\n\n";
}
//宛先=address、件名=title、本文=bodyで、メールを送る
GmailApp.sendEmail(address,title,body);
}
先ほどのスクリプトと同じく、青字の部分は適宜変更が可能な部分です。メールアドレスは必ず変更してください。
コピペが完了したら、保存してスクリプトの発動タイミングの設定を行います。「トリガーの追加」を押して、「実行する関数を選択」を「notification」にして、「イベントの種類を選択」を「フォーム送信時」にしましょう。
選択したら、「保存」を押して発動タイミングの設定を完了します。「このアプリは確認されていません」の注意画面が表示された場合は、先ほどと同じように処理を行ってください。
Googleフォームの自動返信の動作検証
さて、スクリプトを貼り付けたとして自動返信が行われるかどうかの動作検証も必要です。ここでは動作検証の方法の説明をしていきます。
テスト用のアドレスで動作検証を行う
試しに一度自分で回答してみましょう。テスト用のアドレスを用意して、動作検証を行います。(特定のメールアドレスで通知を行っている場合は、そのメールアドレスとは別のメールアドレスを利用すると良いでしょう)
回答する場合はGoogleフォームの「送信」でリンクを取得して、ブラウザで回答してみてください。
自動返信メールの内容は上記画像のような感じになります。
特定のメールアドレスへ通知する設定にした場合、届く通知メールは上記の画像のような感じになります。
Googleフォームの自動返信が届かない時の対処法
Googleフォームで自動返信を設定したのに届かない場合、何らかの不具合が起きている可能性があります。
自動返信設定を見直す
自動返信が届かない場合の対処法として、まず考えられるのは自動返信設定の内容です。スクリプトのコピペが間違っていないか、トリガーの設定が間違っていないかなど確認してみてください。
筆者も一度失敗したのですが、その際は発動タイミングを設定するトリガーの「実行する関数」の選択を間違えていたため届きませんでした。その場合、トリガーのエラー率が0%でなくなっていましたので、トリガーのエラー率を確認してみましょう。
イベントの種類の選択で発動タイミングの設定が異なっていてもやはり自動返信はされませんので、スクリプトの内容だけでなく発動タイミングの設定も見直してみてください。
入力したメールアドレスが正しいか見直す
こちらに関してはメールアドレスを入力した人に影響されるため、こちらからは注意喚起程度しかできません。
テスト時であっても、メールアドレスの入力が間違っていると自動返信が行われません。テスト用のメールアドレスを利用していて通知されない場合は、入力したメールアドレスが正しいかを見直してみましょう。
Googleフォームで自動返信機能を作る場合には、スクリプトのコードをコピペしたり発動タイミングを設定したりと少々難しく感じられる部分もあると思います。
しかし、設定してしまえばあとはGoogleフォームに回答があった際、そのスクリプトの実行による自動返信を待つだけで問題ありません。
問い合わせフォームを利用しようと思っていて自動返信機能も付けたいと考えていた人は、ぜひこの記事を参考にして作成してみてください。