Power Virtual Agents for Teams でプロアクティブなメッセージを受信する

# はじめに


[Microsoft Power Platform 2022 年リリース サイクル 1 の計画の概要 - Power Platform Release Plan | Microsoft Docs](https://docs.microsoft.com/ja-jp/power-platform-release-plan/2022wave1/)で、
Power Virtual Agents へのプロアクティブなメッセージの機能が発表されました。

Docsはこちら。
[Microsoft Teams のボットから、あるいはボットへ、プロアクティブなメッセージやカードを送信する (プレビュー)](https://docs.microsoft.com/ja-jp/power-virtual-agents/teams/advanced-proactive-message-teams)



この機能を試し、設定方法、注意事項、要望などをまとめてみました。


# 注意

2022年5月10日時のものです。
現在、プロアクティブなメッセージ機能はプレビュー段階です。今後、仕様変更される可能性があります。


# プロアクティブなメッセージの意義

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/480768/b2f46ac3-16f7-44fb-15d6-432c80cc9abe.png)

Power Virtual Agents のチャットボットとのやり取りは、利用者がトリガーフレーズを入力することでチャットボットが起動します。
（ボットインストール後の初回起動時のみ、システムトピックの「挨拶」が起動します）

**基本的にチャットボットは受け身です**

が、プロアクティブなメッセージは、Power Automate のフローから Power Virtual Agents のチャットボットへメッセージやアダプティブカードを投稿できます。
チャットボットが能動的に、ユーザーのトリガーフレーズなしで会話をし始めるという動作が可能です。

**プロアクティブなメッセージで質問し、入力された回答をトリガーフレーズとしてトピックを実行する**

という会話フローへの導線が作れます。


# プロアクティブなメッセージについて

プロアクティブなメッセージは、Power Automate のTeamsコネクタのうち以下アクションから実行可能です。

*　チャットまたはチャネルでメッセージを投稿する
*　チャットやチャネルにアダプティブ カードを投稿する
*　アダプティブ カードを投稿して応答を待機する

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/480768/87b6816a-b428-4bd4-926a-c2978c17a95f.png)

上記のアクションの「投稿者」フィールドで"Power Virtual Agents（プレビュー）"を選択します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/480768/76f7e3dc-9ad4-ed78-eb1e-adb06ee91d85.png)


チャットボットへ、メッセージ送信、アダプティブカードを送信、およびアダプティブカードの送信後にユーザーからの応答を待ち合わせることが可能です。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/480768/492160ef-9927-6ef3-4c56-5366791ab272.png)


# プロアクティブなメッセージの送信方法

### チャットボットの作成

プロアクティブなメッセージは、公開されたチャットボットに対して投稿可能です。
チャットボットを作成し、公開してください。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/480768/dc5a9fdb-420a-0a7d-ff23-f5b8c372dc6d.png)

### フローの作成

:::note warn
プロアクティブなメッセージを送信する Power Automate フローは、送信先のチャットボットと同一のTeamsチーム内（環境内）かつ、同じソリューションに存在する必要があります。
:::

Teams バーより、Power Appsを選択し、

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/480768/896678db-438c-d9de-c072-f19a1e93c59a.png)

[ビルド]－[（チャットボットが存在するチームを選択し]－[すべてを表示]

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/480768/7f64775b-0719-ead9-05a9-bda48e922300.png)

[新規]－[クラウドフロー]－[(任意のトリガー方式）]　でフローを作成してください。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/480768/07121c6e-1a10-3a8c-7c1e-41eb7c67f82a.png)

Microsoft Teams コネクタより、

*　チャットまたはチャネルでメッセージを投稿する
*　チャットやチャネルにアダプティブ カードを投稿する
*　アダプティブ カードを投稿して応答を待機する

のいずれかのアクションを用途に合わせて追加します。

:::note info
ここでは「チャットまたはチャネルでメッセージを投稿する」を例に設定方法を記載しています。
他のアクションの設定方法は下記を参照しください。
　[プロアクティブなアダプティブカードを送信する](https://docs.microsoft.com/ja-jp/power-virtual-agents/teams/advanced-proactive-message-teams#send-a-proactive-adaptive-card)
　[プロアクティブなアダプティブ カードを送信して応答を待機する](https://docs.microsoft.com/ja-jp/power-virtual-agents/teams/advanced-proactive-message-teams#send-a-proactive-adaptive-card-and-wait-for-a-response)
:::

投稿者フィールドに、「Power Virtual Agents (プレビュー)」 を設定します。

投稿先フィールドに、「ボットとのチャットする」を設定します。

メッセージを投稿するボットを選択します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/480768/2d070cd3-9a08-f143-65bf-d071aef294fa.png)


メッセージを送信する相手の名前またはメールアドレスを入力します。 


:::note warn
複数の送信先を入力すると、アクションはエラーとなります。
また、グループの指定も不可です。

複数の宛先へメッセージを送る際は、フローのループ処理を利用します

[複数の受信者にプロアクティブなメッセージ、またはプロアクティブ カードを送信する](https://docs.microsoft.com/ja-jp/power-virtual-agents/teams/advanced-proactive-message-teams#send-proactive-messages-or-cards-to-multiple-recipients)
:::

送信するメッセージを作成します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/480768/a56fb078-40fb-26d2-7424-ea38e3e1fff2.png)

:::note info
メッセージ内容にはHtmlタグが入力可能なので、イメージの送信も可能です。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/480768/d8b61033-742b-8e37-3b9c-c2179dc97b4f.png)
:::

設定の詳細はDocsをご覧ください。
[プロアクティブ メッセージの詳細オプションを設定する](https://docs.microsoft.com/ja-jp/power-virtual-agents/teams/advanced-proactive-message-teams#configure-advanced-options-for-proactive-messages)

メッセージやカードに、ボットの名前の前に **通知の経由** というテキストを表示するかどうか
受信者がボットと現在アクティブなチャットをしている際に送信してしまったときの動作
受信者が送信先のボットをインストールしていない場合の動作

など設定可能です。




# まとめ

プロアクティブなメッセージを利用することで、「チャットボットから会話を開始する」ことが可能です。

活用方法としては、
チャットボットからのメッセージ内容に、ユーザーの回答を要求するような問いかけを仕掛けます。
ユーザーの回答内容が、チャットボット内のいずれかのトピックスのトリガーフレーズに引っかかった場合、そこからトピックの会話フローを開始させることが可能です。

また、チャットボット①から、 チャットボット②へプロアクティブなメッセージを送信することで、チャットボットの連携が可能です。
ただし、トピック内の変数を送信できる機能は存在しないため、パラメータの受け渡しは工夫が必要です。（OneDrive経由する等）


# 今後に期待するアップデート

本機能は、チャットボットにメッセージやアダプティブカードを送信する、というものです。
メッセージを起点にボット内のトピックにユーザーを誘導できるかはボット作成者の工夫が必要です。

今後、

**フローからチャットボットの内の任意のトピックを起動できる**

機能が追加されたら、ますます Power Virtual Agents が便利で楽しくなると思いますので期待！