Copilot Studioで作成・カスタマイズしたエージェントやクラシックなチャットボット向けに、プロアクティブメッセージを設定できます。 エージェントを公開し、Microsoft Teamsのユーザーにエージェントを公開すると、Teams内のユーザー(「受信者」)に事前通知メッセージを送ることができます。 プロアクティブなメッセージはPower Automateのフローを使ってコンテンツを配信し、以下のような多くの場面で有用です:
- 受取人に、以前のリクエストが完了したことを知らせること。 例えば、ユーザーのタイムオフ申請が承認されます。
- リマインダーやニュースの更新を提供する。 例えば、担当者がオンライン研修完了のリマインダーを送ります。
重要
受信者が次の状態の場合、エージェントはメッセージを配信できません:
- Teamsにエージェントをインストールしません。
- エージェントをアンインストールします。
- エージェントをブロックする。
- 担当者とチャットする許可がありません。 この場合、 エージェントを共有する必要があります。
前提条件
既知の制限
- エージェントが切断してTeamsに再接続した場合、ユーザーはエージェントを再インストールするまで積極的なメッセージを受け取りません。
- Copilot Studioからのすべてのプロアクティブメッセージは 、Power Automateの制限 および Microsoft Teamsコネクタのスロットリング制限の対象となります。
- 積極的なメッセージは会話の書き起こしや 分析セッションデータには現れません。
- プロアクティブ メッセージは、Power Automate フローと同じ環境である必要があります。
- 積極的なメッセージはエージェントとの個人チャットにしか送れません。
プロアクティブなメッセージを送信する
Power Automate で、プロアクティブ メッセージを送信するフローを開きます。
Microsoft Teams コネクタ アクション チャットまたはチャネルにメッセージを投稿する を追加します。
Post asの場合は、Microsoft Copilot Studioエージェントを選択してください。
投稿する場合は「エージェントとチャット」を選択してください。
エージェントでは、メッセージを送信したいエージェントを選択します。
受信者で、受信者の名前またはメール アドレスを入力します。 また、受信者情報がフローの初期段階で得られたものである場合は、動的コンテンツを使用することもできます。
メッセージでで、メッセージで送信するテキストを入力します。
フローが実行されると、受信者はTeamsのエージェントからプロアクティブメッセージを受け取ります。
プロアクティブなアダプティブカードを送信する
このセクションでは、Power Automateフローを使ってプロアクティブな適応カードを送信する方法を説明します。 プロアクティブアダプティブカードでは、ユーザーはエージェントとの 非アクティブな 会話から情報を受け取ることができます。
Adaptive Cardsは、開発者がUIコンテンツを共通かつ一貫した方法で交換できるオープンなカード交換形式です。 アダプティブ カードは、JSON で手書きで作成することもできますが、ドラッグ&ドロップのインターフェースをお好みであれば、アダプティブ カード デザイナーを使用することができます。
Note
Power Automateは テンプレート機能を使うAdaptive Cardsをサポートしていません。
この例では、ユーザーが確認できるように注文要約カードを送信します。
Power Automate 内の、フロー内のカードを送信するステップで、Microsoft Teams コネクタのアクションチャットやチャンネルにアダプティブカードを投稿するを追加します:
Post asの場合は、Microsoft Copilot Studioエージェントを選択してください。
投稿する場合は「エージェントとチャット」を選択してください。
エージェントでは、メッセージを送信したいエージェントを選択します。
受信者で、受信者の名前またはメール アドレスを入力します。 また、受信者情報がフローの初期段階で得られたものである場合は、動的コンテンツを使用することもできます。
アダプティブ カードで、次のテンプレート JSON を入力します:
{ "type": "AdaptiveCard", "$schema": "http://adaptivecards.io/schemas/adaptive-card.json", "version": "1.5", "body": [ { "type": "TextBlock", "text": "Order summary", "wrap": true, "style": "heading" }, { "type": "FactSet", "facts": [ { "title": "Name", "value": "John Doe" }, { "title": "Phone number", "value": "(000) 000-0000" } ] }, { "type": "Container", "items": [ { "type": "FactSet", "facts": [ { "title": "1x", "value": "Steak" }, { "title": "2x", "value": "Side Rice" }, { "title": "1x", "value": "Soft Drink" } ], "spacing": "Small" } ], "spacing": "Small" } ] }
フローが実行されると、受信者はTeamsのエージェントからアダプティブカードを受け取ります。
プロアクティブな適応カードを送り、ユーザーの返答を待ちましょう
アダプティブ カードは、ユーザー入力の収集をサポートします。 このような場合、フローを続ける前にユーザーの応答を待ちたいものです。
Note
Power Automateは テンプレート機能を使うAdaptive Cardsをサポートしていません。
この例では、注文を提出する前にユーザーが変更できる注文確認カードを送信します。
Power Automate 内の、フロー内のカードを送信するステップで、Microsoft Teams コネクタのアクションアダプティブ カードを送信して応答を待機するを追加します:
Post asの場合は、Microsoft Copilot Studioエージェントを選択してください。
投稿する場合は「エージェントとチャット」を選択してください。
メッセージには、以下のテンプレートJSONを入力してください。
actions要素のプロパティがユーザーが見るオプションを決定します。{ "type": "AdaptiveCard", "$schema": "http://adaptivecards.io/schemas/adaptive-card.json", "version": "1.0", "body": [ { "type": "TextBlock", "text": "Order confirmation", "wrap": true, "style": "heading" }, { "type": "FactSet", "facts": [ { "title": "Name", "value": "John Doe" }, { "title": "Phone number", "value": "(000) 000-0000" } ] }, { "type": "Container", "items": [ { "type": "FactSet", "facts": [ { "title": "1x", "value": "Steak" }, { "title": "2x", "value": "Side Rice" }, { "title": "1x", "value": "Soft Drink" } ], "spacing": "Small" } ], "spacing": "Small" } ], "actions": [ { "type": "Action.Submit", "title": "Submit Order" }, { "type": "Action.Submit", "title": "Edit Order" } ] }更新メッセージでは、受信者が応答を提供した後に表示されるメッセージを入力します。
受信者で、受信者の名前またはメール アドレスを入力します。 また、受信者情報がフローの初期段階で得られたものである場合は、動的コンテンツを使用することもできます。
エージェントの場合は、カードを送りたいエージェントを選択します。
フローが実行されると、受信者はTeams内のエージェントから適応カードを受け取り、それに応答できるようになります。
受信者からの応答を使用するには、動的コンテンツ フライアウト メニューから submitActionId を選択します。 この変数の値は、ユーザーが選択したアクションの title です。
複数の受信者にプロアクティブなメッセージを送信する
シナリオによっては、複数の受信者に同じプロアクティブ メッセージを送信したい場合があります。
ここでは、複数の相手にメッセージを送信する例を紹介しています。
重要
各受給者は本記事で述べた前提条件を満たす必要があります。
たとえば、1 回のアクションで 10 人の受信者に同じメッセージを送ることができます。 10人の受信者のうち3人がエージェントをインストールしていない場合、その3人の受信者はメッセージを受け取りません。
チームメイトに送信する
この例では、エージェントがチームメンバーにオンライントレーニングを完了するようリマインダーを送ります。
ご利用の Power Automate フローで、Microsoft Teamsコネクタを追加し、チームの取得アクションを選択します。
チームで、メッセージを送信するメンバーのいるチームを選択します。
Office 365 グループコネクタを追加し、グループ メンバーのリストアクションを選択します。
グループ ID で、カスタム値を選択します。
チームを取得するアクションの動的コンテンツからチーム ID を選択します。
Microsoft Teams コネクタを追加し、チャットまたはチャネルにメッセージを投稿するアクションを選択します。
Post asの場合は、Microsoft Copilot Studioエージェントを選択してください。
投稿する場合は「エージェントとチャット」を選択してください。
エージェントでは、メッセージを送信したいエージェントを選択します。
受信者で、グループ メンバーのリストアクションからユーザーの原則名の動的コンテンツを選択します。
メッセージでで、メッセージで送信するテキストを入力します。
フローが実行されると、チームの各ユーザーにエージェントとのプライベートチャットで積極的なメッセージが届きます。
セキュリティ グループを送信する
この例では、エージェントがセキュリティグループにオンライントレーニングの完了を促すリマインダーを送信します。
Power Automate フローで、Microsoft Entra ID コネクタを追加し、グループ メンバーの取得アクションを選択します。
グループ ID で、セキュリティ グループの GUID を入力します。
Microsoft Teams コネクタを追加し、チャットまたはチャネルにメッセージを投稿するアクションを選択します。
Post asの場合は、Microsoft Copilot Studioエージェントを選択してください。
投稿する場合は「エージェントとチャット」を選択してください。
エージェントでは、メッセージを送信したいエージェントを選択します。
受信者で、グループ メンバーの取得アクションからグループ メンバー ユーザーの原則名の動的コンテンツを選択します。
メッセージでで、メッセージで送信するテキストを入力します。
フローが実行されると、セキュリティグループの各ユーザーはエージェントとのプライベートチャットでプロアクティブメッセージを受け取ります。
複数の受信者にプロアクティブなメッセージを同時に送信する
通常、エージェントが複数の受信者にプロアクティブメッセージを送るときは、次々とメッセージを送ります。 ただし、状況によっては、メッセージを複数の受信者に同時に送信したほうがよい場合もあります。
警告
Copilot Studio からの配信されるすべてのプロアクティブ メッセージは、Power Automate の制限とMicrosoft Teams コネクタのスロットリング制限の対象となります。
多くの受信者にメッセージを送る場合、制限に達するとエラーが発生します。 並列処理の度合いを下げるか、グループ内の受信者の数を減して調整できます。
「各アクション に適用 」で、3つの点(...)を選択し、「 設定」を選択します。
同時実行制御をオンにして、並列の度合を設定します。
プロアクティブ メッセージの詳細オプションを設定する
Copilot Studio では、Microsoft Teams コネクタの高度なオプションを表示するで、エージェント上の詳細な動作を制御することができます。
送信メッセージに通知としてラベルを付ける
通知のラベルは、メッセージのエージェント名の前に "Notification via" というテキストがあるかどうかを制御します。 エージェントの応答をラベル化することで、受信者は自分の問い合わせに対するエージェントの応答を識別できます。
受信者がエージェントと現在アクティブなチャットをしている場合
時には、受信者がエージェントと積極的に会話している間に、エージェントが積極的なメッセージを送ることもあります。
会話の流れを妨げないように、積極的なメッセージの送信は会話の終わりまで延期したほうがいいかもしれません。
「エージェントとのチャットがアクティブなら」オプションが動作を制御します:
送信: エージェントは通常通りプロアクティブメッセージを送信します。
送信して成功しない: 受信者が会話中にあるときにエージェントは積極的なメッセージを送りません。 ステータスコード 300 が返送されます。
送信して失敗しない: 受信者が会話中にあるときにエージェントは積極的なメッセージを送りません。 フローランは失敗としてマークされます。
受信者がエージェントをインストールしていない場合
エージェントはTeamsにエージェントをインストールした受信者にのみメッセージを届けることができます。 一部の受信者はエージェントをインストールしたくなかったり、アンインストールしたりするかもしれません。
重要度の低いメッセージの場合、受信者がエージェントをインストールしていなくても、フローの実行が成功したとマークされるように設定できます。
「 エージェントがインストールされていない場合 」オプションが動作を制御します:
失敗: 受信者がTeamsにエージェントをインストールしていない場合、フロー実行は失敗としてマークされます。
ステータスコードで成功 :受信者がエージェントをインストールしていないためメッセージを受け取れなくても、フロー実行は成功とマークされます。 ステータスコード 100 が返送されました。
状態コードの定義を開く
返されたステータスコードを使って、フロー内でさまざまなフォローアップ動作を定義しましょう。 例えば、フローが一定期間かけて再試行するよう指定したり、故障の記録を残すことができます。
| 状態コード | 成功 (ブール値) | プロパティ |
|---|---|---|
| 200 | True | メッセージが正常に配信されました。 |
| 100 | False | 受信者にエージェントがインストールされていないため、メッセージを配信できませんでした。 |
| 300 | False | 受信者がエージェントと会話中のため、メッセージを配信できませんでした。 |