Copilot Studio で作成およびカスタマイズするエージェントとクラシック チャットボットのプロアクティブ メッセージを構成できます。 エージェントを公開し、Microsoft Teamsのユーザーがエージェントを使用できるようにすると、Teams のユーザー ("受信者") に通知するプロアクティブ メッセージを送信できます。 プロアクティブ メッセージはPower Automateフローを使用してコンテンツを配信し、次のような多くのシナリオで役立ちます。
- 受取人に、以前のリクエストが完了したことを知らせること。 例えば、ユーザーのタイムオフ申請が承認されます。
- リマインダーやニュースの更新を提供する。 例えば、担当者がオンライン研修完了のリマインダーを送ります。
重要
受信者が次の状態の場合、エージェントはメッセージを配信できません:
- Teamsにエージェントをインストールしません。
- エージェントをアンインストールします。
- エージェントをブロックする。
- 担当者とチャットする許可がありません。 この場合、 エージェントを共有する必要があります。
前提条件
既知の制限
- エージェントが切断してTeamsに再接続した場合、ユーザーはエージェントを再インストールするまで積極的なメッセージを受け取りません。
- Copilot Studio からのすべてのプロアクティブ メッセージは、Power Automate の制限および Microsoft Teams コネクタの制限および調整に従う必要があります。
- 積極的なメッセージは会話の書き起こしや 分析セッションデータには現れません。
- プロアクティブ メッセージは、Power Automate フローと同じ環境にある必要があります。
- 積極的なメッセージはエージェントとの個人チャットにしか送れません。
プロアクティブなメッセージを送信する
Power Automateで、プロアクティブ メッセージの送信に使用するフローを開きます。
Microsoft Teams コネクタ アクション Post メッセージをチャットまたはチャネルに追加します。
として、Microsoft Copilot Studio エージェントを選択します。
投稿する場合は「エージェントとチャット」を選択してください。
エージェントでは、メッセージを送信したいエージェントを選択します。
受信者で、受信者の名前またはメール アドレスを入力します。 また、受信者情報がフローの初期段階で得られたものである場合は、動的コンテンツを使用することもできます。
メッセージでで、メッセージで送信するテキストを入力します。
フローが実行されると、受信者はTeamsのエージェントからプロアクティブメッセージを受け取ります。
プロアクティブなアダプティブカードを送信する
このセクションでは、Power Automate フローを使用して、プロアクティブに Adaptive Cards を送信する方法を説明します。 プロアクティブアダプティブカードでは、ユーザーはエージェントとの 非アクティブな 会話から情報を受け取ることができます。
Adaptive Cardsは、開発者が共通の一貫性のある方法で UI コンテンツを交換できるオープン カード交換形式です。 JSON で手動でAdaptive Cardsを作成することも、ドラッグ アンド ドロップ インターフェイスを使用する場合は、Adaptive Cards デザイナーを使用できます。
注記
Power Automateでは、templating 機能を使用するAdaptive Cardsはサポートされていません。
この例では、ユーザーが確認できるように注文要約カードを送信します。
Power Automateで、フロー内のカードを送信する手順で、Microsoft Teams コネクタ アクション アダプティブ カードをチャットまたはチャネルに投稿を追加します。
として、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" } ] }Power Automateでアダプティブカードアクションを投稿します。
フローが実行されると、受信者はTeamsのエージェントからアダプティブカードを受け取ります。
プロアクティブな適応カードを送り、ユーザーの返答を待ちましょう
Adaptive Cardsは、ユーザー入力の収集をサポートします。 このような場合、フローを続ける前にユーザーの応答を待ちたいものです。
注記
Power Automateでは、templating 機能を使用するAdaptive Cardsはサポートされていません。
この例では、注文を提出する前にユーザーが変更できる注文確認カードを送信します。
Power Automateで、Microsoft Teams コネクタ アクション アダプティブカードを投稿し、応答を待機する を追加し、フロー内でカードを送信したいステップに配置します。
として、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人の受信者はメッセージを受け取りません。
チームメイトに送信する
この例では、エージェントがチームメンバーにオンライントレーニングを完了するようリマインダーを送ります。
Microsoft Teams コネクタを追加し、Power Automate フローで Get a team アクションを選択します。
チームで、メッセージを送信するメンバーのいるチームを選択します。
Office 365 Groups コネクタを追加し、List グループ メンバー アクションを選択します。
グループ ID で、カスタム値を選択します。
チームを取得するアクションの動的コンテンツからチーム ID を選択します。
Microsoft Teams コネクタを追加し、チャットまたはチャネルのPost メッセージ アクションを選択します。
として、Microsoft Copilot Studio エージェントを選択します。
投稿する場合は「エージェントとチャット」を選択してください。
エージェントでは、メッセージを送信したいエージェントを選択します。
受信者で、グループ メンバーのリストアクションからユーザーの原則名の動的コンテンツを選択します。
メッセージでで、メッセージで送信するテキストを入力します。
フローが実行されると、チームの各ユーザーにエージェントとのプライベートチャットで積極的なメッセージが届きます。
セキュリティ グループに送信する
この例では、エージェントがセキュリティグループにオンライントレーニングの完了を促すリマインダーを送信します。
Microsoft Entra ID コネクタを追加し、Power Automate フローで Get グループ メンバー アクションを選択します。
グループ ID で、セキュリティ グループの GUID を入力します。
Microsoft Teams コネクタを追加し、チャットまたはチャネルのPost メッセージ アクションを選択します。
として、Microsoft Copilot Studio エージェントを選択します。
投稿する場合は「エージェントとチャット」を選択してください。
エージェントでは、メッセージを送信したいエージェントを選択します。
受信者で、グループ メンバーの取得アクションからグループ メンバー ユーザーの原則名の動的コンテンツを選択します。
メッセージでで、メッセージで送信するテキストを入力します。
フローが実行されると、セキュリティグループの各ユーザーはエージェントとのプライベートチャットでプロアクティブメッセージを受け取ります。
複数の受信者にプロアクティブなメッセージを同時に送信する
通常、エージェントが複数の受信者にプロアクティブメッセージを送るときは、次々とメッセージを送ります。 しかし、場合によっては複数の受信者に同時に送信する方が良い場合もあります。
警告
Copilot Studioからのすべてのプロアクティブ メッセージは、Power Automateの制限と、Microsoft Teamsコネクタのスロットリング制限の対象となります。
多くの受信者にメッセージを送る場合、制限に達するとエラーが発生します。 並列処理の度合いを下げるか、グループ内の受信者の数を減して調整できます。
「各アクション に適用 」で、3つの点(...)を選択し、「 設定」を選択します。
同時実行制御をオンにして、並列の度合を設定します。
プロアクティブ メッセージの詳細オプションを設定する
Copilot Studio では、Microsoft Teams コネクタの Show advanced options でエージェントの詳細な動作を制御できます。
送信メッセージに通知としてラベルを付ける
通知のラベルは、メッセージのエージェント名の前に "Notification via" というテキストがあるかどうかを制御します。 エージェントの応答をラベル化することで、受信者は自分の問い合わせに対するエージェントの応答を識別できます。
受信者がエージェントと現在アクティブなチャットをしている場合
受信者がエージェントとアクティブな会話中にあるときに、エージェントが積極的なメッセージを送信している場合もあります。 会話の流れを妨げないように、積極的なメッセージの送信は会話の終わりまで延期したほうがいいかもしれません。
「エージェントとのチャットがアクティブなら」オプションが動作を制御します:
送信: エージェントは通常通りプロアクティブメッセージを送信します。
送信して成功しない: 受信者が会話中にあるときにエージェントは積極的なメッセージを送りません。 ステータスコード 300 が返送されます。
送信して失敗しない: 受信者が会話中にあるときにエージェントは積極的なメッセージを送りません。 フローランが失敗として記録されます。
受信者がエージェントをインストールしていない場合
エージェントはTeamsにエージェントをインストールした受信者にのみメッセージを届けることができます。 一部の受信者はエージェントをインストールしたくなかったり、アンインストールしたりするかもしれません。
重要度の低いメッセージの場合、受信者がエージェントをインストールしていなくても、フローの実行が成功したとマークされるように設定できます。
「 エージェントがインストールされていない場合 」オプションが動作を制御します:
失敗: 受信者がTeamsにエージェントをインストールしていない場合、フロー実行は失敗としてマークされます。
ステータスコードで成功 :受信者がエージェントをインストールしていないためにメッセージを受け取れなくても、フロー実行は成功とマークされます。 ステータスコード 100 が返送されました。
状態コードの定義を開く
返されたステータスコードを使って、フロー内でさまざまなフォローアップ動作を定義しましょう。 例えば、フローが一定期間かけて再試行するよう指定したり、故障の記録を残すことができます。
| 状態コード | 成功 (ブール型) | 説明 |
|---|---|---|
| 200 | 真 | メッセージが正常に配信されました。 |
| 100 | 偽 | 受信側にエージェントがインストールされていないため、メッセージは配信できません。 |
| 300 | 偽 | 受信者がエージェントとアクティブな会話中であるため、メッセージは配信できません。 |