← 手順一覧へ戻る
クラウドフローTeams初心者向けよく使う

Teamsのアダプティブカードで回答を受け取る

自分宛てのカードで「確認しました」「修正が必要」を選び、回答値を取り出す練習です。カードのJSON、具体的な式、未回答時との違いを確認します。

画面上の名前は、表示言語やバージョンによって異なる場合があります。クラウドフローはトリガー(フローを開始する条件)から始まり、その後にアクションを実行します。値の受け渡しには、前のステップの出力を選ぶ「動的コンテンツ」を使います。式は[式]欄へ入力します。

実行前に確認

  • Teamsへの接続、対象アカウントの利用権、組織のポリシー、Power Automateのライセンスを確認してください。TeamsコネクタはStandardですが、誰でも無料で実行できるという意味ではありません。この例はFlow botを使える商用環境が対象です。
  • 実行すると自分宛てでもTeamsにカードが投稿されます。架空の練習文だけを使い、機密情報を入力しないでください。カードと回答はTeamsやフローの実行履歴に残ります。
  • これは回答値を取り出す練習で、正式な承認や複数人全員の合意を集める仕組みではありません。業務承認には関連する承認の記事を参照してください。
  • 未回答は「修正が必要」ではありません。応答待ち、投稿失敗、キャンセル、タイムアウトを分けて扱います。失敗・タイムアウト時に成功時用のAnswerOutを実行させる設定へ変えないでください。本番の期限や例外処理は別途設計が必要です。

1使うトリガーとアクション

  1. トリガー手動でフローをトリガーする本番と分けた練習フローを開始
  2. アクションアダプティブ カードをポストして応答を待つCardReply:自分宛てに投稿して回答を待つ
  3. アクション作成AnswerOut:応答の data.answer を確認

図で見る処理のイメージ

概念図

「確認しました」と「修正が必要」は、それぞれ別の文字列を返します。まずは自分に届く1枚のカードと、取り出す値の関係を見ます。

ボタンの表示と、返す値を見比べる

自分宛てのカードのイメージ

【練習】内容を確認しましたか?

  • 確認しましたdata.answerconfirmed
  • 修正が必要data.answerreview_requested
説明用の概念図です。このページからは回答できません。実際のTeams画面のスクリーンショットではありません。
  1. 自分宛てに投稿

    CardReplyで2つのボタンを表示

  2. 1つ選んで回答

    選んだボタンのdata.answerを送る

  3. 値を確認

    AnswerOutに回答の文字列が出る

結果の例

「確認しました」ならconfirmed、「修正が必要」ならreview_requested。まだ押していなければ、後続の作成は始まりません。

別々に実行する3ケースの期待値(実行結果ではありません)
今回の操作CardReplyの状態AnswerOutの出力
A:確認しましたを押す回答を受けて成功confirmed
B:修正が必要を押す回答を受けて成功review_requested
C:まだ押さない回答待ち未実行(値は出ない)

図と表は設定に沿った期待値です。実際のPower Automateフローを実行して確認した結果ではありません。Teamsの見た目や項目名は環境により異なります。

設定と処理を説明する模式図です。実際の設定画面や実行結果のスクリーンショットではありません。

2実際の設定内容

入力する値・操作手順を確認する9ステップの設定と確認方法
  1. 1

    準備:商用のMicrosoft 365環境で、Teamsを使える自分の職場アカウントとメールアドレスを確認します。TeamsのWorkflowsアプリが使えること、Power AutomateからTeamsへの接続が有効なことを確認。本番と分けたインスタントクラウドフローを作り、「手動でフローをトリガーする」を選びます。テストは1回ずつ行い、実行中の練習フローを重ねません。

  2. 2

    Microsoft Teamsの「アダプティブ カードをポストして応答を待つ」(Post adaptive card and wait for a response/操作ID:PostCardAndWaitForResponse)を追加し、名前を CardReply に変更します。非推奨の旧アクションや、応答を待たない投稿アクションを選ばないようにします。[投稿者]=フローボット(Flow bot)、[投稿先]=フローボットとのチャット(Chat with Flow bot)、[受信者]=準備した自分のメールアドレスにします。

  3. 3

    CardReplyの[メッセージ]欄へ、下のJSON全体を通常の入力として貼り付けます。式として入力したり、全体をさらに引用符で囲んだりしません。2つのAction.Submitは表示するtitleと、送るdata.answerを分けてあります。[更新メッセージ]に「回答を受け取りました。練習を終了します。」を指定します。更新する設定が別に表示される場合は有効にします。

    カード本文に貼り付けるJSON

    CardReplyの「メッセージ」欄に使います。ボタンごとのdata.answerが、後で取り出す値です。

    {
      "type": "AdaptiveCard",
      "version": "1.4",
      "body": [
        {
          "type": "TextBlock",
          "text": "【練習】内容を確認しましたか?",
          "wrap": true
        }
      ],
      "actions": [
        {
          "type": "Action.Submit",
          "title": "確認しました",
          "data": {
            "answer": "confirmed"
          }
        },
        {
          "type": "Action.Submit",
          "title": "修正が必要",
          "data": {
            "answer": "review_requested"
          }
        }
      ]
    }
  4. 4

    直後に組み込みのデータ操作「作成」を1つ置き、名前を AnswerOut に変更します。[入力]の[式]欄へ body('CardReply')?['data']?['answer'] を入れて確定します。先頭の @ や @{ } は付けません。CardReplyに成功した後だけ実行する既定の設定を保ちます。回答者・ボタンの表示名・submitActionIdではなく、JSONで定義したanswerを読み取ります。

  5. 5

    確認A:保存して手動実行し、Teamsで今回届いたカードの「確認しました」を1回押します。フローの実行履歴でCardReplyが成功したこと、出力本文のdata内にanswer=confirmedがあること、AnswerOutの出力もconfirmedであることを確認します。この練習では外部の表や承認状態は更新しません。

  6. 6

    確認B:新しく手動実行し、新しいカードの「修正が必要」を1回押します。AnswerOutの出力がreview_requestedになることを確認します。同じカードを押し直して回答を変更する練習ではありません。各カードで処理されるのは最初の回答だけです。

  7. 7

    確認C:もう一度実行し、今回はボタンを押さずに実行履歴を見ます。CardReplyは回答待ち、AnswerOutは未実行で、confirmedもreview_requestedも得られません。確認後は、その練習実行を実行履歴からキャンセルして待機を終えます。キャンセル後の古いカードは使わず、再テストには新しい実行とカードを使います。

  8. 8

    届かない・押しても再開しない:実行履歴のCardReplyを開き、受信者、Teams接続、Workflowsの利用可否、JSONの半角ダブルクォートを確認します。古いカードや、応答を待たないアクションになっていないかも確認します。権限エラーは組織の管理者に確認し、管理ポリシーを無効にして回避しません。

  9. 9

    AnswerOutが空(null)になる:成功したCardReplyの実行履歴で出力本文を開き、dataの中にanswerがあるか確認します。JSONのキーの大文字・小文字、式内のCardReplyというアクション名、押したカードが今回のものかを照合します。空や想定外の値を「修正が必要」と自動判定せず、ここで原因を調べます。本番で条件分岐を足す場合は、confirmedとreview_requestedをそれぞれ明示して判定し、その他は別扱いにします。

Microsoft公式ページで確認する

設定を確認できる公式資料