Teamsのチャネルやチャットに対してメンションを行うPower Automateのフローを作成する際、フローは成功したにもかかわらず、自分に対してはメンションの通知が行われず、見逃してしまい困った…といった経験がおありの方もいらっしゃるのではないでしょうか。
そこで、フローによる投稿やチャットの後に、「投稿者」に対して個別にチャットを送信してくれるフローを作成してみました。
事前準備
フローの実行にあたって、事前にメンションを行うタグ及びトリガーとなるFormsフォームを作成します。
Teamsチームでメンションを行うタグの作成
Teamsを開き、投稿を行うチームにて、タグを作成します。今回は下記のような「検証用タグ」という名前のタグを作成して自分を追加しました。
▼タグ
▼タグの作成手順
- タグを作成するチームのチーム名横[…]ー[チームを管理]の順にクリックします。
- チームの管理画面にて、チーム名下の[タグ]をクリックします。
- 画面右上[タグを作成]をクリックします。
- 「タグ名」、「タグの説明」を入力し、追加するユーザーを指定し、[作成]をクリックします。
※「タグの説明」は何も入力しなくても作成が可能です。
※「ユーザーを追加」にユーザーを指定後、[作成]がクリックできるようになります。
Formsフォームの作成
今回は下記のようなフォームを作成しました。SharePointサイトの作成申請フォームをイメージしています。
フローの作成
Power Automateで「チャットまたはチャネルでメッセージを投稿する」アクションを使用し、かつメンションを行う場合、「投稿者」には「ボット」ではなく「ユーザー」を指定する必要があります。
しかしながら、通常Power Automateフローの所有者がTeamsのアクションの接続に使用されているユーザーとしてTeamsに投稿するユーザーとなることから、「投稿者」である自分が自分にメンションする形になるため通知が行われなわれません。
そのため、本フローでは、下記のような二段構えになっています。
- Formsフォームで新しい回答が送信された際に関係者へ知らせるために、特定のTeamsチームのチャネルにて自分が投稿者としてタグにメンションをする形で投稿を行う
- 自分への通知のため、その投稿についてフローボットから自分宛にメンションしながらチャットする
下記は今回作成するフローの全体像です。
フローを初めて作成する方に向けてトリガーとなるアクションなど要点を記載しますが、もしご自身のフローがすでにある場合は、「2-4. 個別チャットの送信」へお進みください。
また、「応答の詳細を取得する」と「ユーザーのプロファイルの取得(V2)」の2つのアクションについては記載していませんが、アクションを追加する際に参考にしてください。(「3. 応用編」にて記載)
トリガー
前述の通り、今回はFormsに回答があった際に実行されるフローを作成するため、トリガーには「新しい回答が送信されたとき」を使用します。
▼フォームIDの取得
自分が作成・所有する「自分のフォーム」は[V]をクリックすると表示されますが、Teamsチームが所有者となる「グループのフォーム」の場合はサジェストに表示されないため、フォームIDを取得する必要があります。
対象のフォームを開き、編集画面のアドレスバーに表示されるURLの「Design&id=」より後ろの部分がフォームIDです。フォームID部分を選択し、コピーします。トリガー「新しい回答が送信されたとき」の[V]-[カスタム値の入力]をクリックし、フォームIDを貼り付けます。
赤枠部分をコピーしてください。
タグの取得
フローによってメンションを行う場合は、メンションを行うタグをアクションによって取得する必要があります。
そのため、「タグの@mentionトークンを取得する」アクションを追加し、下記のように設定します。
- チーム:投稿を行うチームを選択します。
- タグID:チーム内に作成済みのタグの中から、メンションを行うタグを選択します。
チャネルへの投稿
「チャットまたはチャネルにメッセージを投稿する」アクションを追加します。
また、投稿するメッセージの中に、フォームへの回答や回答したユーザーの詳細等を記載したい場合、「応答の詳細を取得する」アクションや、「ユーザープロファイルの取得(V2)」アクションを追加する必要があります。
「チャットまたはチャネルにメッセージを投稿する」アクションでは下記のように設定します。
- 投稿形式:User
- 投稿先:Channel
- チーム・チャネル:投稿を行うチーム・チャネルを選択します
- メッセージ:メンションを表示させたい行に動的コンテンツ「@mention tag」を追加します。
※本文・件名への動的コンテンツの追加については、「3. 応用編」にて記載します。
個別チャットの送信
「チャットまたはチャネルにメッセージを投稿する」アクションを追加し、下記のように設定します。
- 投稿形式:Flow bot
- 投稿先:Chat with Flow bot
- 受信者:「チャネルへの投稿」アクションに接続されていたユーザー
※1つのアクションで複数のユーザーを受信者に指定することはできません。 - メッセージ:個別チャットにて送信したい内容を入力します。
- 今回は「2-3. チャネルへの投稿」で作成した投稿へのリンクを本文に入力したいため、下記のように設定します。
- リンクの生成用数式:<a href=“XXX” target=“__blank”>YYY</a>
- XXX:取得した[アイテムへのリンク]の動的コンテンツ
- YYY:ハイパーリンクとして表示される文字列
- リンクの生成用数式:<a href=“XXX” target=“__blank”>YYY</a>
- 今回は「2-3. チャネルへの投稿」で作成した投稿へのリンクを本文に入力したいため、下記のように設定します。
応用編
Microsoft 365グループ宛てにメールを送信する
Teamsのチャットではなく、メールにて通知を送信したい場合は、Microsoft 365グループ宛てにメールを送信することも可能です。
その場合は、「メールの送信(V2)」アクションを追加し、下記のように設定します。
- 宛先:Microsoft 365グループメールアドレス
- 件名・本文:必要に応じて作成してください。
また、上記のように宛先にMicrosoft 365グループを設定した場合も「メールの送信(V2)」アクションに接続されているユーザーには通知が行われません。
そのため、下記2点の設定を行う必要があります。
- 自分が差出人のグループ宛てのメールのコピーを受信できるようにする
- 外部からのメール受信を許可する
※Microsoft 365グループは既定では外部からのメールを受信することはできません。
それぞれ、具体的に説明します。
自分が差出人のグループ宛てのメールのコピーを受信できるようにする
Outlook on the webにて、[設定]-[Outlookのすべての設定を表示]-[メール]-[グループ]の順にクリックし、「グループに送信するメールのコピーを自分に送信する」のチェックボックスにチェックを入れます。
外部からのメール受信を許可する
※この設定は、フローの実行上必ず必要なものではありませんが、当フローがForms をトリガーに使用することから記載しています。
※グループの所有者のみ設定が可能です。
Power Automateのフローは何らかのエラーにより失敗することがあります。その場合、フローによる通知は行われないため、Formsの回答を見落としてしまう可能性があります。
回答の見落としを避けるために、Forms には、標準でフォームの所有者に対し回答の通知メールを送信する機能があります。この機能を有効にすることで、万が一フローの実行が失敗した場合でもForms の回答を見落とさなくて済みます。
しかし、フォームがMicrosoft 365グループのフォームとして作成されている場合、通知メールはMicrosoft365 グループに送信されます。
そのため、事前に「外部からのメール受信を許可する」機能を有効化することで、Power Automateフローによる通知メールとForms 標準機能の通知メールを2重で受け取ることが可能になります。
▼「外部からのメール受信を許可する」を有効にする。
- Outlookの[メール]タブにて対象のMicrosoft 365グループを選択します。
- グループ名の下[…]ー[設定]ー[グループを編集]ー[組織外のユーザーにグループへのメール送信を許可する]のチェックボックスにチェックを入れます。
下図はOutlook on the webで操作した場合のイメージです。
チャネルへの投稿に回答内容の一部を記載する
Formsフォームへの回答に記入された内容を取得するには、「応答の詳細を取得する」アクションを追加する必要があります。以下のように設定します。
- フォームID:トリガーアクションの「新しい応答が送信されたとき」と同じフォームを指定
- 応答ID:動的なコンテンツ「応答ID」を選択
このアクションを追加することで、チャネルへの投稿やメール送信のアクションの際に、フォームに用意されている設問への回答を動的なコンテンツとして追加することができます。※設問は表示されません。
チャネルへの投稿に回答したユーザーの情報を記載する
Formsに回答したユーザーのプロファイルは、「ユーザーのプロファイルの取得(V2)」アクションにて取得することができます。
このアクションでは、ユーザーの表示名や部署、電話番号などの情報を取得することができます。「ユーザー」に動的コンテンツ「Responders'Email」を指定します。
まとめ
本記事では、Power Automateフローによるチャネルへのメンションを行う投稿及び、投稿へのリンクを含むチャット、メールの送信について紹介しました。
ユーザーごとに、Teamsでの連絡を好む方と、Outlookへのメールを好む方など、それぞれ好みがあり、各要望に叶えるためのフローの作成に日々悩んでいる方もいらっしゃるかと思います。
似た要望で困っている方がいましたら、ご活用いただけると嬉しいです。