Level 1 course IF issue

Hi everyone!
I’m having some difficulty with the Beginners 1 exercise.
The exercise asks us to add a test in the IF condition (if the employee is Mario).
So we end up with an IF that has two conditions: if the status is “processing” and the employee is “Mario”.
So if the IF is TRUE, the output only includes items with “Processing” + “Mario”.
What I don’t understand in the exercise is the FALSE case.
In that case, FALSE returns everything that does not contain the combination “processing” + “Mario”.
In the exercise, however, the questions/answers don’t match my results. I’m missing something.

Could tyou help me please ?
Luis

Describe the problem/error/question

What is the error message (if any)?

Please share your workflow

{
  "nodes": [
    {
      "parameters": {
        "url": "https://learn.app.n8n.cloud/webhook/custom-erp",
        "authentication": "genericCredentialType",
        "genericAuthType": "httpHeaderAuth",
        "sendHeaders": true,
        "headerParameters": {
          "parameters": [
            {
              "name": "unique_id",
              "value": "bd65a5abf7fc4380ab9f10d57f8c8f7e"
            }
          ]
        },
        "options": {}
      },
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 4.3,
      "position": [
        208,
        0
      ],
      "id": "26fb31b9-b609-410a-96c7-9bbd7307c79f",
      "name": "HTTP Request",
      "credentials": {
        "httpHeaderAuth": {
          "id": "DzqDSxMw2sFIrimD",
          "name": "Header Auth account"
        }
      }
    },
    {
      "parameters": {
        "operation": "create",
        "base": {
          "__rl": true,
          "value": "appm07M7jVzt2FeRU",
          "mode": "list",
          "cachedResultName": "N8N course",
          "cachedResultUrl": "https://airtable.com/appm07M7jVzt2FeRU"
        },
        "table": {
          "__rl": true,
          "value": "tblmZ9xEOB56kCP1s",
          "mode": "list",
          "cachedResultName": "processingOrders",
          "cachedResultUrl": "https://airtable.com/appm07M7jVzt2FeRU/tblmZ9xEOB56kCP1s"
        },
        "columns": {
          "mappingMode": "autoMapInputData",
          "value": {},
          "matchingColumns": [],
          "schema": [
            {
              "id": "orderID",
              "displayName": "orderID",
              "required": false,
              "defaultMatch": false,
              "canBeUsedToMatch": true,
              "display": true,
              "type": "number",
              "readOnly": false,
              "removed": false
            },
            {
              "id": "employeeName",
              "displayName": "employeeName",
              "required": false,
              "defaultMatch": false,
              "canBeUsedToMatch": true,
              "display": true,
              "type": "string",
              "readOnly": false,
              "removed": false
            }
          ],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {}
      },
      "type": "n8n-nodes-base.airtable",
      "typeVersion": 2.1,
      "position": [
        1072,
        -96
      ],
      "id": "2b464f6f-3ced-4e46-b50e-be930007dd2f",
      "name": "Create a record",
      "credentials": {
        "airtableTokenApi": {
          "id": "JgvasrtM5C1RNjzP",
          "name": "Airtable Personal Access Token account"
        }
      }
    },
    {
      "parameters": {
        "conditions": {
          "options": {
            "caseSensitive": true,
            "leftValue": "",
            "typeValidation": "strict",
            "version": 3
          },
          "conditions": [
            {
              "id": "2fa44282-c202-425e-a3a1-edb0a5484bf1",
              "leftValue": "={{ $json.orderStatus }}",
              "rightValue": "processing",
              "operator": {
                "type": "string",
                "operation": "equals"
              }
            },
            {
              "id": "9b1a7e57-98ce-4be5-816c-4b20e0a7e860",
              "leftValue": "={{ $json.employeeName }}",
              "rightValue": "Mario",
              "operator": {
                "type": "string",
                "operation": "equals"
              }
            }
          ],
          "combinator": "and"
        },
        "options": {}
      },
      "type": "n8n-nodes-base.if",
      "typeVersion": 2.3,
      "position": [
        416,
        0
      ],
      "id": "11b600f5-a68b-4c02-99ab-63ce97e7be22",
      "name": "If",
      "executeOnce": false
    },
    {
      "parameters": {
        "assignments": {
          "assignments": [
            {
              "id": "f7d0c3a8-bce0-40fb-95fb-03748b44951a",
              "name": "orderID",
              "value": "={{ $json.orderID }}",
              "type": "number"
            },
            {
              "id": "4ba386da-2ed8-4241-9952-1de5b60abcbd",
              "name": "employeeName",
              "value": "={{ $json.employeeName }}",
              "type": "string"
            }
          ]
        },
        "options": {}
      },
      "type": "n8n-nodes-base.set",
      "typeVersion": 3.4,
      "position": [
        864,
        -96
      ],
      "id": "fdedcb3e-e3a6-4edb-b529-33d8cd2a2b44",
      "name": "Edit Fields"
    },
    {
      "parameters": {
        "jsCode": "let items = $input.all();\nlet totalBooked = items.length;\nlet bookedSum = 0;\n\nfor (let i=0; i < items.length; i++) {\n  bookedSum = bookedSum + items[i].json.orderPrice;\n}\n\nreturn [{ json: {totalBooked, bookedSum} }];"
      },
      "type": "n8n-nodes-base.code",
      "typeVersion": 2,
      "position": [
        656,
        112
      ],
      "id": "05dc99ad-98ac-4917-b6e1-ce99097882e8",
      "name": "Code in JavaScript"
    },
    {
      "parameters": {
        "authentication": "webhook",
        "content": "=This week we've {{$json[\"totalBooked\"]}} booked orders with a total value of {{$json[\"bookedSum\"]}}. My Unique ID: {{ $('HTTP Request').params[\"headerParameters\"][\"parameters\"][0][\"value\"] }}",
        "options": {}
      },
      "type": "n8n-nodes-base.discord",
      "typeVersion": 2,
      "position": [
        880,
        112
      ],
      "id": "712dff14-0101-4c09-8ed6-3407090fca5e",
      "name": "Discord",
      "webhookId": "a43f133e-ce60-47b6-946f-9f1b000ce058",
      "credentials": {
        "discordWebhookApi": {
          "id": "ZYYVvyLfDms8fUOh",
          "name": "Discord Webhook account"
        }
      }
    },
    {
      "parameters": {
        "rule": {
          "interval": [
            {
              "field": "weeks",
              "triggerAtDay": [
                1
              ],
              "triggerAtHour": 9
            }
          ]
        }
      },
      "type": "n8n-nodes-base.scheduleTrigger",
      "typeVersion": 1.3,
      "position": [
        16,
        0
      ],
      "id": "d62c99d5-6099-446a-80d6-a8dcebfe591b",
      "name": "Schedule Trigger"
    },
    {
      "parameters": {
        "jsCode": "let items = $input.all();\nlet totalBooked = items.length;\nlet bookedSum = 0;\n\nfor (let i=0; i < items.length; i++) {\n  bookedSum = bookedSum + items[i].json.orderPrice;\n}\n\nreturn [{ json: {totalBooked, bookedSum} }];"
      },
      "type": "n8n-nodes-base.code",
      "typeVersion": 2,
      "position": [
        656,
        -96
      ],
      "id": "bb115484-2a4d-4695-a265-1ccafeffbc70",
      "name": "Code in JavaScript1"
    }
  ],
  "connections": {
    "HTTP Request": {
      "main": [
        [
          {
            "node": "If",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "If": {
      "main": [
        [
          {
            "node": "Code in JavaScript1",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Code in JavaScript",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Edit Fields": {
      "main": [
        [
          {
            "node": "Create a record",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Code in JavaScript": {
      "main": [
        [
          {
            "node": "Discord",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Schedule Trigger": {
      "main": [
        [
          {
            "node": "HTTP Request",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Code in JavaScript1": {
      "main": [
        []
      ]
    }
  },
  "pinData": {},
  "meta": {
    "templateCredsSetupCompleted": true,
    "instanceId": "e8fc57bdad4291d4b96ecf02c356187f8325c5b7a53463d5c9c36f5a0772789b"
  }
}

(Select the nodes on your canvas and use the keyboard shortcuts CMD+C/CTRL+C and CMD+V/CTRL+V to copy and paste the workflow.)

Share the output returned by the last node

Information on your n8n setup

  • n8n version:
  • Database (default: SQLite):
  • n8n EXECUTIONS_PROCESS setting (default: own, main):
  • Running n8n via (Docker, npm, n8n cloud, desktop app):
  • Operating system:

Hi @Luis_Esteves Welcome!
As expected this is exactly what should happen, as you have set 2 conditions which should match and if both conditions match the output goes to true else false, as if should contain status = “processing” only so that it should give the right results as adding Mario statement is confusing you.. Just read this again:

Thanks Anshul :folded_hands:

Thanks for your reply!

However, I think there might be a misunderstanding, so let me clarify my issue.

In the exercise, we are asked to add a second condition to the IF node:

  • orderStatus = “processing”

  • AND employeeName = “Mario”

With this setup, the logic is:

  • TRUE branch → only items where both conditions are true (processing AND Mario)

  • FALSE branch → everything else → NOT (processing AND Mario)

So the FALSE output includes:

  • orders that are not processing

  • orders that are processing but not assigned to Mario

  • orders assigned to Mario but not processing

In other words, it’s everything except the combination “processing + Mario”.

However, in the quiz, none of the proposed answers seem to match this logic. All options are more restrictive and don’t reflect what the FALSE branch actually contains.

That’s why I’m confused — it feels like either:

  • the exercise instructions (adding the Mario condition), or

  • the quiz answers

are not aligned.

Did anyone else notice this inconsistency?

Thanks a lot for your help!

Tthanks Benjamin,

So,

what’s the correct answer for the False branch ?

A. All booked orders (orders that are not processing)

B. All orders that are not processing and assigned to Mario

C. All booked orders that are not assigned to Mario

Luis

@Luis_Esteves That is for you to figure out @Luis_Esteves this is a test! You should not be asking answers on community.

lol you are joking or you are not understanding what I’m trying to explain ? :sweat_smile:

I don’t want the réponses.

I’m telling that the test has an issue and there is no possible response. Maybe a problem or bug with the quizz.

I’m trying to understand because I cannot pass the test because of this bug.

I cannot pass the test because of a bug on the last question.
I need help. Maybee you had the same issue. I know very well the IF conditions, I’m a DEV. But we are facing a bug….

I analysed the test with ChatGPT and it aggrees with the impossible result :

:bullseye: Reminder of the IF conditions:

  • orderStatus = processing

  • AND

  • employeeName = Mario

:backhand_index_pointing_right: TRUE branch = processing AND Mario
:backhand_index_pointing_right: FALSE branch = everything else


:bar_chart: So the FALSE branch contains:

  • :cross_mark: not processing OR

  • :cross_mark: not Mario

  • :cross_mark: or both

A – All booked orders (orders that are not processing) :cross_mark:

→ Too restrictive (there are also “processing” orders that are not assigned to Mario in FALSE)

B – All orders that are not processing and assigned to Mario :cross_mark:

→ Too specific (only a small subset of FALSE)

C – All booked orders that are not assigned to Mario :cross_mark:

I was also confused but I chose the correct answer instinctively :sweat_smile: