【Google Apps Script 入門講座-02】Googleフォームに自動返信メールを実装してみよう!

今回はGoogleフォームに回答が送信されたと同時に、自動返信メールを送るしくみを実装してみましょう!

私たちも日頃フォームを入力する機会があると思いますが、送信すると「お問い合わせありがとうございます」といった自動返信メールが届くことがありますよね。

ですが、Googleフォームには自動返信の機能はデフォルトでありません。

そこで今回はGASで自動返信機能を追加して行きます!

この仕組みは、実際の業務でもすぐに使える場面がたくさんあります👇

  • お問い合わせ対応
  • 講座やイベントの申し込み確認(申込者に情報を伝える)
  • 社内申請フォームの受理通知
デイトラちゃん

イベントに申し込みしてくれた人にイベント詳細を添えたメールを送ったり、資料請求してくれた形に自動で資料送ったり、使い所は多そう!

前回と同様に、実装しながらコードの中身を確認して理解を深めていきましょう!

目次

実装手順

STEP
Googleフォームを新規で作成します。

まずは自動返信の元となるGoogleフォームを作成します。

Googleフォーム にアクセスし、「空白のフォーム」から新しいフォームを立ち上げます。

フォームが作成できたら、今回は以下の項目を設定します。

※フォーム名はなんでもOKですが、項目の順番は変えないように注意してください!

質問項目種類(形式)補足
お名前(必須)記述式(短文)回答者の名前を取得
メールアドレス(必須)記述式(短文)※ここに自動返信されます
お問い合わせ内容段落自由入力欄

【注意】フォームの「設定」タブ→「回答」を確認し、「メールアドレスを収集」にチェックが入っていないか確認してください。

STEP
回答先のスプレッドシートを作成する

フォームを作成したら、その回答を記録するためのスプレッドシートを紐づけます。

フォーム画面上部にある「回答」タブを開き、右上のスプレッドシートアイコンをクリックします。

「新しいスプレッドシートを作成」を選択すると、自動的に回答用のシートが作られ、以後の回答はこのシートに記録されるようになります。

STEP
スクリプトを記述する

スプレッドシートが開けたら前回同様に、「拡張機能」→「Apps Script」を選択しエディタを開きます。

初期のコード(function myFunction())はすべて削除して以下のコードを貼り付けてください。

function sendAutoReply(e) {
  const responses = e.values;
  const name = responses[1];  // 2列目:お名前
  const email = responses[2]; // 3列目:メールアドレス
  const message = responses[3]; // 4列目:お問い合わせ内容

  const subject = `お問い合わせありがとうございます`;
  const body = `${name}様\n\nこのたびはお問い合わせいただきありがとうございました。\n以下の内容で承りました:\n「${message}」\n\n担当より折り返しご連絡いたします。`;

  GmailApp.sendEmail(email, subject, body);
}

今回はプロジェクト名を「お問い合わせフォーム」、ファイル名を「auto-reply(日本語でもOKです)」としておきましょう。

このスクリプトはGoogleアカウントを通じてメールを送信します。Gmailを利用できないGoogleアカウントではメール送信ができないので注意してください。

STEP
トリガーを設定する

前回は手動でスクリプトを実行していましたが、GASには「〇〇なときにXXの関数を実行する」という機能があり、トリガーと呼びます。

今回は「フォームが送られたらスクリプトを実行する」というトリガーを設定して行きましょう!


①左側のメニューからトリガー(時計アイコン)をクリック

②「トリガーを追加」をクリック

※下記の画面以外のポップアップが出る場合は消してしまってOKです。

③トリガーの設定

以下のように項目を設定してください!

  1. 実行する関数→「sendAutoReply」を選択(初期で選択されているはずです)
  2. イベントの種類→「フォーム送信時」を選択
  3. エラー通知設定→「今すぐ通知を受け取る」を選択

設定ができたら「保存」します。

前回同様、権限に関するポップアップが表示されるので承認していきましょう。

STEP
フォームを送信してみよう!

それでは、きちんと処理が実行できるか確認していきましょう!

フォームを公開(公開範囲が設定できます)し、リンクのアイコンから回答用のURLを取得してアクセスします。

フォームに回答した後、承認したGoogleアカウントのGmailを確認してみましょう。

送信済みアイテムとして、メールが確認できれば無事処理が成功しています!

タイトル・本文を自由に書いてみよう!

このスクリプトがどんな処理をしているのかについては、次回よりくわしく確認していきますが、スクリプト内の変数は以下のようにメールの内容に反映されています。

const subject = `お問い合わせありがとうございます`;
  const body = `${name}様\n\nこのたびはお問い合わせいただきありがとうございました。\n以下の内容で承りました:\n「${message}」\n\n担当より折り返しご連絡いたします。`;

subject:メールの中身
body:メールの本文
メール本文中の${name}:回答者が入力した名前
メール本文中の${message}:回答者が入力したお問い合わせ内容

つまり、変数の中身(`〜〜〜` バッククォーテーションで囲まれている部分)を変更することで、自由にメールの内容を変更できます。

本文中の\nは改行を表していますが、GASは変数の中の改行もそのまま反映されるので以下のような書き方でもOKです。

※改行後の左側はインデントすると実際のメール文に隙間が入ってしまうので注意してください。(インデント…文字の頭を揃えて読みやすくすること)


無料で使えるGoogleフォームに自動返信機能が追加できると、使いどころも多いのでとても便利ですね👍️

次回は今回の処理の内容をより詳しく確認していきながら、GASの理解を深めていきましょう。

今回もお疲れさまでした👏

目次