はじめに
※全テナント反映されているかはわかりません。 (投稿時点)
Microsoft TeamsとのIntegrationが強化されているPower Platformですが、Power Automateで注目のトリガーが利用可能になりました!
選択したメッセージ

これまで、SharePointやOneDriveや、CDSでは「選択したXXX」のトリガーが存在していましたが、Teamsの文脈ではこれが 「選択したメッセージ」になります。
このトリガーのいいところの1つは、Teamsで会話している中で発生したタスクや、共有されたドキュメント、あるいはメッセージそのものをフローで取得して後続のアクションにつなげられる点です。
また、上の図を見てわかる通り、Adaptive Cardsを利用して、「メッセージ+カスタムの入力」が可能になります。
このAdaptive Cardsへの入力もメッセージ同様に後続のアクションで利用できるので、より幅広い活用が可能になります。
試してみる
トリガーの設定としては3つです。いずれもオプションなので、何も指定しなくても実行可能です。
- Adaptive Cards
- Adaptive Cardsを表示するダイアログの幅
- Adaptive Cardsを表示するダイアログの高さ

Adaptive Cardsは、Power Automateに組み込みのデザイナーで作成します。

変更後は必ず「Save Card」してください。
Adaptive Cardsを設定しない場合
トリガーの実行には、まずメッセージの[…]をクリックし、表示されるメニューの一番下「More actions」に表示されるフローを選びます。

Adaptive Cardsを何も設定していない場合には、下図のようなメッセージが表示され、フローが即時開始されます。

得られるデータを見てみると、(一部マスクしていますが)以下のような構成になっています。
{
"entity": {
"teamsFlowRunContext": {
"MessagePayload": {
"Id": "1594040259306",
"From": {
"Application": null,
"Conversation": null,
"Device": null,
"User": {
"DisplayName": "Nagao Hiroaki",
"Id": "18841347-0000-0000-0000-1d411f03ae5d"
}
},
"Body": {
"ContentType": "html",
"Content": "<div><div><at id=\"0\">hiro2</at> 7/24までに申請出しておいてください。</div>\n</div>",
"PlainText": "hiro2 7/24までに申請出しておいてください。"
},
"Subject": "",
"LinkToMessage": "https://teams.microsoft.com/l/message/19:c1d77cxxxxxxc74e47145bf87af@thread.skype/1594040259306"
},
"Id": "f:7894xxxx713737",
"ChannelData": {
"EventType": null,
"Team": {
"Id": "19:c1d77ca380axxxxxc74e47145bf87af@thread.skype",
"AadGroupId": "787d35a0-0000-0000-0000-fd93bc449dd1",
"Name": null
},
"Tenant": {
"Id": "b5cf997a-0000-4007-a2e5-999999999"
},
"Channel": {
"Id": "19:c1d77caaaaaaaaaae47145bf87af@thread.skype",
"Name": null
},
"Notification": null
},
"From": {
"Id": "29:1YiVIsxasddffaT1JX-fa8I_o2-Zgh3Qx2YTtjQAyNaYhDNQew",
"Name": "Nagao Hiroaki",
"Role": null,
"AadObjectId": "18841347-0000-0000-0000-1d411f03ae5d",
"Properties": null
},
"Conversation": {
"Id": "19:c1d77ca3xxxxxxe47145bf87af@thread.skype;messageid=1594040259306",
"Name": null,
"IsGroup": true
},
"Locale": "en-US",
"CommandContext": "message"
},
"cardOutputs": {}
}
}
情報量多いのですが、メッセージに関する詳細 (テナント、グループ、チャンネル、メッセージのID、だれが出したか、内容)等が得られていることがわかります。
あとはこれらの情報を利用して、後続アクションを実行していくことになります。
※もちろん動的な値に表示されます。
Adaptive Cardsを利用した場合
Adaptive Cardsをオプションで指定した場合を見てみます。
More actionsから実行すると、今度はダイアログが表示され、設定したカードが表示されます。

ここに情報を入力して送信してみると、Adaptive Cardsを利用しない場合と比べて、以下のデータが追加で得られます。
"Id": "19:c1d77ca3xxxxxxe47145bf87af@thread.skype;messageid=1594040259306",
"Name": null,
"IsGroup": true
},
"Locale": "en-US",
"CommandContext": "message"
},
"cardOutputs": {
"taskTitle": "例外申請提出",
"DueDate": "2020-07-27"
}
}
}
カードからの情報は、 cardOutputsの中に入ります。 メッセージ同様、これを補足情報として後続のアクションで利用することで、「メッセージ+実行時のカスタム入力」で何らかの処理を自動化することができます。
おわり
速報として、Power AutomateでTemas向けトリガーに追加された「選択したメッセージ」をご紹介しました。
次の投稿では、メッセージの選択トリガーからPlannerへのタスク追加を実行してみます。