リモートワークで導入して良かったツール詳しく見る

【Power Automate】Teamsで複数人へメンション付きメッセージを送る

ぽこがみさま

前回の記事でPower Automateを用いてTeamsにメンション付きメッセージを送信する方法を解説しました。

じょじお

今回の記事では、チーム内の複数人のメンバーへメッセージを送る方法について解説していきたいと思います。

目次

わたしのテスト環境の解説

Microsoft365 開発者プログラム

今回は以前の記事にて作成した試用期間中の「Microsoft365 開発者プログラム」というテスト環境を用います。Microsoft365 開発者プログラムは無料でMicrosoft365 E5と同等のテスト環境を試用できます。ご興味があればあわせて下の関連記事をご覧ください。

Microsoft365 開発者プログラムは下記の方におすすめ

  • これからPower Automateを導入を検討している方
  • 本番環境でテストしたくない方
  • テスト環境を無料で用意したい方

今回のゴール

Teams メンバー一覧

▲19名のチームメンバーのうちDirectorの肩書きを持つメンバーに、Power Automate からメンション付きメッセージを送信します。(図の赤枠の3名)役職はTeamsの「設定>メンバータブ」から確認することができます。

この記事のゴール!

  • Power Automateから、Directorの肩書きを持つメンバーにメンション付きメッセージを送信するフローをつくる。
  • Directorの肩書きを持つメンバーの増減があっても動的(フローを編集せず)に対応できるようにしたい。
じょじお

「今回使用する方法は、特定の部署(事業所)に所属する人だけにメンションする」という方法にも使えます。

ぽこがみさま

姓・名・電話番号などユーザプロファイルに存在する属性なら使用可能にゃ。

Power Automateフローの完成図

フロー完成図①全体
フロー完成図② Apply to eachの中の処理

▲このフローを実行すると、

Power AutomateからTeamsメッセージ送信結果

▲このようにディレクターの3名だけにメンションしたメッセージを送信します。

複数人へメンションするポイントは「グループメンバーの一覧表示」アクション!

Microsoft 365コネクタ「グループメンバーの一覧表示」アクションとは。

Microsoft365コネクタの「グループメンバーの一覧表示」アクションを使うことがポイントです。

じょじお

このアクションは指定したチームにメンバのメールアドレスや肩書きなどのプロファイル情報を取得することができます。

フロー作成手順

フロー作成前にやっておくと便利な設定

じょじお

フロー作成前に、Power Automate の「試験的な機能」を有効にすることをおすすめしています。設定した方が良い理由と設定方法は下記の記事をご覧ください。15秒でできる設定です。

フロー作成手順

じょじお

それでは、フローを作成していきます!

STEP
Power Automateのコンソール画面を開きます。

Power Automateのポータル画面をブラウザで開きます。

STEP
インスタントクラウドフローを作成します。
Power Automate create flow

▲インスタントクラウドフローを新規作成します。

Power Automate create flow

▲フロー名を入力して「手動でフローをトリガーします」をクリックして「作成」をクリックします。

STEP
「グループメンバーの一覧表示」アクションを追加します。
Power Automate 新しいステップ

▲新しいステップをクリックします。

Power Automate Office365 Group

▲「group」で検索し、「Office365groups」コネクタをクリックします。

Power Automate Office365 Group グループメンバーの一覧表示

▲「グループメンバーの一覧表示」アクションをクリックします。

Power Automate Office365 Group グループメンバの一覧表示

▲グループIDのところにチーム名を選択して入力します。

下のテキストボックスは「上」という名前の設定値になっています。これは取得するメンバー数です。(おそらく取得上限数という意味の「上」かと思いますw)

空欄にするとデフォルトの100名分までのデータを取得します。200名取得する場合は200と入力してください。

STEP
一度フローをテスト実行します。

フロー作成の途中ですが、ここで一度「グループメンバーの一覧表示」でどんなデータが取得できるのかを確認してみましょう。フロー作成画面の右上の「テスト」をクリックしてテスト実行します。

Power Automate  テストの実行

▲画面右上のテストをクリックします。

Power Automate テスト方法

▲「手動」を選択して「テスト」をクリックします。

Power Automate テスト

▲「フローの実行」をクリックします。

グループメンバーの一覧表示アクションの実行結果

▲フローが実行完了しましたら、実行結果画面の中の「グループメンバーの一覧表示」アクションをクリックして出力のところの「未加工出力の表示」をクリックします。

グループメンバーの一覧表示アクションの実行結果

▲ログが確認できます。

じょじお

前回の記事で、メンションするためにはUPN(ユーザープリンシパルネーム)が必要とお伝えしました。ログを見るとUPNが取得できています。また、肩書も取得できていますね。どうやらメンションタグ作成に必要な情報はそろっていそうなので良さそうですね。

STEP
「変数を初期化する」アクションを追加します。
じょじお

アレイ型の変数を追加します。この変数の役割は複数のタグメンションの一時保管用です。

Power Automate 変数

▲新しいアクションを追加します。変数で検索して、変数コネクタをクリックします。表示されたアクションの中の「変数を初期化する」アクションを追加します。

Power Automate 変数

▲パラメータを入力します。

  • 名前:変数の名前を入力します。ここでは”メンショントークン”としました。
  • 種類:アレイを選択します。
  • 値:初期値は不要なので空欄にします。
STEP
「Apply to each」アクションを追加します。
Power Automate  コントロール

「コントロール」コネクタをクリックします。

Power Automate  コントロール

▲「Apply to each」アクションを追加します。

Power Automate  コントロール

▲動的パラメータから「グループメンバーの一覧表示」の戻り値のひとつである「value」を選択します。

STEP
(Apply to eachの中の処理)「条件」アクションを追加します。
Power Automate  Apply to each

▲「Apply to each」アクションの中にアクションを追加します。

Power Automate  条件

▲コントロールコネクタの中にある「条件」アクションを追加します。

Power Automate  条件

▲「条件」アクションの左辺に、動的なコンテンツの中から「役職」を選択します。

真ん中のテキストボックスの条件のところで「次の値に等しい」を選択します。右辺は”Director”としました。

これで「役職がDirectorの人」という条件文が作成できました。

STEP
(Apply to eachの中の処理)「はいの場合」に「メンバーの@mentionトークンを取得する」アクションを追加します。
Power Automate 条件分岐

▲「はいの場合」にアクションを追加します。

Power Automate 条件分岐

▲Teamsコネクタの中にある「ユーザーの@mentionトークンを取得する」をクリックします。

Power Automate 条件分岐
Power Automate ユーザプリンシパル名

▲ユーザのところに動的なコンテンツ(動的な値)の中の「グループメンバの一覧表示」の戻り値である「ユーザープリンシパル名」を選択して入力します。

STEP
(Apply to eachの中の処理)「はいの場合」に「配列変数に追加」アクションを追加します。

▲「はいの場合」の中の「アクションを追加」をクリックします。

▲「変数」で検索します。「変数」コネクタをクリックした中にある「配列変数に追加」アクションを追加します。

▲「名前」はStep5で作成した変数名「メンショントークン」と入力します。「値」は「ユーザーの@mentionトークンを取得する」の動的コンテンツ(動的な値)である「@mention」を選択します。

STEP
結合アクションを追加します。

▲「Apply to each」ループの外側の「新しいステップ」をクリックしてアクションを追加します。

▲「データ操作」で検索します。データ操作コネクタの中にある「参加」アクションを追加します。(ここでは「参加」と表示されていますが、アクションを追加すると結合という名前になります。おそらく結合アクションが正式な名称です。)

結合アクションは、配列変数の中の全部の要素を特定の文字列で結合します。

※VBAでいうJoin関数、PythonでいうString.join(List)のような役割です。

▲結合アクションのパラメータを入力します。「結合する配列」に、メンショントークン配列変数を選択します。「次を使用して結合」に、「,(カンマ)」を入力します。

STEP
「チャットまたはチャネルでメッセージを投稿する」アクションを追加します。

メッセージの本文にStep10の結合アクションの出力を挿入します。その後ろに追記する形で送信するメッセージ本文を入力します。

STEP
フローが完成しました。フローをテスト実行します。

これでフローは完成です。テスト実行してみます。

Power AutomateからTeamsメッセージ送信結果

ディレクターの3名にメンション付きメッセージを送信することができました。

役職の条件にマッチする人がいない場合は、エラーは起きずに空白の行が挿入されたメッセージが送信されます。業務での運用の際は例外処理を加えて対応した方が良いかと思います。今回はテストのため省略します。

ぽこがみさま

説明が長くなってしまったので、説明が分かりづらく混乱してしまった方は「フロー完成図」を見ながら作業お願いします!!!

(補足)結合アクションでやっていること

[“<at>LGu@tejilabo.onmicrosoft.com</at>”,”<at>MMgraham@tejilabo.onmicrosoft.com</at>”,”<at>NWhite@tejilabo.onmicrosoft.com</at>”]

▲メンショントークンを格納した変数には上記のように配列としてメンショントークンが入っています。

“<at>LGu@tejilabo.onmicrosoft.com</at>”,”<at>MMgraham@tejilabo.onmicrosoft.com</at>”,”<at>NWhite@tejilabo.onmicrosoft.com</at>”

▲配列変数はTeamsのメッセージの中で使用することができません。そのため結合アクションを使って配列の中の文字列を一旦全部取り出して,(カンマ)を使って連結し一つの文字列にしています。

結合アクションは配列を文字列に結合する!

(補足)メンション作成でエラーがでました。

(結論)エンコードされたUPNはデコードが必要でした。

じょじお

Power Automateのフロー実行時、ゲストメンバーのメンショントークン作成のところで実行エラーがでました。エラーが出た場合は下記を気にしてみてください。

記事作成後に気が付いたのですが、UPNにURIで使用できない文字列(特殊な記号とか日本語)が含まれている場合、メンショントークンの作成後にdecodeUriComponent関数を使ってデコードしなければならないケースがあります対応が必要な場合の例としては、組織外のユーザをゲストアカウントとして招待していてそのメンバをターゲットにメンションする時などです。

チームメンバ・宛先が多くてメンショントークンが長くなってしまう・・・

ここまでお伝えしてきたメンションの方法の問題点として、宛先メンバーが増えるとメッセージの文頭に長々とメンバー名が羅列して冗長的で読みづらいメッセージになってしまうという問題があります。対処方法として、文末にメンショントークンを挿入して先頭に本文を持ってくるといいかもしれません。

解決策の例

Teamsメンショントークンを文末に挿入すると隠れてくれます。

▲こんな感じでメンショントークンを文末に挿入すると表示領域から見切れてくれることもありスッキリと見やすいです。メッセージ下部の「詳細表示」をクリックすると見切れていたメンショントークンを確認できます。

Teamsメンショントークンを文末に挿入する例

▲「詳細表示」をクリックして文章全体を表示してみるとこんな感じです。

この場合の注意としまして、メンションが付いているとはいえ、いきなり用件を書き始めてしまっても誰宛てのメッセージかパッと見で判別しづらいので、文頭に宛先を書いてあげると親切かなぁと思います。(例:「チームメンバ各位」、「営業担当様」)

Power Automateでチームメンション・チャネルメンションを使うには?

Power Automateの「ユーザーの@mentionトークンを取得する」アクションはチームメンション・チャネルメンションに対応していません。下記の記事ではGraph APIを使ってチームメンション・チャネルメンション付きメッセージを送信する方法を解説しています。Microsoft 365に付属するPower Automate for Microsoft 365環境でも利用できる方法です。

Power Automateを学ぶ方法

まとめ

じょじお

以上、私が実践している複数人へメンションを送る方法でした。ひとつの例としてご参考になさってください!

Power Automate学習教材

Power AutomateをKindleで学びたい方はコチラ

▲Kindleと紙媒体両方提供されています。デスクトップフロー、クラウドフロー両方の解説がある書籍です。解説の割合としてはデスクトップフロー7割・クラウドフロー3割程度の比率となっています。両者の概要をざっくり理解するのにオススメです。

Power Automate for Desktopの基本をしっかり学習するのにオススメです。RPA界隈では有名なRPAエンジニア集団である『ロボ研』さんが監修されている解説書です。テスト用の業務Webシステム/デスクトップ業務アプリを使いながら実践形式で学習できる点が一番のメリットかなぁと思います。

Power Automateを動画で学びたい方はコチラ

▲Udemyで数少ないPower Automateクラウドフローを主題にした講座です。セール時は90%OFF(1200円~2000円弱)の価格になります頻繁にセールを実施しているので絶対にセール時に購入してください。満足がいかなければ返金保証制度がありますので安心してご購入いただけます。

ノンプログラマーでも自動化スキルを身につける。

よかったらシェアしてね!
URLをコピーする
URLをコピーしました!
目次
閉じる