2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

【GAS】 Google Formsの回答に自動返信する

Last updated at Posted at 2023-09-20

背景と実施したこと

掲題の通りですが、
Google Formsの回答に自動返信をするためのスクリプトを書きました。

ちなみにMicrosoft FormsとOutlookを使う場合はPower Automateを使ってノーコードで実現できるようです。
それ以外にもZapierというツールを使ってノーコードで済ますこともできます。
※Zapier試した感じだと若干のタイムラグがありそうだったのと、スクリプト書く方が(自分は)楽だったのでGASでの実装を今回採用しました。

参考にした記事
Google フォームで「自動返信メール」を設定する3つの方法&メールが届かない場合の対処法
【GAS】Googleフォームの回答取得から引数eの違いを理解、トリガー実行時のエラー解決方法

概要

  • GASのエディターでサジェストされたものをそのまま使ってもNG
  • スプレッドシートからGASを作る(Formsのスクリプトではない)

手順

手順は以下です。1~3と5はさほど難しくない&参考記事に載っている通りなので割愛します。

  1. Formsを用意する。
  2. 回答をスプシに紐づける。
  3. スプシからGASを設定する。
  4. GASの中でスプシの内容を読み取るスクリプトとメール送信する処理を書く
  5. Formsの回答をトリガーに設定する

4は以下のようなコードになります。
なお、sendEmailに関しては最新の公式リファレンスにあるように使い方にいくつかバリエーションがあります。

sendReply
function sendReply(e) {
  // フォームの回答を取得
  const NAME = e.namedValues['名前'][0];
  const EMAIL = e.namedValues['メールアドレス'][0];

  // 自動返信メール件名
  const SUBJECT = '【自動返信】資料請求ありがとうございます。';

  const BODY = 
  NAME + '\n\n'
  + 'お申込みありがとうございます\n'  
  + '2営業日以内にお申込み内容を確認し資料を送付させていただきます。\n' 
  + '恐れ入りますが、今しばらくおまちください。\n'
  + 'https:\/\/drive.google.com\/file\/d\/XXXX\/view\?usp=sharing';
  
  // メール送信
  MailApp.sendEmail(
    EMAIL,
    SUBJECT,
    BODY
  );
}

なお以下はNG例です。大文字のメソッドやクラスがサジェストされることもあるかもですが、これだとNGです。

sendReply
function sendReply(E) {
  // フォームの回答を取得
  const NAME = E.NAMEDVALUES['名前'][0];
  const EMAIL = E.NAMEDVALUES['メールアドレス'][0];

  // 自動返信メール件名
  const SUBJECT = '【自動返信】資料請求ありがとうございます。';

  const BODY = 
  NAME + '\n\n'
  + 'お申込みありがとうございます\n'  
  + '2営業日以内にお申込み内容を確認し資料を送付させていただきます。\n' 
  + '恐れ入りますが、今しばらくおまちください。\n'
  + 'https:\/\/drive.google.com\/file\/d\/XXXX\/view\?usp=sharing';
  
  // メール送信
  MAILAPP.SENDEMAIL(
    EMAIL,
    SUBJECT,
    BODY
  );
}

※ちなみにGmailなどの一部のメーラーでは受信側勝手に改行されたりするようです。
 そんなときはプレーンテキストではなくhtmlBodyで送ってあげるといいかも。

まとめ(自戒)

ついついネット記事のまま横着してコピペしがちですが、ちゃんと公式リファレンスみて実装しないとだめですね。

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?