質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Google フォーム

Google フォームは、 Google社が提供しているアンケートフォーム作成および集計ができる無料のツール。Googleアカウントがあれば利用が可能です。集計データは、スプレッドシートに収集され、データ分析もできます。

Google Apps Script

Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

メール

メールは、コンピュータネットワークを利用し、 情報等を交換する手段のことです。

Google

Googleは、アメリカ合衆国に位置する、インターネット関連のサービスや製品を提供している企業です。検索エンジンからアプリケーションの提供まで、多岐にわたるサービスを提供しています。

Q&A

解決済

2回答

1683閲覧

1時間に投稿が1件以上あれば、1回だけ通知をするようにしたい。

katanakazi

総合スコア1

Google フォーム

Google フォームは、 Google社が提供しているアンケートフォーム作成および集計ができる無料のツール。Googleアカウントがあれば利用が可能です。集計データは、スプレッドシートに収集され、データ分析もできます。

Google Apps Script

Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

メール

メールは、コンピュータネットワークを利用し、 情報等を交換する手段のことです。

Google

Googleは、アメリカ合衆国に位置する、インターネット関連のサービスや製品を提供している企業です。検索エンジンからアプリケーションの提供まで、多岐にわたるサービスを提供しています。

0グッド

0クリップ

投稿2020/05/09 15:40

前提・実現したいこと

インターネットの情報を参考に
Googleフォーム投稿があるとメール通知がくるという機能をGAS、
トリガー「フォーム送信時」で書きました。
現在、回答内容によって指定メールアドレスに通知がきます。

ただ、通知が頻繁にきすぎてしまっています。
1時間の間に投稿が1件以上あれば、1回だけ通知をするようにしたい。

発生している問題・エラーメッセージ

通知が頻繁にきすぎて困っています。

該当のソースコード

GoogleAppsScript

1function sendMessage(e) { 2 var recipient1; 3 var recipient2; 4 var itemResponses = e.response.getItemResponses(); 5 for(var i=0;i<itemResponses.length;i++){ 6 var itemResponse = itemResponses[i]; 7 var title = itemResponse.getItem().getTitle(); 8 var ans = itemResponse.getResponse(); 9 if(title=='No.'){ 10 if(ans=='1'){ 11 recipient1 = 1_1; 12 recipient2 = 1_2; 13 }else if(ans=='2'){ 14 recipient1 = 2_1; 15 recipient2 = 2_2; 16 }else if(ans=='3'){ 17 recipient1 = 3_1; 18 recipient2 = 3_2; 19 } 20 } 21 } 22 const subject = '□□□'; 23 let body = ''; 24 body += '□□□の提出がありましたので\n'; 25 body += '以下URLからスプレッドシートをご確認ください\n'; 26 body += 'https://docs.google.com/spreadsheets/'; //スプレッドシートのURL 27 28 GmailApp.sendEmail(recipient1, subject, body); 29 GmailApp.sendEmail(recipient2, subject, body); 30}

試してないこと

担当者にメールが入ってしまうのではないかと不安を持っています。
トリガーの「時間主導型」を試すべきかと思ったのですが、試していません。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

GASのトリガーには時間主導型で「1時間おき」って設定が出来ます。

フォームの回答のスプレッドシートで 1時間おきに回答のタイムスタンプをチェックして、スクリプト実行時の日時から1時間前までのタイムスタンプがあればメール送信という処理をすればよいかと。

投稿2020/05/10 13:02

sawa

総合スコア3002

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

katanakazi

2020/05/10 23:40

コメントいただきありがとうございます! 時間主導型で作り直した方がいいですよね。。。 できれば、今のプログラムに追加する形の方がありがたいのですが。。。勝手をいいすみません。
guest

0

投稿きたらメール出すようにして、メールだしたらタイマ起動して1時間たつまでメール出さないようにすればいいのでは。

投稿2020/05/09 15:45

y_waiwai

総合スコア87747

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

katanakazi

2020/05/10 12:43

コメントいただきありがとうございます! 確かに仰るとおりかと思います! タイマー関数のようなものがGasにもあるのでしょうか?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問