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

トリガー条件とは
通常のフローでは、トリガーが発火したら必ず処理が始まります。たとえば「アイテムが作成または変更されたとき」というSharePointトリガーを使うと、リストへのあらゆる変更で発火します。承認済みのアイテムだけを処理したい場合でも、下書き中のアイテムが変更されるたびに発火してしまいます。
トリガー条件は、この発火自体を制御する設定です。「この条件を満たさない場合はフローを開始しない」というフィルターをトリガーレベルで設定できます。フローが起動してから条件分岐で弾くのと違い、トリガー条件に合わない場合は実行回数のカウントにも含まれません。
フロー内の条件分岐との違い
| 比較項目 | トリガー条件 | フロー内の条件分岐 |
|---|---|---|
| 処理開始 | 条件不一致なら開始しない | フローは起動してから分岐する |
| 実行回数へのカウント | カウントされない | カウントされる |
| デバッグのしやすさ | 発火していないと履歴に出ない | 履歴に残るので追いやすい |
| 向いているケース | 明確に弾きたい条件がある場合 | 複数の分岐処理が必要な場合 |
実行回数が月の上限に近づいているフローや、高頻度で発火するトリガーを使っている場合には、トリガー条件を設定することで無駄な実行を大幅に減らせます。
設定方法
トリガー条件はトリガーの「詳細オプション」から設定します。
- フロー編集画面でトリガーブロックをクリック
- 「詳細オプションを表示する」をクリック
- 「トリガーの条件」入力欄が表示される
- 式(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 にならないとフローは起動しないため、実行履歴にも残りません。条件を設定してから「フローが動かない」と思ったら、まずトリガー条件の式が正しいか確認します。式を一時的に削除してテストし、発火するようになれば式の問題と判断できます。デバッグの基本については実行履歴の見方も参考にしてください。
まとめ
トリガー条件はシンプルな設定ですが、正しく使うとフローの効率が大きく変わります。多重発火の防止や、無駄な実行を減らすための最初の一手として、ぜひ活用してみてください。式の書き方に慣れるまでは少し時間がかかりますが、一度覚えると手放せなくなります。
