Power Automateでチャットに自動応答する

今回はPowerAutomateを使って、チャットにメッセージが投稿されたときに自動で応答するフローを組んでみます。
なお、今回のフローの対象になるのは”チャット”または”グループチャット”です。チームのチャネルは対象外となりますので、ご注意ください。
フローの全体像

おおよそのステップは下記のとおりです
- チャットに新しいメッセージが追加される
- 自分のIDを取得
- 投稿が自分のIDかどうかチェック
- 自分のIDではない投稿であれば自動でメッセージ投稿
各ステップの説明
トリガー

チャットに新しいメッセージが追加されると実行されるトリガーです。
このトリガーの対象となるのは、チャットまたはグループチャットのみのため、チームのチャネルには反応しません。
マイプロフィール取得

この後の処理で”新規投稿が自分の投稿かどうか”を調べるために使います。
詳細オプションでフィールドの選択をしていませんが、使用するのはIdフィールドのみなので指定してもよいと思います。
メッセージ詳細の取得と条件分岐
続いてApply to eachを作成、その中にメッセージ詳細を取得する処理を追加します。

メッセージにはトリガーで取得されるメッセージIDを指定します。

メッセージの種類はグループチャット、Group chatにはトリガーで取得されるメッセージ会話IDを指定します。

この処理により、トリガーされたメッセージの詳細が取得できます。ここで取得された情報のうち、投稿したアカウントのIDを条件分岐で使用します。

この条件分岐がなければ、誰かがメッセージを投稿⇒フロートリガー⇒自動応答チャットを投稿⇒自動応答チャットの投稿によりフロートリガー⇒自動応答チャットを投稿⇒自動応答チャットの投稿によりフロートリガー・・・とループしてチャット欄が自動応答で埋め尽くされてしまうので要注意です。
条件は”メッセージ詳細を取得で取得したFrom User”と”マイプロフィールの取得で取得したId”が等しいかどうかを比較します。


チャットにメッセージを投稿
トリガーされたチャットを投稿したユーザーIDが自分のIDと等しくなければ、その会話IDにチャットを新規投稿します。

ここで投稿者にフローボットを指定してしまうと、先ほどの無限ループ投稿にはまってしまうのでユーザーを指定するよう注意してください。
投稿先はGroup chat、Group chatにはメッセージ会話IDを指定します。投稿するMessageは任意で設定してください。
以上でフローの設定は終了となります。
動作テスト
フローの全体像と、実際の動作画面動画です。
また、今回のフローは他ユーザーからのチャット新規投稿があるたびに2回動作します。
1回目の動作で自動応答を投稿します。2回目の動作は1回目の自動応答によりトリガーされますが、投稿したユーザーとフローをトリガーしているユーザーが同一なので自動応答はせずにフローが終了します。

まとめ
今回のフローは常にONだと常に自動応答してしまうので、現実的には時間制御(特定の時間帯なら実行)をするか特定のメッセージが含まれた場合に応答するなどの制御を追加して使うことになると思います。