アダプティブカードでユーザーの回答を取得して Power Automate のフローを条件分岐させる方法
はじめに
ユーザーの回答に基づいて Power Automate のフローを条件分岐させる方法を探していました。
アダプティブカードで回答してもらう方法が使いやすかったので記録します。
例として、ユーザーにTeamsのチーム名を選択してもらうアダプティブカードを作成します。
この方法を応用して、ユーザーにチャネルやスレッド(投稿)を選択してもらうことも可能です。
準備
例として、以下のカードをテンプレートとして使用します。
![]() |
---|
{
"$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
"type": "AdaptiveCard",
"version": "1.3",
"body": [
{
"type": "TextBlock",
"weight": "Bolder",
"size": "Medium",
"text": "チーム名を選択してください。"
},
{
"type": "Input.ChoiceSet",
"choices": [
{
"title": "チーム名",
"value": "aaa"
}
],
"id": "TeamId",
"placeholder": "チーム名を選択"
}
],
"actions": [
{
"type": "Action.Submit",
"title": "送信"
}
]
}
作成手順
手順 | 内容 |
---|---|
1 | チームのリストを取得します。 |
2 | カードの選択肢を作成します。 |
3 | カードに回答するユーザーを設定します。 |
4 | カードを作成します。 |
5 | ユーザーの回答を取得します。 |
1. チームのリストを取得
アクション「チームの一覧表示」を配置し、チームのリストを取得します。
![]() |
---|
2. カードの選択肢を作成
アクション「変数を初期化する」を配置し、選択肢を入れるアレイ型の変数を作ります。
![]() |
---|
アクション「作成」を配置し、入力欄にカードのテンプレートの選択肢("choices":[]の値)をコピーして入力します。
![]() |
---|
選択肢の title を「チームの一覧表示」で取得したチーム名、value をチームIDに更新します。
![]() |
---|
アクション「配列変数に追加」を配置し、アレイ型の変数と「作成」の出力をセットします。
![]() |
---|
3. カードに回答するユーザー
アクション「マイ プロフィールの取得 (V2)」を配置します。
今回は、フローを実行したユーザーの情報を取得し、そのユーザーにカードを送信します。
![]() |
---|
4. カードを作成
アクション「アダプティブ カードを投稿して応答を待機する」を配置します。
今回は、投稿者はフローボット、投稿先はチャットを設定します。
Recipient には、直前のアクションで取得したユーザーのメールアドレスを設定します。
![]() |
---|
メッセージの欄に前出のカードのテンプレートを貼り付けます。
![]() |
---|
続けて、"choices": の部分に、選択肢として用意したアレイ型の変数を設定します。
![]() |
---|
以上でカードは完成です。
5. ユーザーの回答を取得
カードに対するユーザーの回答を取得します。
得られた回答は、後続の工程で、条件分岐に使用することを想定しています。
まずは、ここまでのフローをテスト実行し、出力パラメーターを確認します。
テスト実行 | 画像 |
---|---|
Teamsのチャットで、フローボットからカードが届くので、チームを選択して送信します。 | ![]() |
フローが成功したら、実行結果を確認します。
アクション「アダプティブ カードを投稿して応答を待機する」の出力パラメーターの body を下までスクロールします。
ユーザーの回答は、"data" の中に格納されます。
"TeamId"(カードの "type": "Input.ChoiceSet" に紐づく"id": "TeamId")の値として、ユーザーの回答した "title"(チーム名)に対応する "value"(チームID)が格納されています。
![]() |
---|
"TeamId" の値は、任意のアクションにおいて、以下の方法で取り出すことができます。
画像 | パラメーター(参考) |
---|---|
![]() |
body('アダプティブ_カードを投稿して応答を待機する')?['data']?['TeamId'] |
参考
カードの選択肢を変えて、チャネルやスレッド(投稿)を選択してもらうことも可能です。
その際は、カードの "type": "Input.ChoiceSet" に紐づく"id" についても、"ChannelId" や "ThreadId" など、わかりやすい名前に変更します。
参考 | 画像 |
---|---|
チャネルを選択させたいときは、アクション「チャネルの一覧表示」を使い、選択肢を作ります。 | ![]() |
スレッドを選択させたいときは、アクション「メッセージを取得します」を使い、選択肢を作ります。 | ![]() |
Discussion