予定が決まっているZoomミーティングの招待メールを一斉送信する方法について考えました。条件は以下の通りです。(注:結果としてZoomとの連携をしていませんが,同じ用途での利用方法を探している人のために件名にZoomを加えています)
- ミーティング参加者は予めリストになっている
- 参加者によって参加するミーティングが異なる
- 招待メールの件名は都度異なる
- 招待メールの本文はすべて同じでよい
- 参加者,ミーティング予定は関係者が誰でも編集できるようにする
- 有料のサービスは利用できない
以下の方法で実現することにしました。
- Googleスプレッドシート
- シート(ミーティングリスト)にミーティング予定を登録
- シート(参加者リスト)に参加者とメールアドレスを登録
- Integromat(インテグロマット)無料プラン
- 毎日8時から20時まで,1時間に1回稼働
- 1000オペレーション/月に収まるよう設計
- Gmail
- BCCで一斉送信
- IntegromatのGmail連携にはAPIの公開手続きが必要(今回は手順省略)
- Gmailの代わりにSMTP送信できるメールアカウントを用意するほうが楽かも
Googleスプレッドシート
スプレッドシートの名称は**「Zoomミーティングリスト」**とします。
以下のシートを作成します。
- ミーティングリスト
- 参加者リスト
ミーティングリスト
列 | 列名 | 例 | 備考 |
---|---|---|---|
A | 区分 | 昼礼 | 後述の参加者リストの「参加対象」で使用する |
B | 日付 | 2020/11/16 | ミーティングの日付 |
C | 通知時間 | 13 | 招待メールを送信したい時間。Integromatのスケジュールを8時0分から開始するよう設定するので,通知時刻を13にすれば,13時0分頃にメール送信される。 |
D | 件名 | 昼礼の招待 | メールの件名 |
参加者リスト
列 | 列名 | 例 | 備考 |
---|---|---|---|
A | 氏名 | 山田太郎 | 連携では使用しないが,リスト管理に便利 |
B | メールアドレス | tarochan@example.com | メール送信先 |
C | 参加対象 | 朝礼,特別 | ミーティングリストの区分と一致するとメール送信の対象となる。半角コンマ区切りで複数設定できる。 ただし,Integromatのフィルター処理ではオペレーション節約のため Contain を使う。仮に区分を「礼」などと登録すれば,朝礼と昼礼の両方が一致してしまうので注意。 |
Integromatシナリオ
Googleスプレッドシート SearchRows:ミーティングリスト
Googleスプレッドシートとの連携にはConnectionが必要です。Googleスプレッドシート:SearchRowsモジュールを追加した後,Addをクリックして連携してください。
次いで,以下のような設定にします。
さらにフィルターを設定します。
対象 | operator | 値 |
---|---|---|
区分(A) | Exists(Basic) | |
日付(B) | Later than or equal to(Datetime) | {{parseDate(formatDate(now; "YYYY-MM-DD 0:00"); )}} |
日付(B) | Earlier than or equal to(Datetime) | {{parseDate(formatDate(now; "YYYY-MM-DD 23:59"); )}} |
通知時間(C) | Equal to(Numeric) |
リスト取得後のフィルター処理
ミーティングリストの取得件数が0件の時に次の動作に移動してしまうのを防ぐため,フィルター処理を追加します。
対象 | operator | 値 |
---|---|---|
区分(A) | Exists(Basic) |
Googleスプレッドシート SearchRows:参加者リスト
上記と同じくGoogleスプレッドシート:SearchRowsモジュールを追加し,以下のように設定します。
さらにフィルター設定します。
対象 | operator | 値 |
---|---|---|
参加対象(A) | Contains | 区分(A) |
Array aggregator:ループ停止
ループを停止しないとオペレーション数が増えるので,ここでループを停止します。
後でArray(配列)として使用するので,Aggregationd Fieldの「メールアドレス」のみチェックを入れます。
Gmail(EMail)
Gmailモジュールを追加します。Connectionが必要ですが,IntegromatのGmail連携は2020年6月以降,Google側のセキュリティ強化に伴い,Gmail APIの公開が必要です。手間がかかるので,SMTPで送信する手段があるならEMailモジュールを使うのもおすすめです。
https://support.integromat.com/hc/en-us/articles/360013972700
To(送信先)には送信者自身のメールアドレスなど,参加者に知られてもよいメールアドレスを入力します。
Subject(件名)にはミーティングリストから取得した件名を選択します。
Content(本文)は毎回同じという前提なので,直接入力します。本文をミーティングごとに変えたいなら,件名同様にミーティングリストに列を追加することができます。ただし本文は複数行なのでリストが見づらくなります。それ以外の方法だとオペレーション回数が増えるので,今回はあきらめます。
"Show adavanced settings"にチェックを入れます。Blind copy recipident(BCC)を以下のようにします。値を設定する前にmapをオンにしてください。
{{map(8.array; 1)}}
Array[]は選択で入力できます。
※8.arrayの8の部分は同じにならないかもしれません。
スケジュール設定
以下のように設定します。
対象 | 値 | 備考 |
---|---|---|
Run scenario | At regular intervals | 定期実行 |
Minutes | 60 | 1時間に1回実行 |
Time from | 08:00 | 8時から実行 |
Time to | 20:59 | 8時59分で終了 |
Days | Monday-Sunday | 全曜日を選択 |
Months | January-Decembar | 全月を選択 |
これで,以下のように動作します。
- 8時から20時まで,各時間帯の0分に作動
- 1日に12回作動
- 例:1日に2回ミーティングがある場合
- 空振り10回:オペレーション 310回/月
- メール送信2回:オペレーション 248回/月
- 合計:オペレーション 558回/月