Help us understand the problem. What is going on with this article?

Integromat無料枠を使ってZoomミーティングの招待をメール一斉送信

予定が決まっている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 件名 昼礼の招待 メールの件名

image.png

参加者リスト

列名 備考
A 氏名 山田太郎 連携では使用しないが,リスト管理に便利
B メールアドレス tarochan@example.com メール送信先
C 参加対象 朝礼,特別 ミーティングリストの区分と一致するとメール送信の対象となる。半角コンマ区切りで複数設定できる。
ただし,Integromatのフィルター処理ではオペレーション節約のため Contain を使う。仮に区分を「礼」などと登録すれば,朝礼と昼礼の両方が一致してしまうので注意。

image.png

Integromatシナリオ

以下のようなシナリオを作成します。
image.png

Googleスプレッドシート SearchRows:ミーティングリスト

Googleスプレッドシートとの連携にはConnectionが必要です。Googleスプレッドシート:SearchRowsモジュールを追加した後,Addをクリックして連携してください。
次いで,以下のような設定にします。
image.png

さらにフィルターを設定します。

対象 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)

image.png

リスト取得後のフィルター処理
ミーティングリストの取得件数が0件の時に次の動作に移動してしまうのを防ぐため,フィルター処理を追加します。

対象 operator
区分(A) Exists(Basic)

image.png

Googleスプレッドシート SearchRows:参加者リスト

上記と同じくGoogleスプレッドシート:SearchRowsモジュールを追加し,以下のように設定します。

image.png

さらにフィルター設定します。

対象 operator
参加対象(A) Contains 区分(A)

image.png

Array aggregator:ループ停止

ループを停止しないとオペレーション数が増えるので,ここでループを停止します。
後でArray(配列)として使用するので,Aggregationd Fieldの「メールアドレス」のみチェックを入れます。

image.png

Gmail(EMail)

Gmailモジュールを追加します。Connectionが必要ですが,IntegromatのGmail連携は2020年6月以降,Google側のセキュリティ強化に伴い,Gmail APIの公開が必要です。手間がかかるので,SMTPで送信する手段があるならEMailモジュールを使うのもおすすめです。
https://support.integromat.com/hc/en-us/articles/360013972700

To(送信先)には送信者自身のメールアドレスなど,参加者に知られてもよいメールアドレスを入力します。
image.png
Subject(件名)にはミーティングリストから取得した件名を選択します。
Content(本文)は毎回同じという前提なので,直接入力します。本文をミーティングごとに変えたいなら,件名同様にミーティングリストに列を追加することができます。ただし本文は複数行なのでリストが見づらくなります。それ以外の方法だとオペレーション回数が増えるので,今回はあきらめます。
image.png
"Show adavanced settings"にチェックを入れます。Blind copy recipident(BCC)を以下のようにします。値を設定する前にmapをオンにしてください。
image.png
{{map(8.array; 1)}}
Array[]は選択で入力できます。
※8.arrayの8の部分は同じにならないかもしれません。
image.png

スケジュール設定

以下のように設定します。

対象 備考
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 全月を選択

image.png

これで,以下のように動作します。

  • 8時から20時まで,各時間帯の0分に作動
  • 1日に12回作動
  • 例:1日に2回ミーティングがある場合
    • 空振り10回:オペレーション 310回/月
    • メール送信2回:オペレーション 248回/月
    • 合計:オペレーション 558回/月

最後に,SCHEDULINGをオンにして稼働開始です。
image.png

kunyanist
社内SE
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away