Power Automate × Teamsで「話せるカード」を作る方法:アダプティブカードで、もっと便利な通知と情報収集!
「Power Automate(パワー・オートメイト)でTeams(チームズ)にメッセージを送っているんだけど、ただのテキストじゃなくて、もっと分かりやすく、ボタンを押したり文字を入力したりできる通知を送りたいな」「Teamsのチャット上で、簡単なアンケートを取ったり、承認依頼にコメントをつけたりするような、『返事ができるカード』を送る方法はないの?」「Power AutomateとTeamsを使って、もっと『会話』できるような通知を作りたいんだけど、どうすればいいんだろう?」
こんな風に感じたことはありませんか? Teamsへの通知は情報共有に便利ですが、一方通行のテキストメッセージだけでは、情報が埋もれたり、ユーザーからの応答を得るために別のアプリを開く手間が生じたりすることがあります。しかし、Power AutomateとTeamsを組み合わせることで、まるでユーザーと「対話」できるかのような、リッチでインタラクティブな「アダプティブカード(アダプティブ・カード)」を送信できます。これにより、ユーザーはTeamsの画面から離れることなく、通知を受け取ってそのまま操作(ボタンクリック、文字入力など)を行うことが可能になり、コミュニケーションと業務プロセスを劇的に効率化できます。
Power AutomateとTeamsを連携させてアダプティブカードを送信し、ユーザーからの応答を受け取る仕組みを、プログラミングの知識がなくても簡単に構築できます。
アダプティブカードってどんなもの?なぜ「話せるカード」が必要なの?
Power AutomateとTeamsで使われる「アダプティブカード」とは、JSON(ジェイソン)形式で記述された、リッチで柔軟なUI(ユーザーインターフェース)を持つカード形式のメッセージのことです。これは、Outlook(アウトルック)、Microsoft Teams、Microsoft Viva Connections(マイクロソフト・ビバ・コネクションズ)など、様々なMicrosoft 365サービス内で共通して表示できる「部品」のようなものです。ただのテキストメッセージとは異なり、以下の要素を自由に組み合わせて表現できます。
- テキスト: 見出し、本文、強調表示された文字など。
- 画像: ロゴ、写真、アイコンなど。
- 入力要素: テキスト入力欄、数値入力欄、複数選択肢、単一選択肢(ラジオボタンやドロップダウン)、日付ピッカーなど、ユーザーからの入力を受け付けるための様々なコントロール。
- ボタン: 特定のURLを開くボタンや、入力されたデータをPower Automateに送信するボタンなど。
- レイアウト: 列やセクションを使って、情報を視覚的に整理し、見やすく表示できます。
なぜ「話せるカード」(インタラクティブな通知)が必要なのか?その大きなメリット
アダプティブカードを使ってインタラクティブな通知を送ることには、たくさんの良い点があります。
- コンテキストスイッチングの削減:ユーザーはTeamsのチャット画面から離れることなく、通知を受け取ってそのまま操作(ボタンクリック、文字入力など)を行うことができます。これにより、別のWebページやアプリケーションに移動する手間がなくなり、ユーザーの集中を妨げません。
- 情報伝達の効率化と視覚化:単なるテキストよりも、画像、見出し、ボタンなどを組み合わせることで、メッセージの内容をより視覚的に分かりやすく、魅力的に伝えることができます。緊急性や重要性を視覚的に強調することも可能です。
- ユーザーからの応答収集の自動化:アンケートの回答、簡単なフィードバック、承認・却下の判断、追加情報の入力など、ユーザーからの入力をカード上で直接受け取り、そのデータをPower Automateのフローで自動的に処理することができます。これにより、手動でのデータ収集や、応答の確認作業が不要になります。
- 業務プロセスの効率化:承認フローにおいて、Teamsで承認・却下ボタンを押すだけで決裁が完了したり、簡単な情報収集をTeamsチャット内で完結させたりと、ビジネスプロセス全体をよりスムーズで効率的なものにできます。
- パーソナライズされた体験:カードの内容を、ユーザーごとにカスタマイズしたり、以前の入力履歴に基づいて動的に表示させたりすることで、よりパーソナルなユーザー体験を提供できます。
アダプティブカードを使ったインタラクティブな通知の主要なアクション
Power AutomateとTeamsでアダプティブカードを使ったインタラクティブな通知を実現するには、主に以下の二つのステップを組み合わせます。
1. アダプティブカードを「投稿」するアクション
Power Automateが、Teamsのチャネルや個人チャットにアダプティブカードのメッセージを送信する際に使います。
- 「チャットまたはチャネルにアダプティブ カードを投稿して応答を待機する (Teams)」:このアクションが、インタラクティブなアダプティブカードの主役です。カードをTeamsに投稿し、ユーザーがカード上で何か操作を行うまで、Power Automateのフローを一時停止させて待機します。ユーザーがカードを操作すると、その入力データがフローに戻り、フローは次のステップに進みます。
- 「チャットまたはチャネルにアダプティブ カードを投稿する (Teams)」:こちらは、ユーザーからの応答を待たずに、一方的にアダプティブカードを投稿する際に使います。主に、単なる情報の表示や、他のWebサイトへのリンクボタンを提供する場合などに利用します。
2. アダプティブカードの「内容」をJSONで記述する
アダプティブカードの見た目や、中にどんな入力欄やボタンを置くかは、「JSON(ジェイソン)」という形式のテキストで記述します。JSONは、Web上でデータをやり取りするための標準的な形式です。
- Adobe Adaptive Card Designer(デザイナー)の活用:JSONを直接手書きするのは難しいですが、Microsoftが提供している無料のWebツール「Adaptive Card Designer(アダプティブカード・デザイナー)」を使うと、ドラッグ&ドロップで視覚的にカードをデザインし、そのJSONコードを自動で生成できます。このツールを活用することが、アダプティブカード作成の鍵となります。
アダプティブカードを使ったインタラクティブな通知の具体的な手順
ここでは、Power AutomateとTeamsを使って、「Teamsチャネルに簡単なアンケートをアダプティブカードで投稿し、ユーザーからのテキスト回答を受け取る」というフローを例に、具体的な作成手順をステップバイステップで解説します。
事前準備1:Teamsチャネルの確認
アダプティブカードを投稿したいTeamsの「チーム」と「チャネル」(例: チーム名「全体連絡」、チャネル名「アンケート」)があることを確認しておきましょう。
事前準備2:アダプティブカードのJSONコードを作成する
- Adaptive Card Designerにアクセスします。ウェブブラウザで「Adaptive Card Designer」のWebサイト(https://adaptivecards.io/designer/)にアクセスします。
- 新しいカードをデザインします。デザイナーの画面で、以下の要素をドラッグ&ドロップで配置し、右側の設定パネルで内容を編集します。
- TextBlock: カードのタイトルや質問文を表示します。
- 例:
Text: "今日の業務の状況を教えてください" - 例:
Size: Large,Weight: Bolder
- 例:
- Input.Text: ユーザーがテキストを入力するための入力欄です。
- 例:
Id: "userInput"(このIDが後でPower Automateで回答を読み取るための名前になります) - 例:
Placeholder: "今日の状況を具体的に入力してください" - 例:
IsMultiline: true(複数行入力可能にする)
- 例:
- Action.Submit: ユーザーが入力したデータをPower Automateに送信するためのボタンです。
- 例:
Title: "回答を送信" - 例:
Id: "submitButton" Dataプロパティ: ここに、カードからの回答以外の固定の情報をPower Automateに渡したい場合に設定します。例えば{"questionId": "daily_report_001"}といったものです。
- 例:
- TextBlock: カードのタイトルや質問文を表示します。
- 生成されたJSONコードをコピーします。デザイナー画面の左下にある「Payload Editor」(ペイロード・エディター)という欄に、デザインしたカードのJSONコードが自動的に生成されます。このJSONコード全体をコピーします。
ステップ1:Power Automateで新しいフローを作成します。
これは、あなたが手動でボタンを押してアンケートを送信するフローでも、決まった時間に自動送信するフローでも構いません。
- ウェブブラウザでPower Automate(
make.powerautomate.com)にアクセスし、あなたのMicrosoft 365アカウントでサインインします。 - 左側のナビゲーションメニューで「作成」をクリックします。
- 例えば「インスタント クラウド フロー」(手動でボタンを押して動かすフロー)を選択してください。
- フローに分かりやすい名前を付けます(例:「Teamsアダプティブカードアンケート」)。
- 「フローのトリガーを選択してください」の検索ボックスに「手動」と入力し、「フロー ボタンがクリックされたとき (V2)」を選択してください。
- 「作成」ボタンをクリックします。
ステップ2:アダプティブカードをTeamsに投稿し、応答を待機するアクションを追加します。
準備したJSONコードを使って、Teamsにインタラクティブなカードを送信し、ユーザーからの回答を待ちます。
- 「フロー ボタンがクリックされたとき (V2)」トリガーの下に「新しいステップ」をクリックします。
- 検索ボックスに「Teams」と入力し、「チャットまたはチャネルにアダプティブ カードを投稿して応答を待機する (Teams)」アクションを選択してください。
- アクションの詳細を設定します。
- 投稿者: 「Flow bot」を選択します。
- 投稿先: 「チャネル」を選択します。
- チーム: アダプティブカードを投稿したいTeamsの「チーム」を選択します(例: 「全体連絡」)。
- チャネル: アダプティブカードを投稿したいチーム内の「チャネル」を選択します(例: 「アンケート」)。
- メッセージ: ここに、事前準備2でコピーしたアダプティブカードのJSONコードをそのまま貼り付けます。
- 更新メッセージ: (オプション)ユーザーがカードを操作した後(例: 回答を送信した後)に、カードがどのように表示されるかを設定できます。例えば、「回答が送信されました。ご協力ありがとうございます。」といったメッセージをアダプティブカードの上に表示させることができます。
- 応答者がカードを複数回送信できる: (オプション)同じカードに複数回回答してもらいたい場合は、「はい」を選択します。通常は「いいえ」です。
- 【ヒント】: 承認フローの場合は、このアクションが「承認を開始して待機する」アクションと連携して、Teams内にアダプティブカードを表示します。
ステップ3:アダプティブカードからの応答データを処理します。
ユーザーがカードを操作し、データを送信すると、そのデータがフローに戻ってきます。このデータを使って、次の処理に進みます。
- 「チャットまたはチャネルにアダプティブ カードを投稿して応答を待機する」アクションの後に「新しいステップ」をクリックします。
- 検索ボックスに「データ操作」と入力し、「作成」(Compose)アクションを選択してください。このアクションは、データの中身を確認したり、加工したりするのに便利です。
- 「作成」アクションの入力フィールドにカーソルを置き、動的なコンテンツから「チャットまたはチャネルにアダプティブ カードを投稿して応答を待機する」アクションの出力にある「userInput」(事前準備2でInput.Textに設定したID)を選択します。
- 【解説】: これで、ユーザーがアダプティブカードのテキスト入力欄に入力した内容が、
userInputという名前で取得され、この「作成」アクションの出力として表示されます。 - もし、複数の入力要素を設定した場合は、それぞれのID(例:
userName,userEmailなど)を動的なコンテンツとして選択できます。
- 【解説】: これで、ユーザーがアダプティブカードのテキスト入力欄に入力した内容が、
ステップ4:取得したデータを使って次のアクションを実行します。
ユーザーから受け取った回答データを使って、Excel(エクセル)に記録したり、SharePoint(シェアポイント)リストに登録したり、結果をTeamsチャネルに通知したりするアクションを追加します。
- 「作成」アクション(ユーザー入力取得用)の下に「新しいステップ」をクリックします。
- 例えば、ユーザーの回答をSharePointリストに記録したい場合、検索ボックスに「SharePoint」と入力し、「項目を作成します (SharePoint)」アクションを選択してください。
- サイトのアドレス: 回答を記録したいSharePointリストがあるサイトのURLを選択または入力します。
- リスト名: 回答を記録したいリストを選択します。
- 列への割り当て: リストの各列に、アダプティブカードから取得した「
userInput」の動的なコンテンツを割り当てます。 - 【ヒント】: 回答された内容をTeamsチャネルに再度表示して共有したい場合は、「チャットまたはチャネルにメッセージを投稿する」アクションを追加し、メッセージ本文に取得した「
userInput」を含めます。
ステップ5:フローを保存してテストします。
すべての設定が完了したら、フローを保存してテストしましょう。
- 画面右上の「保存」ボタンをクリックします。
- 「テスト」ボタンをクリックし、「手動」を選択してテストを開始します。
- Teamsアプリを開き、設定したチームとチャネルにアダプティブカードが投稿されるのを確認します。
- 投稿されたアダプティブカードのテキスト入力欄に文字を入力し、「回答を送信」ボタンをクリックします。
- Power Automateの実行履歴を確認し、フローが正しく実行され、ユーザーの回答データが取得され、次のアクション(例: SharePointリストへの登録)が完了しているかを確認します。
アダプティブカードを使ったインタラクティブな通知をスムーズに運用するための「大切なポイント」
アダプティブカードを使ったインタラクティブな通知は非常に強力ですが、そのメリットを最大限に引き出し、スムーズな運用を実現するためには、いくつかの重要な注意点を理解し、適切に対処する必要があります。
1. アダプティブカードの「JSON構造」を正確に記述する
アダプティブカードのJSONコードは、見た目と機能の全てを定義します。JSONの構文に誤りがあると、カードがTeamsで正しく表示されなかったり、入力したデータがフローに渡らなかったりします。
- 対策: 必ず「Adaptive Card Designer」でカードをデザインし、生成されたJSONコードをそのままコピー&ペーストでPower Automateの「メッセージ」欄に貼り付けてください。手動での修正は、JSONの構文エラーを引き起こしやすいため、極力避けるべきです。
2. 「Input要素のID」と「Action.Submitのデータ」を正確に設定する
ユーザーが入力したデータをPower Automateで受け取るには、アダプティブカードのJSONコード内で、各入力要素に割り当てる「id」プロパティの名前が非常に重要です。
- Input.TextなどのID: カード内の
Input.TextやInput.ChoiceSetなどの入力要素には、必ず一意で分かりやすい"id"を設定してください(例:"id": "userName")。このIDが、ユーザーが入力したデータをPower Automateで受け取る際の「名前」になります。 - Action.Submitのデータ:
Action.Submitボタンには、入力要素のidとは別に、"data"プロパティを設定できます。ここにJSON形式で追加の情報を設定すると、カードからフローに渡したい固定の値を一緒に送信できます。
3. 「応答の解析」と「データ型の整合性」に注意する
アダプティブカードからフローに渡されるデータは、JSON形式です。Power Automateでそのデータを利用する際には、正確に解析し、必要であればデータ型を変換する必要があります。
- データの取得: ユーザーが入力したデータは、アダプティブカードの応答を待つアクションの出力から、「動的なコンテンツ」として利用できます。例えば、
outputs('アクション名')?['body']?['userInput']のようにアクセスします。 - データ型の変換: テキスト入力欄からのデータは、すべて文字列として渡されます。もしそのデータを数値として扱いたい場合(例: 年齢、金額)、次のステップで
int()などの式を使って数値型に変換する必要があります。
4. ユーザー体験(UX)を考慮したカードデザインにする
複雑すぎたり、分かりにくかったりするアダプティブカードは、ユーザーの混乱を招き、回答率が低下する可能性があります。
- 簡潔なデザイン: 必要な情報だけを厳選し、カードのレイアウトはシンプルに保ちましょう。
- 明確な指示: ユーザーに何を回答してほしいのか、何をすれば良いのかを明確な言葉で指示しましょう。
- プレビューで確認: Adaptive Card Designerで、Teamsでの実際の表示を必ずプレビューして確認してください。
5. エラーハンドリングと通知を設定する
アダプティブカードの送信や、ユーザーからの応答の処理は、外部サービスとの連携を伴うため、予期せぬエラーが発生する可能性があります。
- 対策: アダプティブカードの投稿アクションや、その後の応答処理のアクションを「スコープ」で囲み、もしスコープ内で失敗したら、自動で管理者へ通知メールを送ったり、エラーログを記録したりするアクションを追加します。これにより、問題発生時にすぐに気づき、対応することができます。
- ユーザーへのフィードバック: ユーザーがカードを操作した後に、それが正しく処理されたことを示すメッセージ(例: 「回答を承りました。ありがとうございます。」)をTeamsチャットに投稿するなど、完了フィードバックを提供すると、ユーザー体験が向上します。
6. テスト環境での十分な検証を行う
本番環境で実際にアダプティブカードを送信する前に、必ずテスト環境(テスト用のTeamsチャネルやユーザーアカウント)でフローを十分にテストしてください。様々なシナリオ(例: テキスト入力が空の場合、選択肢が異なる場合、誤ったデータを入力した場合など)を想定してテストを行い、期待通りに動作するか、エラーが発生しないかなどを確認することが不可欠です。
Power Automate × Teamsアダプティブカードで「対話型」の自動化を実現しよう!
Power AutomateとTeamsを連携させてアダプティブカードを送信し、インタラクティブな通知を実現することは、一方通行のコミュニケーションを超え、ユーザーとの「対話」を自動化するための非常に強力な手段です。
- Adaptive Card DesignerでカードのJSONコードを作成します。
- 「チャットまたはチャネルにアダプティブ カードを投稿して応答を待機する (Teams)」アクションで、カードをTeamsに送信し、ユーザーからの応答を待ちます。
- 入力要素の
idを正確に設定し、応答データから値を取得します。 - JSON構文の正確性、データ型の整合性、そしてユーザー体験を考慮したカードデザインが成功の鍵となります。
これらの知識と手順を上手に活用して、あなたのチームのコミュニケーションプロセスを自動化し、日々の業務をよりスムーズで効率的なものに変えてくださいね。

