Teamsコネクタの「キーワードが言及された場合」を利用するときの注意点(後編)

Teamsコネクタの「キーワードが言及された場合」を利用するときの注意点 Power Automate
Teamsコネクタの「キーワードが言及された場合」を利用するときの注意点

この記事は、Power Automate Advent Calendar 2023 12月1日担当分の記事です。

Teamsコネクタの「キーワードが言及された場合」を利用するときの注意点(前編) からの続きとなります。

2023年11月時点の検証結果です。今後のアップデートで動作が変わる可能性があります点はご注意ください。

さて、前編を読んで、何が起きているかお分かりになりましたでしょうか?

無限ループ!?

作成したクラウドフローは、赤枠部分の「たな」でトリガーしています。

作成したクラウドフローは、「たな」というキーワードが投稿されると「呼んだ?🐼」と投稿します。
以下のようなフローです。
今回は「チャットまたはチャネルでメッセージを投稿する」アクションの[投稿者]には、「フロー ボット」にしています。

何が起きているかを解析してみる

2番目に実行されたときのトリガー実行履歴を確認します。「messageId」がキーワードに反応したメッセージIDと推測できます。

投稿されたメッセージのどれが「messageId」と合致するかをブラウザの開発者ツールを使って確認してみます。
(開発者ツールの使い方については、割愛します。)

Teamsをブラウザで表示し、開発者ツールを起動し、要素内をメッセージIDで検索すると最初に「呼んだ?🐼」と投稿された部分が合致していそうなことがわかりました。
赤枠の上下ともに「<div data-tid=”chat-pane-item” ~>・・・</div>」タグになっていることから、赤枠で囲んだ部分がひとつのメッセージの情報が入っている塊のように見えます。

赤枠の部分の部分の折りたたまれている箇所を開いていきます。
「フローボット」でTeamsに投稿すると「Workflow 経由の <ユーザー表示名>」が投稿したことになります。私は「たな」という表示名でアカウント登録しているので、「Workflow 経由の たな」が投稿と表示されています。
ほかには、「呼んだ?🐼」が表示されています。
これらのことから、「呼んだ?🐼」とフローボットで投稿した名前まで拾っているようです。

「Workflow 経由の たな」という投稿者名まで「キーワード」として拾っているため、「呼んだ?🐼」が投稿されるたびに、トリガーが反応して無限ループとなったと推測できます。

試しに

「キーワードが言及された場合」トリガーは、投稿者の名前まで拾っているのか?ということになります。
ここからは、ぜひ、ご自分の名前をキーワードにして同じフローを作って試してください。
きっと、無限ループすることでしょう。
無限ループしちゃったら、慌てずにフローをそっとキャンセルしましょう。

さいごに

「キーワードが言及された場合」トリガーでは、投稿者の名前までキーワードとして拾ってしまうという罠が隠されていたわけですが、実際にこのトリガーを利用する場面でこの罠にひっかかることは稀だと思います。

今回、無限ループした段階で、「たな」がキーワードであったこととと、自分のアカウント名が「たな」であったことで、「キーワード」として投稿者の名前も拾っているのだろうという想像はつきましたが、実際の動きがどうなっていそうかを推定するのに、実行履歴やブラウザの開発者ツールを確認してみました。

実際にトリガーがどのように動いているのかは、わかりませんが、実行履歴のメッセージIDと開発者ツールで投稿されたメッセージの領域内に同様のIDの記述があったこと、メッセージとして認識しているであろう、タグの位置が推測できたことから、投稿者の名前も拾っているのであろうと推測しています。

あくまで私が試して観察した推測結果でしかありませんが、何かの事象が発生したときにこのような当たりのつけ方もあるのだなということも知っていただけたらと思い、この記事を書きました。
無限ループの罠があるということだけではなく、Power Automateがどんな動きをしているのかを知る方法としていろんな手段があるひとつとして、心の片隅においてもらえると嬉しいです。

コメント