Power Automateのトリガー条件とフィルタークエリ。フローを無駄に動かさないための設定

Power Automateのトリガー条件を使うと、フローを無駄に動かさずに済みます。条件に合わないときは処理を開始する前にスキップされるため、実行回数を減らしてフローをシンプルに保てます。

トリガー条件とは

通常のフローでは、トリガーが発火したら必ず処理が始まります。たとえば「アイテムが作成または変更されたとき」というSharePointトリガーを使うと、リストへのあらゆる変更で発火します。承認済みのアイテムだけを処理したい場合でも、下書き中のアイテムが変更されるたびに発火してしまいます。

トリガー条件は、この発火自体を制御する設定です。「この条件を満たさない場合はフローを開始しない」というフィルターをトリガーレベルで設定できます。フローが起動してから条件分岐で弾くのと違い、トリガー条件に合わない場合は実行回数のカウントにも含まれません。

フロー内の条件分岐との違い

比較項目トリガー条件フロー内の条件分岐
処理開始条件不一致なら開始しないフローは起動してから分岐する
実行回数へのカウントカウントされないカウントされる
デバッグのしやすさ発火していないと履歴に出ない履歴に残るので追いやすい
向いているケース明確に弾きたい条件がある場合複数の分岐処理が必要な場合

実行回数が月の上限に近づいているフローや、高頻度で発火するトリガーを使っている場合には、トリガー条件を設定することで無駄な実行を大幅に減らせます。

設定方法

トリガー条件はトリガーの「詳細オプション」から設定します。

  1. フロー編集画面でトリガーブロックをクリック
  2. 「詳細オプションを表示する」をクリック
  3. 「トリガーの条件」入力欄が表示される
  4. 式(Expression)で条件を記述する

条件は式として書く必要があり、trueまたはfalseを返す式を指定します。複数の条件を設定することもできますが、その場合はすべての条件が true のときだけ発火します(AND条件)。

よく使う式のパターン

特定の列の値が一致するとき

SharePointリストの「Status」列が「承認済み」のときだけ発火させたい場合:

@equals(triggerOutputs()?['body/Status/Value'], '承認済み')

特定の列が変更されたとき

「担当者」列が更新されたときだけ発火させたい場合(変更前後の値を比較):

@not(equals(triggerOutputs()?['body/AssignedTo/Email'], triggerOutputs()?['body/{Prior-AssignedTo/Email}']))

数値が閾値を超えたとき

「在庫数」が10以下になったときに発火させたい場合:

@lessOrEquals(triggerOutputs()?['body/StockCount'], 10)

式の書き方はComposeアクションで動作確認してから貼り付けると、文法ミスを減らせます。Composeでテストする方法はComposeアクションの実践ガイドで解説しています。

フィルタークエリとの使い分け

SharePointトリガーには「フィルタークエリ」という設定もあります。これはSharePoint側にODataクエリを渡して、最初から条件に合うアイテムだけを取得する方法です。

設定仕組み書き方
トリガー条件Power Automate側でフィルタリング式(@equals等)
フィルタークエリSharePoint側でフィルタリングODataクエリ(Status eq '承認済み')

フィルタークエリはSharePoint側で処理するため、Power Automateへの転送データ量を減らせます。一方、ODataクエリの文法が必要なため、慣れるまで書き方で詰まることがあります。単純な値の一致であればフィルタークエリ、複雑な式が必要ならトリガー条件と使い分けるのが現実的です。

デバッグ時の注意点

トリガー条件が true にならないとフローは起動しないため、実行履歴にも残りません。条件を設定してから「フローが動かない」と思ったら、まずトリガー条件の式が正しいか確認します。式を一時的に削除してテストし、発火するようになれば式の問題と判断できます。デバッグの基本については実行履歴の見方も参考にしてください。

まとめ

トリガー条件はシンプルな設定ですが、正しく使うとフローの効率が大きく変わります。多重発火の防止や、無駄な実行を減らすための最初の一手として、ぜひ活用してみてください。式の書き方に慣れるまでは少し時間がかかりますが、一度覚えると手放せなくなります。

Xでフォローしよう