みなさん、こんにちは!
タカハシ(@ntakahashi0505)です。
Google Apps Scriptで備品購入申請を題材にワークフローを作る方法をお伝えしております。
前回の記事はこちら。
Googleフォームで備品購入申請のフォームを作成する方法をお伝えしました。
それで、フォームから送信があったら、その事実を承認者に知らせたいですよね。
GASでは、そんなときに便利な「フォーム送信時」のトリガーという機能があります。
ということで、今回はGoogle Apps Scriptでフォーム送信時にメッセージを送る方法です。
では、行ってみましょう!
前回のおさらい
前回はGASには触ってなくてですね、フォームを作っただけでしたね。
以下のようなフォームです。
このフォームを「送信」などから公開すれば申請を受け付けることができます。
それで、フォームからの送信があった場合は、以下のように連携するスプレッドシートに自動でデータが入力されるわけですね。
ここまでは、GASではなくて、フォームの機能だけで実現可能です。
次の段取りとしては、このフォームの送信があったときに、申請があったことを承認者に伝えたいですよね。
今回はその方法を解説していきますよ。
Gmailで申請があったことを通知する
承認者には、Gmailによるメールにより、申請があったことを伝えたいと思います。
まずは、その部分のスクリプトを作っておきましょう。
GASでGmailからメールを送信するには、GmailAppオブジェクトのsendEmailメソッドでしたね。
オプションにはCCやBCC、添付ファイルなどをオブジェクト形式で設定できますが、必要がなければ省略できます。
ということで、フォームから送信されたデータが蓄積されるスプレッドシートのコンテナバインドスクリプトに、以下のようなsendMessage関数を作りました。
function sendMessage() { const recipient = 'hogehoge@example.com'; //承認者のメールアドレス const subject = '備品購入申請のお知らせ'; let body = ''; body += '備品購入申請がありましたので\n'; body += '以下URLからスプレッドシートをご覧ください\n'; body += 'https://docs.google.com/spreadsheets/d/~'; //スプレッドシートのURL GmailApp.sendEmail(recipient, subject, body); }
実行すると、以下のようなメッセージが届きます。
メール送信の部分はOKですね。
「フォーム送信時」のトリガーとは
それで、先ほど作ったsendMessage関数を実行するわけですが、担当者がスプレッドシートに張り付いて、追加されたのを目でみてスクリプトエディタで「▶」ボタンをクリック…というわけにはいきません。
ここは、GASで用意されている「フォーム送信時」のトリガーという機能を使うことができます。
これは、フォームの送信が行われたときに、自動でスクリプトを実行させることができる機能です。
トリガーを設定さえすれば、我々は眠ってても大丈夫。
トリガーがフォームの送信を待ち構えていて、その際にはスクリプトを動作してくれます。
トリガーの設置方法
では、トリガーの設置方法を見ていきましょう。
まず、スクリプトエディタのツールバーから以下マークの「現在のプロジェクトのトリガー」をクリックします。
すると、別タブで「Google Apps Scriptダッシュボード」の現在のプロジェクトのトリガーのページが開きますので、「+ トリガーを追加」をクリックします。
「備品購入申請のトリガーを追加」というダイアログが表示されるので、以下のように設定して「保存」します。
- 実行する関数を選択:sendMessage
- イベントのソースを選択:スプレッドシートから
- イベントの種類を選択:フォーム送信時
承認に関するダイアログが表示されることもあると思いますので、承認してあげてください。
これでトリガーの設置が完了です。
他にもトリガーの種類はたくさんありますので、「イベントのソース」や「イベントの種類」について覗いてみてくださいね。
トリガーの動作を確認する
では、確認してみましょう。
備品購入申請フォームから送信しましょう。
スプレッドシートに書き込まれるとともに、「フォームの送信」トリガーが発火して、sendMessage関数が実行。
ちゃんとメッセージが到着しているはずです。
まとめ
以上、Google Apps Scriptでフォーム送信時にメッセージを送るスクリプトの作り方をお伝えしました。
「フォーム送信時のトリガー」がポイントですね。
さて、メッセージの内容に、申請内容入れたいですよね。
次回は、その部分を進めていきます。
どうぞお楽しみに!
連載目次:初心者でも作れるGASによる簡単ワークフロー
スプレッドシート、Gmail、フォーム…Google Apps Scriptで操作できるアプリケーションはまさに「ワークフロー」を作成する上で必要なものが揃っています。ということで、このシリーズでは初心者でも簡単に作れるワークフローの作り方について解説をしていきます。- 備品購入申請フォームをGoogleフォームで作成する方法
- Google Apps Scriptでフォーム送信時にメッセージを送るスクリプトの作り方
- Google Apps Scriptでフォーム送信した内容を含んだメッセージをGmailで送るスクリプト
- Google Apps Scriptで特定のURLを踏んだらスクリプトを動作させるdoGet関数の使い方
- GASでURLを踏んでスクリプトを動作させたときにパラメータを渡す方法
- 【GASで作るワークフロー】URLクリックで「承認」とするスクリプトの作り方
- GASで送信するGmailのメッセージをプレーンでもHTMLでも送れるようにする
- GASのワークフローでURLのパラメータで承認・否認を切り替える方法