diff --git a/docs/nodes/nodes-library/core-nodes/If/Function_node.png b/docs/nodes/nodes-library/core-nodes/If/Function_node.png new file mode 100644 index 000000000..6961ce3c2 Binary files /dev/null and b/docs/nodes/nodes-library/core-nodes/If/Function_node.png differ diff --git a/docs/nodes/nodes-library/core-nodes/If/IF_node.png b/docs/nodes/nodes-library/core-nodes/If/IF_node.png new file mode 100644 index 000000000..3b3c22233 Binary files /dev/null and b/docs/nodes/nodes-library/core-nodes/If/IF_node.png differ diff --git a/docs/nodes/nodes-library/core-nodes/If/README.md b/docs/nodes/nodes-library/core-nodes/If/README.md new file mode 100644 index 000000000..799a71441 --- /dev/null +++ b/docs/nodes/nodes-library/core-nodes/If/README.md @@ -0,0 +1,109 @@ +--- +permalink: /nodes/n8n-nodes-base.if +--- + +# IF + +The IF node is used to split a workflow conditionally based on comparison operations. + +## Node Reference + +You can add comparison conditions using the ***Add Condition*** dropdown. Conditions can be created based on the data type, the available comparison operations vary for each data type. + +- Boolean + - Equal + - Not Equal +- Number + - Smaller + - Smaller Equal + - Equal + - Not Equal + - Larger + - Larger Equal +- String + - Contains + - Equal + - Not Contains + - Not Equal + - Regex + +You can choose to split a workflow when any of the specified conditions are met, or only when all the specified conditions are met using the options in the ***Combine*** dropdown list. + + +## Example Usage + +This workflow executes two different *Set* nodes based on the output given by an *IF* node. You can also find the [workflow](https://n8n.io/workflows/581) on the website. This example usage workflow would use the following four nodes. +- [Start](../../core-nodes/Start/README.md) +- [Function](../../core-nodes/Function/README.md) +- [IF]() +- [Set](../../core-nodes/Set/README.md) + + +The final workflow should look like the following image. + +![A workflow with the IF node](./workflow.png) + +### 1. Start node + +The start node exists by default when you create a new workflow. + + +### 2. Function node + +1. Enter the following code in the ***Function*** field. +``` +return [ + { + json: { + id: 0, + } + }, + { + json: { + id: 1, + } + } +]; +``` +2. Click on ***Execute Node*** to run the workflow. + +![Using the Function node to send data to the IF node](./Function_node.png) + + +### 2. IF node + +:::v-pre +1. Click on the ***Add Condition*** button and select 'Number' from the dropdown list. +2. Click on the gears icon next to the ***Value 1*** field and click on ***Add Expression***. +3. Select the following in the ***Variable Selector*** section: Nodes > Function > Output Data > JSON > id. You can also add the following expression: `{{$node["Function"].json["id"]}}`. +4. From the ***Operation*** dropdown list, select 'Equal'. +5. Click on ***Execute Node*** to run the workflow. +::: + +![Using the IF node to conditionally execute based on the input](./IF_node.png) + + +### 3. Set node (for 'true' condition) + +1. Create a *Set* node connected to the 'true' output of the IF node. +2. Click on the ***Add Value*** button and select 'String' from the dropdown list. +3. Enter `name` in the ***Name*** field. +4. Enter `n8n` in the ***Value*** field. +5. Click on ***Execute Node*** to run the workflow. + +**Note:** Notice that only the id with the value 0 made its way to this *Set* node. + +![Using the Set node to set a value when the condition is true](./Set_node.png) + + +### 4. Set node (for 'false' condition) + +1. Create a *Set* node connected to the 'false' output of the IF node. +2. Click on the ***Add Value*** button and select 'String' from the dropdown list. +3. Enter `name` in the ***Name*** field. +4. Enter `nodemation` in the ***Value*** field. +5. Click on ***Execute Node*** to run the workflow. + +**Note:** Notice that only the id with the value 1 made its way to this *Set* node. + +![Using the Set node to set a value when the condition is false](./Set1_node.png) diff --git a/docs/nodes/nodes-library/core-nodes/If/Set1_node.png b/docs/nodes/nodes-library/core-nodes/If/Set1_node.png new file mode 100644 index 000000000..052322053 Binary files /dev/null and b/docs/nodes/nodes-library/core-nodes/If/Set1_node.png differ diff --git a/docs/nodes/nodes-library/core-nodes/If/Set_node.png b/docs/nodes/nodes-library/core-nodes/If/Set_node.png new file mode 100644 index 000000000..596d54e79 Binary files /dev/null and b/docs/nodes/nodes-library/core-nodes/If/Set_node.png differ diff --git a/docs/nodes/nodes-library/core-nodes/If/workflow.png b/docs/nodes/nodes-library/core-nodes/If/workflow.png new file mode 100644 index 000000000..e75dd0193 Binary files /dev/null and b/docs/nodes/nodes-library/core-nodes/If/workflow.png differ