このページの本文へ

松本典子の「はじめよう!Azure Logic Apps/Power Automateでノーコード/ローコード」 第34回

少し工夫が必要な、ワークフローから複数名へのメンション付きメッセージ投稿

Power AutomateでTeamsのチーム全員にメンションを送る方法

2024年02月06日 08時00分更新

文● 松本典子 編集● 大塚/TECH.ASCII.jp

  • この記事をはてなブックマークに追加
  • 本文印刷

 こんにちは、Microsoft MVP(Azure / Business Applications)の松本典子です。

 会社でチーム内のコミュニケーションに「Microsoft Teams」を利用している方は多いと思います。これまで何度も取り上げてきましたが、Teamsには、Power Automate / Azure Logic Appsを使ってメッセージを自動投稿することができます。

 ただしメッセージを自動投稿する際、チーム全員、つまり複数人にメンションを送りたい場合には少し工夫が必要です。今回はその方法をご紹介します。

1. Microsoft Teamsのメンションとは

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」コネクタをクリック

「フローを手動でトリガーする」を選択

 「フローを手動でトリガーする」をクリックします。すると、画面中央のワークフロー表示部分に「フローを手動でトリガーする」というコネクタ/トリガーが表示されます。

「+入力の追加」をクリックして「Text」を選択

 今回は実行時に、Teamsに投稿するメッセージ本文を手入力できるようにします。左ウィンドウの「+入力の追加」をクリックし、入力項目の一覧表示から「Text」をクリックします。

入力項目:Textの設定

 テキスト入力欄の設定画面が表示されるので、項目名の「Input」を「Teams本文」に変更します。以上でトリガーの設定が完了しました。

3-2. アクションの設定:変数を設定する

Variable コネクタ

 続いて、チームメンバー全員の名前を格納する変数を設定していきます。まずは変数を初期化するアクションを追加します。

 (1)トリガーの下に表示される「+」をクリックすると「アクションの追加」が表示されるのでクリック
 (2)「ランタイム」から「組み込み」を選択
 (3)コネクタ一覧から「Variable」コネクタをクリック

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コネクタ

 まずは「Microsoft Teams」コネクタを追加します。

 (1)アクションの下に表示される「+」をクリックすると「アクションの追加」が表示されるのでクリック
 (2)検索窓に「teams」と入力
 (3)「Microsoft Teams」コネクタの「さらに表示」をクリック

ユーザーの @mention トークンを取得する アクション

 アクション一覧から「ユーザーの@mentionトークンを取得する」をクリックします。

ユーザーの @mention トークンを取得する アクションの設定

 「ユーザー」の項目に、動的なコンテンツ「グループメンバーの一覧表示」から「ユーザープリンシパル名」(UPNのことです)を設定します。

For each アクション

 上記のように設定すると、ワークフローには自動的に「For each」(あるいは日本語表記で「それぞれに適用する」)が組み込まれます。

3-5. アクションの設定:作成

 「Data Oparation」コネクタを使って、取得した@mention トークンを抽出します。

Data Oparationコネクタ

 (1)For each内のアクションの下に表示される「+」をクリックすると「アクションの追加」が表示されるのでクリック
 (2)「ランタイム」から「組み込み」を選択
 (3)コネクタ一覧から「Data Oparation」コネクタをクリック

作成アクション

 アクション一覧から「作成」をクリックします。

作成アクションの設定

 「入力」の欄には、動的なコンテンツ「ユーザーの @mention トークンを取得する」の「@mention」を設定します。

3-6. アクションの設定:配列変数に追加

 抽出した@mention トークンを、「3-2. アクションの設定:変数を設定する」で設定した配列変数に格納します。

Variable コネクタ

 (1)For each内のアクションの下に表示される「+」をクリックすると「アクションの追加」が表示されるのでクリック
 (2)「ランタイム」から「組み込み」を選択
 (3)コネクタ一覧から「Variable」コネクタをクリック

配列変数に追加アクション

 アクション一覧から「配列変数に追加」をクリックします。

配列変数に追加アクション

 (1)Name:「メンバー」を選択
 (2)Value:動的なコンテンツ「作成」の「出力」を設定

 以上の処理は、For eachによってチームメンバーの人数回だけ繰り返されます。これにより、チームメンバー全員の@mention トークンを配列変数「メンバー」に格納することができました。

3-7. アクションの設定:作成1

 配列変数「メンバー」に格納された、チーム全員分の@mention トークンを抽出します。

Data Operationコネクタ

 (1)For eachの枠の下(外)に表示される「+」をクリックすると「アクションの追加」が表示されるのでクリック
 (2)「ランタイム」から「組み込み」を選択
 (3)コネクタ一覧から「Data Operation」コネクタをクリック

Data Operationコネクタ

 アクション一覧から「作成」をクリックします。2つ目の「作成」アクションになるので、名前が自動的に「作成1」となります。

作成アクション

 「入力」には、動的なコンテンツ「変数」の「メンバー」を設定します。

3-8. アクションの設定:チャットまたはチャネルでメッセージを投稿する

Microsoft Teamsコネクタ

 ここまでの処理で準備できたチームメンバー全員の@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上に表示された投稿

 Teamsを開き、メッセージを投稿したチャネルを確認します。上図のように、チーム全員にメンションされたメッセージが投稿されているのがわかります。

最後に

 個人宛のメンションの場合は「ユーザーの @mention トークンを取得する」アクションだけで対応できますが、複数名にメンションをしたい場合は、今回のように配列変数などを使って少し工夫することになります。

 今回のサンプルを参考にして、ぜひ皆さんのワークフローにこの仕組みを組み込んで活用してください。

カテゴリートップへ

この連載の記事
ピックアップ