初心者向け
n8n IFノードの使い方:条件でワークフローを分岐させる
n8nのIFノードで処理を条件分岐させる方法を、実際に動かしながら解説します。使える演算子、複数条件の組み合わせ、型が合わないときの挙動まで。
公開
動作確認: — n8n 2.36.8 / IF ノード v2.3
取ってきたデータによって処理を変えたいときに使うのが IFノードです。 「エラーだったら通知する」「金額が一定以上なら承認に回す」といった分岐を作れます。
この記事は前半がn8n を触ったことがない人向けで、実際に分岐を1つ作るところまでを通します。 後半は基本操作ができる人向けに、複数条件の組み合わせと、型が合わないときの挙動を扱います。
設定項目は IF ノード v2.3 の定義を直接確認し、動作は n8n 2.36.8 で実際に実行して確かめています。
IFノードは何をするものか
入ってきたデータを、条件に合うものと合わないものに振り分けるノードです。
出力が2つあるのが特徴で、条件に合った項目は true 側へ、合わなかった項目は false 側へ流れます。
それぞれの先に別のノードをつなげば、処理を分けられます。
実際のワークフローではこう見えます。IFノードの右側に true と false の2つの出口があり、 それぞれ別のノードにつながっています。

振り分けはアイテムごとに行われます。 3件のデータが入ってきたら、1件ずつ条件が評価され、 true側に2件・false側に1件、のように分かれます。
実際に分岐させてみる
前回の記事で作った、気象庁から天気予報を取ってくるワークフローに 分岐を足します。天気に「雨」が含まれていたら傘を持つ、という条件にします。
手順
Get Tokyo Forecast(HTTP Request)の後ろに IF ノードを追加する- Conditions の左辺に、比較したい値を式で指定する
{{ $json.timeSeries[0].areas[0].weathers[0] }}
- 真ん中のドロップダウンから contains(含む)を選ぶ
- 下の欄に
雨と入力する - Execute step を押す

式になっているかどうかは、左辺の欄で見分けられます。 式として扱われていると、
欄の左に fx が表示され、文字が緑色になります。これが無いと
{{ ... }} という文字列そのものと比較することになり、条件は必ず false になります。
演算子のドロップダウンに出ている T のようなアイコンは、型を表しています。
型と演算子を別々に選ぶのではなく、1つのドロップダウンの中で型ごとにまとまっているので、
そこから選びます。
結果の見方
実行すると、ノードの出力が true と false の2つのタブに分かれて表示されます。 条件に合った項目が true 側に、合わなかった項目が false 側に入ります。
実際に試したときは、東京の天気が 晴れ 夜 くもり 所により 雨 だったため、
「雨」を含むので true 側に振り分けられました。
条件の書き方
条件は4つの要素で構成されます。
| 要素 | 内容 | 例 |
|---|---|---|
| 左辺 | 比較したい値。式で前のノードのデータを参照する | {{ $json.status }} |
| 型 | 値をどう扱うか | String |
| 演算子 | どう比較するか | is equal to |
| 右辺 | 比較する相手 | error |
型を先に決めてから演算子を選びます。 型によって選べる演算子が変わるためです。
使える型と演算子
型は6種類あります。
| 型 | 主な演算子 |
|---|---|
| String | is equal to / is not equal to / contains / does not contain / starts with / ends with / matches regex / is empty / exists |
| Number | is equal to / is greater than / is less than / is greater than or equal to / is less than or equal to / is empty / exists |
| Date & Time | is equal to / is after / is before / is after or equal to / is before or equal to / is empty / exists |
| Boolean | is true / is false / is equal to / is not equal to / is empty / exists |
| Array | contains / does not contain / length equal to / length greater than / length less than / is empty / exists |
| Object | exists / does not exist / is empty / is not empty |
どの型にも exists / does not exist(項目そのものがあるか)と is empty / is not empty(空かどうか)があります。この2つは紛らわしいので注意してください。 項目が無いのと、項目はあるが空なのは別の状態です。
複数の条件を組み合わせる
Add condition で条件を追加できます。追加すると AND / OR を選べるようになります。
- AND — すべての条件を満たす項目だけが true 側へ
- OR — どれか1つでも満たせば true 側へ
n8n の条件は combinator という1つの設定で AND か OR かを決めるため、
1つのIFノードの中で AND と OR を混在させることはできません。
「AかつB、またはC」のような条件が必要なときは、IFノードを2段に分けるか、
左辺の式の中でまとめて判定します。
型が合わないときの挙動
ここが実務で一番引っかかる部分です。
APIから返ってくる値は、見た目が数字でも文字列であることがよくあります。
"100" という文字列に対して Number 型で is greater than 50 を評価しようとすると、
型が一致しません。
これを扱うのが、条件の下にある Convert types where required(必要に応じて型を変換する) のトグルです。既定はオフで、型が違えばそのまま扱われます。
オンにすると、"100" を数値の 100 として比較します。Boolean の場合は
"false" や 0 が false として扱われます。
どちらが正しいかは場合によります。 変換に頼ると、想定外の値が来たときに 気づかないまま通過してしまいます。逆に厳密にすると、APIの仕様変更で 型が変わったときにエラーで止まります。止まる方が安全なことが多いので、 まずは厳密なまま作り、必要になったときだけ緩めるのを勧めます。
大文字・小文字の扱い
IFノードには Ignore Case(大文字・小文字を無視する)という設定があり、 既定で有効です。
この項目は最初から見えているわけではありません。条件の下にある Options の + Add option から追加すると、はじめて画面に現れます。 見えていない=無効、ではないので注意してください。
つまり、何も設定しなければ Error と error は同じものとして扱われます。
これは多くの場合に便利ですが、大文字・小文字を区別したい場合は明示的にオフにする必要が あります。ステータスコードや識別子の比較で、意図せず一致してしまうことがあります。
条件に合わなかった側はどうなるか
その先のノードは、まったく実行されません。
「0件のデータで実行される」のではありません。実行記録そのものが残りません。
実際に確認したところ、すべての項目が true 側に振り分けられた実行では、 false 側につないだノードには実行記録が1件もありませんでした。
これは重要な性質です。false 側に「該当なしの通知」をつないでも、 該当が無いときは通知されません(該当が無い=false側に項目が流れない、ではなく、 そもそも項目がどちらにも無い場合)。
「0件だったことを検知したい」場合は、IFノードの分岐ではなく、 件数そのものを条件にする別の作りが必要になります。
IF と Switch の使い分け
分岐先が3つ以上になるなら、Switch ノードを使います。
IFノードを何段も重ねると、どの条件でどこへ行くのかが追えなくなります。 分岐が2つなら IF、3つ以上なら Switch、と決めておくと読みやすい構成を保てます。
うまくいかないときの切り分け
- 左辺に
fxが付いて文字が緑色になっているか — 式になっていないと文字列同士の比較になる - 式の評価結果を見る — 入力欄の下に評価結果が出る。期待した値が出ているか
- 型が合っているか — 文字列の
"100"を Number で比較していないか。 必要なら Convert types where required をオンにする - 大文字・小文字 — Ignore Case は既定で有効。Options に追加しないと画面に出ない
- 出力タブを両方見る — true 側が空でも false 側に入っていることがある
次に読む
- n8n Schedule Triggerの使い方 — ここまでのワークフローを毎朝自動で動かす
- n8n Switchノードの使い方 — 分岐が3つ以上になるとき
- n8n Codeノードの使い方 — 条件分岐では足りない加工をコードで書く
- n8n HTTP Requestノードの使い方 — この記事で使ったワークフローの作り方
- コアノードの一覧 — ほかのよく使うノード
- エラーと対処 — 実際に出たエラーと切り分け方