松本典子の「はじめよう!Azure Logic Apps/Power Automateでノーコード/ローコード」 第41回
指定のキーワードが含まれてたメッセージをメンバー全員に自動でメール送信する
重要なTeamsメッセージの見失い/見落としを防ぐPower Autometeのフローを作ろう
2024年09月12日 11時00分更新
こんにちは、Microsoft MVP(Business Applications)の松本典子です。
皆さんは「Microsoft Teams」を利用されているでしょうか。Teamsでは、プロジェクトメンバーなど複数人が参加する「グループチャット」を作ることができます。
グループチャットは関係者だけのチャットになるので気軽に意見交換ができますが、参加メンバーや投稿メッセージの数が増えると、古い投稿はどんどん流れていってしまいます。そのため「過去の重要なメッセージを探すのに時間がかかった」「重要な投稿を見逃してしまった」という経験をされている方も多いのではないでしょうか。
今回は、そうした“ちょっとした時間泥棒”な作業を改善するキッカケになる仕組みを作ってみたいと思います。Power Automateの「Microsoft Teams」コネクタを活用し、指定の文字列が含まれているメッセージがあれば、グループチャットに参加しているメンバー全員にメッセージ内容をメール送信するというものです。
1. 今回実現すること
サンプルとして、今回はTeamsに「○△イベント準備用」というグループチャットを作成しました。ここに「メール送信」という文字列が含まれるメッセージが投稿されたら、メンバー全員にメール送信されるようにします。
もちろん、実際に皆さんが活用される際には、このグループチャット名や対象とする文字列は任意に変更してください。
2. フロー全体図
今回、Power Automateで作成するワークフローの全体像は上図のとおりです。
特定のグループチャットで「メール送信」という文字列が含まれるメッセージ投稿があった場合、それをトリガーとして起動し、そのメッセージをグループチャットのメンバー全員にメール送信するという流れです。
なお、今回はクラシックデザイナーの画面で説明していますが、フローはモダンデザイナーでも同じように作成できます。
2-1. トリガーの設定
まず、フローのトリガーには「Microsoft Teams」コネクタを利用します。
検索窓に「teams」と入力して「Microsoft Teams」コネクタを選択し、アクション一覧から「キーワードが言及された場合」をクリックします。このアクションは次のように設定します。
コネクタは以下のように設定します。
(1)メッセージの種類:今回は「グループチャット」を選択
(2)検索キーワード:今回は「メール送信」と入力(複数のキーワードを設定できます)
(3)chat - 1:対象のグループチャット名を選択(今回は「○△イベント準備用」)
2-2. アクションの設定:変数を初期化する
グループチャットに入っているメンバー全員のメールアドレス一覧を作成するため、変数を設定します。
タブの「組み込み」をクリックし、「変数」コネクタを選択します。
一覧から「変数を初期化する」アクションを選択します。
このアクションは以下のように設定します。複数のメールアドレスを格納できるように、変数の種類は「アレイ」、つまり配列変数にします。
(1)名前:「メールアドレス一覧」と入力
(2)種類:「アレイ」を選択
2-3. アクションの設定:メンバー リストを作成
グループチャットに参加しているメンバーリストを作成します。
検索窓に「teams」と入力して「Microsoft Teams」コネクタを選択し、アクション一覧から「メンバー リストを作成」をクリックします。このアクションは次のように設定します。
(1)スレッドの種類:「グループチャット」を選択
(2)Group chat:対象のグループチャット名を選択(今回は「○△イベント準備用」)
2-4. アクションの設定:配列変数に追加
「2-2. アクションの設定:変数を初期化する」で作成した変数に、メンバー全員のメールアドレスを追加します。
タブの「組み込み」をクリックして「変数」コネクタを選択します。アクションの一覧から「配列変数に追加」をクリックします。
(1)名前:変数名「メールアドレス一覧」を選択
(2)値:メンバー リストを作成の動的なコンテンツ「メンバーの一覧 電子メール」を選択
(3)Apply to each(自動的に追加):(2)で値に「メンバーの一覧 電子メール」を設定すると、自動的にApply to eachが追加されます。
2-5. アクションの設定:結合
変数に格納されたメールアドレスを、Outlookコネクタで利用できる形に成形します。具体的には複数のメールアドレスを「;」でつなげて、CCメール(同報メール)の宛先として使えるようにします。
このアクションでは以下の設定をします。
(1)結合する配列:「変数」の動的なコンテンツ「メールアドレス一覧」を選択
(2)次を使用して結合:「;」を入力
2-6. アクションの設定:メッセージ詳細を取得する
グループチャットの該当メッセージの詳細を取得します。
検索窓に「teams」と入力して「Microsoft Teams」コネクタを選択し、アクション一覧から「メッセージ詳細を取得する」をクリックします。このアクションは次のように設定します。
(1)メッセージ:キーワードが言及された場合の動的なコンテンツ「Message ID」を入力
(2)メッセージの種類:「グループチャット」を選択
(3)Group chat:対象のグループチャット名を選択(今回は「○△イベント準備用」)
(2)Apply to each:(1)の動的なコンテンツ「Message ID」を入力すると、自動的にApply to eachが追加されます。
2-7. アクションの設定:メールの送信(V2)
グループチャットのメッセージ本文をメンバー全員にメールで送信します。
検索窓に「outlook」と入力して「Office 365 Outlook」コネクタを選択し、アクション一覧から「メールの送信(V2)」をクリックします。このアクションは次のように設定します。
(1)宛先:「結合」の動的なコンテンツ「出力」を入力
(2)件名:メール受信時にわかりやすい内容を入力(今回は「グループチャットの履歴」)
(3)本文:テキストと式、動的なコンテンツを組み合わせてメール本文を作成します。この内容は任意に変更してください。
なお「本文」には、次のようにして送信日付や当該メッセージへのリンク、メッセージの内容を組み込みます。
(A):「日付:」の後ろに以下の式を入力
formatDateTime(utcNow(), 'yyyy-MM-dd')
(B):「メッセージリンク:」後ろに、メッセージ詳細を取得するの動的なコンテンツ「Message ID」を選択
(C):以下の式を入力
replace(outputs('メッセージ詳細を取得する')?['body/body/plainTextContent'], decodeUriComponent('%0A'), '<br>')
以上でフローが完成しました。最後は忘れずに、フローに名前を付けて「保存」します(筆者は「Teamsキーワードが言及されたらメール送信」いうフロー名にしました)。
3. 実行結果
実際にフローを実行してみます。「1. 今回実現すること」で触れたとおり、今回は「○△イベント準備用」というグループチャットに、「メール送信」という文字列が含まれるメッセージを投稿すると、フローが実行されて全メンバーにメールが送信されるはずです。
Teamsのグループチャットに、「メール送信」の文字列を含むメッセージを投稿します。
上図のように、ほぼリアルタイムでグループチャットの内容が記載されたメールがメンバー全員に送信されました。
最後に
グループチャット機能は便利ですが、個人的には「後からメッセージを探すのが大変だな」と感じていたので、今回のような仕組みがあると便利なのではないか、と思っています。
なお、今回使用したTeamsコネクタの「キーワードが言及された場合」アクションは、グループチャットだけでなくチャネルの投稿に対しても同じように利用することができます。この機能を活用して、業務改善のキッカケにしてみてください。
この連載の記事
-
第44回
Team Leaders
契約書を確実に期限管理! SharePoint+Power Automateで期日通知を自動化 -
第43回
Team Leaders
社内からの質問に自動回答! AI Builder+ノーコードでQ&Aボットを作ろう -
第42回
Team Leaders
Power Automateで複数人の承認(多段階承認)ワークフローを簡単作成しよう -
第40回
Team Leaders
クラウドフローからデスクトップフローを「Picture-in-Picture」で起動する -
第39回
Team Leaders
面倒なカレンダー登録作業を生成AIで自動化するワークフローを作ろう -
第38回
Team Leaders
生成AIに日本語プロンプトで指示を出し、メールから情報を抽出してもらおう -
第37回
Team Leaders
フォルダー内のすべてのファイルを添付してメールを自動送信するフローを作ろう -
第36回
Team Leaders
ローカルPCのテキストファイルをPower Automateに読み込ませて活用しよう -
第35回
Team Leaders
受信メールの添付ファイルを種類に応じたフォルダに自動保存する -
第34回
Team Leaders
Power AutomateでTeamsのチーム全員にメンションを送る方法 - この連載の一覧へ