松本典子の「はじめよう!Azure Logic Apps/Power Automateでノーコード/ローコード」 第34回
少し工夫が必要な、ワークフローから複数名へのメンション付きメッセージ投稿
Power AutomateでTeamsのチーム全員にメンションを送る方法
2024年02月06日 08時00分更新
こんにちは、Microsoft MVP(Azure / Business Applications)の松本典子です。
会社でチーム内のコミュニケーションに「Microsoft Teams」を利用している方は多いと思います。これまで何度も取り上げてきましたが、Teamsには、Power Automate / Azure Logic Appsを使ってメッセージを自動投稿することができます。
ただしメッセージを自動投稿する際、チーム全員、つまり複数人にメンションを送りたい場合には少し工夫が必要です。今回はその方法をご紹介します。
1. Microsoft Teamsのメンションとは
Microsoft Teamsは、チャット、メッセージの投稿、オンライン会議、予定表などの機能を1か所にまとめたサービスです。
メンションとは、チャットやメッセージを投稿するときに「@名前」と付け加えて、特定の相手に通知を送ることができる機能です(「@」は半角です)。多くのメンバーが参加するチャネルやグループチャットでは、多数のメッセージから自分に関係のあるものを見落としてしまいがちですから、メンションを付けると相手の見落としの防止になり便利です。
また、チーム内の全員やチャネル内の全員にメンション(一斉通知)を送ることもできます。
2. ワークフロー全体図
今回、Power Automateで作成するワークフローの全体像は上図のとおりです。これはモダンデザイナーの画面で、画面中央にはワークフローが、左側にはワークフローで利用したコネクタの一覧が表示されています(右側にはAIアシスタントのCopilotが表示されましたが、上図ではカットしています)。
Power Automate / Azure Logic Appsを使い、Teamsにメッセージを投稿するワークフローを作成している方も多いと思いますが、チーム全員にメンションを送りたい場合には工夫が必要です。Teamsアプリから手作業で投稿する場合は「@team」や「@チーム名」を付ければメンションできますが、Power Automate / Azure Logic Appsからの投稿ではうまく機能しないからです。
そこで今回は、チーム全員へのメンションを付けたメッセージを投稿するサンプルワークフローを作成してみます。
3-1. トリガーの設定
最初に上図のような画面が開きます。まずはトリガーの設定からです。今回は動作サンプルなので、モバイルアプリのボタンをタップするとワークフローが実行されるようにします。
モダンデザイナーでは画面の左ウィンドウで、追加するコネクタの選択や設定を行います。
(1)「トリガーの追加」をクリックすると左ウィンドウが開きます
(2)「ランタイム」から「組み込み」を選択
(3)コネクタ一覧から「Flow button for mobile」コネクタをクリック
「フローを手動でトリガーする」をクリックします。すると、画面中央のワークフロー表示部分に「フローを手動でトリガーする」というコネクタ/トリガーが表示されます。
今回は実行時に、Teamsに投稿するメッセージ本文を手入力できるようにします。左ウィンドウの「+入力の追加」をクリックし、入力項目の一覧表示から「Text」をクリックします。
テキスト入力欄の設定画面が表示されるので、項目名の「Input」を「Teams本文」に変更します。以上でトリガーの設定が完了しました。
3-2. アクションの設定:変数を設定する
続いて、チームメンバー全員の名前を格納する変数を設定していきます。まずは変数を初期化するアクションを追加します。
(1)トリガーの下に表示される「+」をクリックすると「アクションの追加」が表示されるのでクリック
(2)「ランタイム」から「組み込み」を選択
(3)コネクタ一覧から「Variable」コネクタをクリック
アクションの一覧から「変数を初期化する」をクリックします。
以下の内容を設定します。複数の値(メンバー名)を格納するので、ここでは変数のタイプを「Array(配列)」と指定します。
(1)Name:「メンバー」と入力
(2)Type:「Array」を選択
3-3. アクションの設定:グループ メンバーの一覧表示
Power AutomateのTeamsコネクタでメンションを利用する場合、メンションする相手はMicrosoft 365に登録されている固有のログインID(UPN:ユーザープリンシパル名)で指定しなければなりません。さらに、今回の場合はチーム全員にメンションするのでメンバー全員分のUPNが必要です。
したがって、まずグループメンバーの一覧を取得し、そこから各メンバーのUPNを取得して、その情報を使ってメッセージにメンションを追加するという手順で処理を行います。
Teamsのグループメンバー一覧は、「Office 365 Groups」コネクタを活用すれば取得できます。このグループメンバー一覧にはUPNの情報も含まれており、後ほど利用します。
(1)アクションの下に表示される「+」をクリックすると「アクションの追加」が表示されるのでクリック
(2)検索窓に「Group」と入力
(3)コネクタ一覧を下にスクロールして「Office 365 Groups」コネクタを探し、「さらに表示」をクリック
アクション一覧から「グループ メンバーの一覧表示」をクリックします。
メンバーの一覧を取得したいグループIDを選択します。
3-4. アクションの設定:ユーザーの @mention トークンを取得する
続いて、Teamsのメッセージに書き込むメンション文字列(@mention トークン※注)を生成します。これは「Microsoft Teams」コネクタと、先ほど取得したグループ メンバーの一覧に含まれるUPNを使えば生成できます。
※注:@mention トークンは「<at>UPNの文字列</at>」という形式の文字列です。
まずは「Microsoft Teams」コネクタを追加します。
(1)アクションの下に表示される「+」をクリックすると「アクションの追加」が表示されるのでクリック
(2)検索窓に「teams」と入力
(3)「Microsoft Teams」コネクタの「さらに表示」をクリック
アクション一覧から「ユーザーの@mentionトークンを取得する」をクリックします。
「ユーザー」の項目に、動的なコンテンツ「グループメンバーの一覧表示」から「ユーザープリンシパル名」(UPNのことです)を設定します。
上記のように設定すると、ワークフローには自動的に「For each」(あるいは日本語表記で「それぞれに適用する」)が組み込まれます。
3-5. アクションの設定:作成
「Data Oparation」コネクタを使って、取得した@mention トークンを抽出します。
(1)For each内のアクションの下に表示される「+」をクリックすると「アクションの追加」が表示されるのでクリック
(2)「ランタイム」から「組み込み」を選択
(3)コネクタ一覧から「Data Oparation」コネクタをクリック
アクション一覧から「作成」をクリックします。
「入力」の欄には、動的なコンテンツ「ユーザーの @mention トークンを取得する」の「@mention」を設定します。
3-6. アクションの設定:配列変数に追加
抽出した@mention トークンを、「3-2. アクションの設定:変数を設定する」で設定した配列変数に格納します。
(1)For each内のアクションの下に表示される「+」をクリックすると「アクションの追加」が表示されるのでクリック
(2)「ランタイム」から「組み込み」を選択
(3)コネクタ一覧から「Variable」コネクタをクリック
アクション一覧から「配列変数に追加」をクリックします。
(1)Name:「メンバー」を選択
(2)Value:動的なコンテンツ「作成」の「出力」を設定
以上の処理は、For eachによってチームメンバーの人数回だけ繰り返されます。これにより、チームメンバー全員の@mention トークンを配列変数「メンバー」に格納することができました。
3-7. アクションの設定:作成1
配列変数「メンバー」に格納された、チーム全員分の@mention トークンを抽出します。
(1)For eachの枠の下(外)に表示される「+」をクリックすると「アクションの追加」が表示されるのでクリック
(2)「ランタイム」から「組み込み」を選択
(3)コネクタ一覧から「Data Operation」コネクタをクリック
アクション一覧から「作成」をクリックします。2つ目の「作成」アクションになるので、名前が自動的に「作成1」となります。
「入力」には、動的なコンテンツ「変数」の「メンバー」を設定します。
3-8. アクションの設定:チャットまたはチャネルでメッセージを投稿する
ここまでの処理で準備できたチームメンバー全員の@mention トークンを使って、Teamsのチャットまたはチャネルにメンション付きのメッセージを送信します。
(1)アクションの下に表示される「+」をクリックすると「アクションの追加」が表示されるのでクリック
(2)検索窓に「teams」と入力
(3)「Microsoft Teams」コネクタの「さらに表示」をクリック
アクション一覧から「チャットまたはチャネルでメッセージを投稿する」をクリックします。
(1)投稿者:「フローボット」を選択
(2)投稿先:「Channel」を選択
(3)Teams:メッセージの投稿をしたいTeamsを選択
(4)Channel:メッセージを投稿したいチャネルを選択
(5)Message:動的なコンテンツ「フローを手動でトリガーする」の「Teams本文」(「3-1. トリガーの設定」で設定したもの)と、動的なコンテンツ「作成1」の「出力」を設定
上図のように(1)ワークフローの名前を入力し、保存(2)をクリックします。以上でワークフローは完成です!
4. 実行結果
さっそく実行してみましょう。
「Teams本文」というフォームにメッセージを入力して、「フローの実行」をクリックします。
「フローの実行が正常に開始されました」と表示されるので、「完了」をクリックします。これで、チーム全員へのメンション付きメッセージを投稿するワークフローが実行されているはずです。
Teamsを開き、メッセージを投稿したチャネルを確認します。上図のように、チーム全員にメンションされたメッセージが投稿されているのがわかります。
最後に
個人宛のメンションの場合は「ユーザーの @mention トークンを取得する」アクションだけで対応できますが、複数名にメンションをしたい場合は、今回のように配列変数などを使って少し工夫することになります。
今回のサンプルを参考にして、ぜひ皆さんのワークフローにこの仕組みを組み込んで活用してください。
この連載の記事
-
第41回
Team Leaders
重要なTeamsメッセージの見失い/見落としを防ぐPower Autometeのフローを作ろう -
第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
受信メールの添付ファイルを種類に応じたフォルダに自動保存する -
第33回
Team Leaders
Power AutomateのCopilotは日本環境でも使えるか? 試してみました -
第32回
TECH
Power Automateに大きな変化!「モダンデザイナー」を使ってみよう -
第31回
TECH
ChatGPTのPower Automateプラグインで、ChatGPT側からフローを実行する - この連載の一覧へ