MoreBeerMorePower

Power Platform中心だけど、ノーコード/ローコード系を書いてます。

Power Automate の Teams向けアクションに タグへのメンションが追加されました

[2022/03/08]
かなり配信が遅いテナントの既定の環境でも当該アクションの追加が確認できました。

Power Automate で Teams にメッセージを投稿する場合、これまで標準アクションでサポートされていたのはユーザーへの@メンション のみでした。

このほかにGraph APIを使ったチーム/チャネルへのメンション、Teams APIを使ったタグメンションなどがHTTPアクションを利用することで実現できていました。

Power Automate でプレミアムアクションを使わずに Teams のチャネルやチームにメンションを送る - MoreBeerMorePower

Post a teams message with Tag mention from Power Automate - MoreBeerMorePower

今回新たにTeamsの標準アクションとして チーム内のタグへのメンション が追加されました。

関係するのが以下2つの新アクションです。

f:id:mofumofu_dance:20220302002051p:plain

最初のアクション「List all tags for a team」では、指定したチームの中で設定されたタグの一覧が取得できます。

次のアクション「Get an @mention token for a tag」で、メッセージ投稿で利用可能なタグへのメンショントークンを取得できます。

アクション解説:List all tags for a team (チームのすべてのタグを一覧化する)

このアクションでは、ドロップダウンまたはカスタム値としてグループを指定します。
(カスタム値の場合にはチームのグループID)

f:id:mofumofu_dance:20220302002559p:plain

このアクションの結果、以下のような配列が得られます。(body('List_all_tags_for_a_team')の結果)

{
    "@odata.context": "https://graph.microsoft.com/beta/$metadata#teams('787d35a0-aaaaa-49c6-aedd-fffff449dd1')/tags",
    "@odata.count": 2,
    "value": [
        {
            "id": "YjVjZdasaffdgf4NWNiIyM3ODdkMzVhM...EjI3RrSU1TdGNpMg==",
            "teamId": "'787d35a0-aaaaa-49c6-aedd-fffff449dd1",
            "displayName": "Test Tag",
            "description": null,
            "memberCount": 2,
            "tagType": "standard"
        },
        {
            "id": "YjVjZdasaffdgf4adaaaaDdkMzVhM...EjI3RrSU1TdGNpMg==",
            "teamId": "'787d35a0-aaaaa-49c6-aedd-fffff449dd1",
            "displayName": "Sample Tag",
            "description": null,
            "memberCount": 3,
            "tagType": "standard"
        }
    ]
}

タグへのメンションに必要なのは上のJSONの中のidteamIdですが、投稿日時点では残念ながら動的コンテンツでこれらの値を取得することはできませんでした。

個別に取り出す場合には式を使って取得する必要があります。式の場合には body('List_all_tags_for_a_team')?['value']?[0]?['id']のように指定すれば0番目のid列の値が取得できます。

アクション解説:Get an @mention token for a tag (タグの@メンショントークンを取得する)

タグの@メンショントークンを取得するアクションでは、チームとその中のタグを指定します。

f:id:mofumofu_dance:20220302003600p:plain

このアクションの結果、以下のようなJSONオブジェクトが得られます。

{
  "atMention": "<atTag><tagId>YxxxxYtYWVkZC1mZDkzYmMNpMg%3D%3D</tagId><groupId>787d35a0-2edddd-49c6-aedd-fd93aaaadd1</groupId></atTag>"
}

タグのIDをUrlエンコードしたものと、グループのIDで構成されていることがわかります。

なお、このアクションの結果は後続のメッセージ投稿アクションで動的コンテンツとして表示されます。

f:id:mofumofu_dance:20220302003852p:plain

あとはメッセージの投稿に@メンショントークンを追加すればOKです。

注意事項

動的コンテンツの説明にも書かれている通り、タグへの@メンションができるのはユーザーとして投稿する場合のみ です。Flowbotや最近追加されているVirtual Agentsでは投稿できません。

また、メンショントークンが使えるのは、通常のメッセージだけでなくAdaptive Cardの投稿でも可能です。

f:id:mofumofu_dance:20220302004602p:plain

適当なカードのテキスト部分にメンショントークンを追加すると・・・

f:id:mofumofu_dance:20220302004541p:plain

期待通りメンションされています。

以上です。タグ一覧の取得アクションは今後改善されることを期待していましょう。

参考:Graph API betaでTag取得・作成のためのAPIが追加されていました

docs.microsoft.com