セミナー等の申し込みをGoogleフォームで受け付けた後に申込者のメールアドレスに対して支払方法の種類別に異なる文面のメールを自動返信するGAS(Google Apps Script)

セミナーの申し込みなどをGoogle フォームで行い、フォームに回答されたメールアドレスに対してメールを自動返信するというサービスはネット上にわかりやすく丁寧な記事がいくつもあります。


が、これらのうち、税理士などがセミナーを開催する場合でその申し込み受付を Google フォームで行っていて、かつ、支払方法を「振込払い」や「クレジット払い」、「ペイパル決済」など、


その決済方法に応じて自動返信メールに記載する内容を変更させるという記事はなかなかみかけません(当社調べ)ので、どうすればいいか考えてみました。

Googleフォームで回答された支払方法の種類別に異なる文面のメールを自動返信するGAS


今回やりたいことはセミナーの申込者がセミナーの受講料の支払方法を「振込払い」を希望してGoogleフォームで回答した場合には振込先口座を記載した自動返信メールを送信し、セミナーの受講料の支払方法を「クレジット払い」を希望してGoogleフォームで回答したのであればその決済先の URL を記載した自動返信メールを送信する等といった形のものになります。


で、事前にこういう風にすればうまくいくんじゃないかと考えた案として、

Google をフォーム使うから、そのフォームに回答された内容はスプレッドシートと連携してデータとして吐き出して使えるんじゃね?


で、

データとして吐き出せるなら回答された支払方法をGAS(Google Apps Script)のif関数のようなものを使って判定させて回答された支払方法に対応したメール文章を作成(選択)したらいいんじゃね?



で、

そこまでいけばあとはネットにあるGAS(Google Apps Script)の自動返信のやり方を参考に(パクる)したらいいんじゃね?


と考えました。


で、実際にこの案でうまくいくか試してみました。

スプレッドシートに記載(回答)された内容に応じてGAS(Google Apps Script)でif文を使って処理を分けることができることは前回の記事で確認済みです。

GAS(GoogleAppsScript)でfor文とif文の使い方、最終行の取得、セルの値の取得、セルへ値の記載等のやり方




で、Googleフォームで回答された内容をスプレッドシートに連携することも簡単に可能(というかもともとそういう機能がある)ことがネットで調べてわかりました。



ってことはたぶん上で考えた案でいけそうな気がしてきました。

そこで今回の記事のためにシンプルなGoogle フォームを作成してみました。

  1. 氏名
  2. 支払方法
  3. メールアドレス



のみを記載しています↓



で、この Google フォームをスプレッドシートと連携しておきます。

そうすることで Google フォームに回答があったと同時にスプレッドシートにその回答事項がデータとして作成されます。やりかたは簡単ですし、ネットに記事がたくさんありますので割愛します。

試しに適当にフォームに回答して送信してみます。



すると送信後すぐにGoogleフォームと紐づいたスプレッドシートに回答内容がデータとして生成されました。





もう少し試したいので別の名前で支払方法をクレジットにして回答してみます。



すると同様にデータがすぐにスプレッドシートに反映されます↓




ということで、Googleフォームとスプレッドシートの連携は問題なくいけているようです。


次はこのスプレッドシートのデータを使って自動返信するメールの内容をGAS(Google Apps Script)で作成していきます。

GAS(Google Apps Script)のスクリプト



スプレッドシートの「ツール」から「スクリプトエディタ」を選択してGAS(Google Apps Script)を作成していきます。




でこんな感じのスクリプトを作成しました↓

function myFunction() {
  
  //■Googleフォームに回答されたメールアドレスを取得して、c列に記載された【支払方法】の区分によって
  //■異なるメッセージを自動で送信するスクリプト


  //■変数宣言 

  let sheet = SpreadsheetApp.getActiveSheet();  //アクティブなスプレッドシートを取得する

  let lastrow = sheet.getRange(sheet.getMaxRows(),1).getNextDataCell(SpreadsheetApp.Direction.UP).getRow(); //A列の最終行を取得する

  let recipient = sheet.getRange(lastrow,4).getValue(); //Googleフォームに回答されたメールアドレスを取得する

  let name = sheet.getRange(lastrow,2).getValue() //Googleフォームに回答された氏名を取得する

  let subject ="セミナー受講の御礼と振込先のご案内";//自動返信するメールのタイトル


  //■支払方法の区分に応じたメールの文章(振込)

  let MsgFurikomi = (`  【 ${name} 】様
  
  税理士独立開業セミナーへの申し込みありがとうございました。
  
  受講料の振込はこちらの口座へお願いいたします。

  〇〇銀行■■支店 普通 口座 123456 しくじる税理士

  なお支払期限までに振込が確認できない場合にはキャンセルとなりますのでご注意ください。`);

  //■支払方法の区分に応じたメールの文章(クレジット)

  let MsgCredit =(`  ${name}様
  
  税理士独立開業セミナーへの申し込みありがとうございました。
  
  クレジットの支払いはこちらのURLからお願いいたします。

  https://〇〇〇■■■

  なお支払期限までに振込が確認できない場合にはキャンセルとなりますのでご注意ください。`);


  //■処理実行部分  

  
  if(sheet.getRange(lastrow,3).getValue()==="振込"){

    GmailApp.sendEmail(recipient,subject,MsgFurikomi);

  }else if(sheet.getRange(lastrow,3).getValue()==="クレジット"){

    GmailApp.sendEmail(recipient,subject,MsgCredit);

  }else{

    
  }

 }


【支払方法】のデータがスプレッドシート上のどこの列にデータ出力されるかはGoogleフォームの記載項目の数など、内容によりますので(今回の場合にはC列)その点は状況に応じて上記のスクリプトを書き換える必要があります。



スクリプトが問題なく動作することが確認できれば後はトリガー機能を設定するといいはず。

トリガーの設定はこちらから↓




で、こんな感じで「イベントの種類」を「フォーム送信時」に設定するとGoogleフォームの回答が送信されたタイミングでGAS(Google Apps Script)が実行されます↓




以上でGoogleフォームに回答された「支払方法」の区分に応じて異なる文面を自動送信する準備は完了です。


GAS(Google Apps Script)で新規メールを送信するためのルール


GAS(Google Apps Script)でメールを送信するには下記のようにスクリプトを記述しないといけないルールがあります。(この辺の内容に関してはネットに丁寧な記事が腐るほどあるので本記事ではざっくりと説明します。)


GmailApp.sendEmail(recipient,subject,body,{options})


このうち、recipientに関しては送信先のメールアドレスを指定します。上のスクリプトではこの箇所のことです。


スプレッドシート上のこの箇所をさします↓





GmailApp.sendEmail(recipient,subject,body,{options})subjectに関してはメールの件名を指定します。上のスクリプトではこの箇所のことです。





GmailApp.sendEmail(recipient,subject,body,{options})のbodyにメールの本文を記載します。上のスクリプトではこの箇所のことです。


今回は「MsgFurikomi」という変数?関数?と「MsgCredit」という変数?関数?を設定しています。





GmailApp.sendEmail(recipient,subject,body,{options}){options}は添付ファイルを添付したり、送信元メールアドレスを指定したり、CCの設定等をすることができます、特にオプションが必要なければ指定しなくても問題ありません。

まとめ


わざわざ、支払方法の種類に応じてメールの文章を変更することなく、どんな支払方法であれ、統一したメール文章を自動返信するほうが簡単ですし、効率も良いとは思います。(それを言い出すと今回の記事はゴミ記事になってしまいますが。。。)


ですが、今回の記事のようなことをやりたいという人も日本のどこかに一人くらいはいるかもしれません。


いつかその人の役にたてればこの記事も成仏できるかもしれません。(なんの話?)




【本日の近況報告】

弱虫ペダルという自転車レースを題材にした漫画があるんですが、(記事作成時点においては週刊チャンピオンに連載中)
特に思い入れもないのに、なぜか惰性でコミックを全巻購入していまして。

2021年5月時点で71巻までありまして、さすがに邪魔になってきたのでメルカリで全部売却しようか検討中です。

そういえばメルカリって売却した代金はメルペイとして使用することができるそうなんですが、個人事業主の方が事業で使うために購入して経費として処理した備品なんかをメルカリで売ったりしたときってちゃんと経理処理されているんでしょうかね?

メルペイのままにしておいたら銀行口座等に入金はされないので、上記のような取引の有無を税理士側が把握することが難しいような気がしています。

【本日の1曲】

NOFX/EAT THE MEEK

「オー・シャンゼリゼ」のパンクカバーが収録されたNOFXのアルバムからの1曲。

曲の始まりから哀愁が漂うスカ・レゲエナンバー。

NOFXによるダブバージョンとか、フランクターナーがカバーしてるバージョンがありますが、このオリジナルが一番いいと思います。

歌いだしの「why must we stay 、where we don’t belong」 って歌詞がいい。

どんな意味かはわかりませんが。多分「なんでこんなとこでくすぶってるんだ?俺の居場所はここじゃない。」みないな感じですかね?

どなたか英語に詳しい方ご連絡いただければ。(間違ってたら恥ずかしい。。。)