Power Automateのトリガー種別と注意事項について

Power Automateのトリガー種別と注意事項について Power Automate

Power Automateのトリガーには「プッシュトリガー」と「ポーリングトリガー」トリガーがあります。
プッシュトリガーとポーリングトリガーでクラウドフローの動作が若干異なるので、まとめておきたいと思います。

プッシュトリガー

「プッシュトリガー」は、イベント発生と同時に起動するトリガーを指します。

Webhooks は、イベント通知を提供する単純な HTTP コールバックです。 Azure Logic Apps と Power Automate の両方で、webhook を トリガー として使用できます。 ロジック アプリまたはフローは、このトリガーをリッスンし、トリガーが起動するたびにアクションを実行します。

Azure Logic Apps および Power Automate でトリガーとして webhook を使用する | Microsoft Docs

※ (2022/2/20 追記)以下の引用は間違いのため、取り消しいたします。

任意のタイミングで自身がフローを起動する場合に利用します。
「インスタント クラウドフロー」で作成したフローのトリガーが該当します。

例)
・SharePointリストのアイテム選択してから[自動化]メニューから実行する
・Power Appsのボタン起動から実行する
・Power Automateモバイルからボタン起動で実行する

ポーリングトリガー

「ポーリングトリガー」は、一定間隔でデータの発生を監視するトリガーを指します。

ポーリング トリガーは基本的に、新しいデータを検索するサービスへの定期的な呼び出しを行うイベントです。 ポーリング トリガーは次の点で Webhook と異なります。ポーリング トリガーは新しいデータが利用可能かどうかを判断するためにイベントを開始するのに対して、Webhook はサービスからの新しいデータのプッシュに応答します。 フローによって新しいデータが利用可能であると判断されたら、そのデータを使用して操作を実行できます。 

Microsoft Power Automate のポーリング トリガーを使用する | Microsoft Docs

特定の条件のイベントが発生したときに起動する場合に利用します。
「自動化したクラウドフロー」「スケジュール済みクラウドフロー」で作成したフローのトリガーが該当します。

例)
・決められた曜日や時間に実行する
・SharePointのリストのアイテムが作成されると実行する
・メールを受信すると実行する
・Teamsに投稿があったら実行する
・Formsに回答があったら実行する

ポーリングトリガーの注意点

「プッシュトリガー」は、即時フローが実行されますが、「ポーリングトリガー」は一定の間隔で定期的にチェックするため、即時実行されません。

ポーリング トリガーは、状態を設定することによって始まり、一定の間隔で定期的に更新をチェックします。

ポーリング トリガーのしくみ | Microsoft Docs

たとえば、SharePointのリストにアイテムが作成されたら、Teamsのチャネルに特定のメッセージを表示させたいとします。トリガーには、SharePointコネクタの[項目が作成されたとき]を利用します。

SharePointリストにアイテムを作成してもなかなかメッセージが届かないことがありませんでしょうか?

以下の記事に記載があるようにライセンスによってチェックの間隔が異なります。
たとえば「Flow for Office 365 plan」の場合、5分ごとにチェックします。そのため、上記のようなフローを実行させても5分程度かかる場合があります。

トリガーがポーリング トリガーの場合、定期的に起動して、新しいイベントが発生したかどうか確認します。 起動時間は、フローが実行されるライセンス プランによって異なります。

たとえば、無料 ライセンス プランの場合、フローを実行できるのは 15 分ごとになります。 無料 ライセンス プランで、前回の実行から 15 分が経過しないうちにクラウド フローがトリガーされた場合、フローは 15 分が経過するまでキューに入れられます。

ライセンスが Office 365 用フロー プラン (Enterprise ライセンス E3、E5 などから)、または Dynamics 365 用フロー の場合、フローは 5 分が経過するまで再び実行されません。 したがって、トリガー イベントが発生する時間からフローが開始する時間まで、数分かかることがあります。

トリガーが発生するまでに遅延があります | Microsoft Docs

ご自分のライセンスで何分間隔でトリガーの[…]-[コードのプレビュー]をクリックしたときに表示される「recurrence」の「interval」[frequency]で確認することができます。
下記の場合は、「5分」ですね。

BEGIN-PROGさんでほかの確認方法も紹介されていますので、こちらもご参考まで。
【Power Automate】トリガーの実行間隔を調べる方法

フローをオフにした場合のイベントの処理

フローを一時的にオフにして実行させないようにしたい場合があると思います。
たとえば、フローを修正している間に、ほかのユーザーが実行できないようにオフにする。
あるいは、SharePointリストにデータを追加したいが、フローを起動させたくないためオフにする。

「プッシュトリガー」の場合は、オフの間はそもそもイベントを発生させることができないので問題ないのですが、「ポーリングトリガー」の場合は、オフの間もイベントを定期的にチェックしています。
そのため、オフの間に発生したイベントは、オンにしたときにすべて実行されます。

定期的なアイテム トリガーなどのポーリング
フローが再度オンになったときに、未処理/保留中のイベントがすべて処理されます。 フローをオンに戻したときに保留中のアイテムを処理しない場合は、フローを削除してから再作成します。

トリガーが古いイベントに対して発生する| Microsoft Docs

SharePointのリストにアイテムが作成されたら、Teamsのチャネルに特定のメッセージを表示させるフローの場合、フローがオフの間にSharePointリストにアイテムを追加すると、オンにすると追加したアイテム分、一気にTeamsにメッセージが投稿されます。

一度、フローを起動させないようにデータを追加するには以下の方法をとる必要があります。

  1. フローをオフにする
  2. アイテムを追加する
  3. 1 でオフにしたフローを[名前を付けて保存]で別名のフローとして新規に作成する
    ※ 複数の所有者を設定している場合は、再度設定し直す必要があります。
  4. 3のフローをオンにする
  5. 1 でオフにしたフローを削除する
    ※削除すると実行履歴も消えますのでご注意ください。
     ただし、最終的には、28日間ですべて消えますのでどうしても必要であれば、すべての実行履歴が削除されたあとにフローを削除してください。

補足:ポーリングトリガーとWebhookトリガー

(2022/2/1 追加)
自動実行の種類には、ポーリングトリガーとWebhookがあり、これらの違いについて、「Microsoft Teams 踏み込み活用術」の著者であるOta Hirofumi さんがとても詳しく違いと見分け方を記載してくださっています。
ぜひこちらも読んでください。とても参考になります。
Power Automate のトリガー、ポーリングか Webhook かどっちなの? – idea.toString();

プッシュトリガーの見分け方

(2022/2/20 追記)
Otaさんの記事で、トリガーの[コードのプレビュー]でポーリングトリガーとWebhookトリーガーの見分けがつくことを知りました。
同様にプッシュトリガーも見分け方がわかったので追記しておきたいと思います。

トリガーのメニューから [コードのプレビュー] を開きます。


このとき「kind」項目が存在するものは、プッシュトリガーです。

モバイルのFlowボタンコネクタの[手動でフローをトリガーします]トリガー
SharePointコネクタの[選択したアイテムの場合]トリガー

コメント