AutomationFlowsGeneral › Test Your JSON Skills with Interactive Challenges and Instant Feedback

Test Your JSON Skills with Interactive Challenges and Instant Feedback

Original n8n title: 🧑‍🎓 Test Your JSON Skills with Interactive Challenges and Instant Feedback

ByLucas Peyrin @lucaspeyrin on n8n.io

This template is a hands-on, practical exam designed to test your understanding of the fundamental JSON data types. It's the perfect way to solidify your knowledge after learning the basics.

Event trigger★★★★★ complexity61 nodesStop And Error
General Trigger: Event Nodes: 61 Complexity: ★★★★★ Added:

This workflow corresponds to n8n.io template #6232 — we link there as the canonical source.

The workflow JSON

Copy or download the full n8n JSON below. Paste it into a new n8n workflow, add your credentials, activate. Full import guide →

Download .json
{
  "nodes": [
    {
      "id": "5ec84dc4-48af-4db1-aedf-66de0ba952c4",
      "name": "\ud83c\udf89 SUCCESS \ud83c\udf89",
      "type": "n8n-nodes-base.html",
      "notes": "Well done! You're awesome\n\n\u00a9 2025 Lucas Peyrin",
      "position": [
        5280,
        288
      ],
      "parameters": {
        "html": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n    <meta charset=\"UTF-8\">\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n    <title>Success</title>\n</head>\n<body style=\"margin: 0; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif; background-color: #f0f2f5; display: flex; align-items: center; justify-content: center; height: 100vh;\">\n\n    <!-- The main success card -->\n    <div style=\"background-color: #ffffff; padding: 40px 50px; border-radius: 12px; box-shadow: 0 5px 25px rgba(0, 0, 0, 0.1); text-align: center; max-width: 400px; margin: 20px;\">\n\n        <!-- Circular Green Checkmark -->\n        <div style=\"width: 100px; height: 100px; background-color: #28a745; border-radius: 50%; margin: 0 auto 25px auto; display: flex; align-items: center; justify-content: center;\">\n            <span style=\"color: white; font-size: 60px; line-height: 1;\">\u2714</span>\n        </div>\n\n        <!-- Main Text -->\n        <h1 style=\"font-size: 36px; font-weight: 600; color: #333; margin: 0 0 10px 0;\">\n            Success!\n        </h1>\n\n        <!-- Call to Action Text & Link -->\n        <p style=\"font-size: 16px; color: #555; line-height: 1.5; margin: 0;\">\n            To go further, you can\n         </p>\n        <p style=\"font-size: 16px; color: #555; line-height: 1.5; margin: 0;\">\n            <a href=\"https://n8n.io/creators/lucaspeyrin\" target=\"_blank\" rel=\"noopener noreferrer\" style=\"color: #007bff; text-decoration: none; font-weight: 500;\">check out more templates</a>.\n        </p>\n\n    </div>\n\n</body>\n</html>"
      },
      "notesInFlow": true,
      "typeVersion": 1.2
    },
    {
      "id": "2d4e8f50-9e08-48f6-a01d-40685e7f9840",
      "name": "Instruction - Number",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1040,
        -32
      ],
      "parameters": {
        "color": 6,
        "width": 300,
        "height": 508,
        "content": "### Step 2: Number\n\nModify the **\"Test - Number\"** node.\n\n**Task:** Create a JSON object with two keys:\n- `product_id` with the number `12345`\n- `price` with the decimal number `99.99`\n\n\n![Numbers](https://media2.giphy.com/media/v1.Y2lkPTc5MGI3NjExNHE0eWdiMzg5bG4ya3U0am05MHgweGp3dXE2OWtvZGpwdng2ZzhxayZlcD12MV9pbnRlcm5hbF9naWZfYnlfaWQmY3Q9Zw/JBRR744Ozd0xLhksLw/giphy.gif)"
      },
      "typeVersion": 1
    },
    {
      "id": "74651a3a-ac84-46b0-b572-dbbbd17407cf",
      "name": "Feedback Incorrect2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1552,
        352
      ],
      "parameters": {
        "color": 7,
        "height": 320,
        "content": "\u274c **Incorrect.**\n\n**Hint:** Numbers must not be in quotes. Check both the integer and the decimal value."
      },
      "typeVersion": 1
    },
    {
      "id": "77ecf195-b9d5-4307-8720-c59692b06e77",
      "name": "Instruction - Boolean",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1856,
        -112
      ],
      "parameters": {
        "color": 6,
        "width": 316,
        "height": 700,
        "content": "### Step 3: Boolean\n\nModify the **\"Test - Boolean\"** node.\n\n**Task:** Create a JSON object with two keys:\n- `is_active` with the value `true`\n- `has_permission` with the value `false`\n\n\n![Boolean](https://media4.giphy.com/media/v1.Y2lkPTc5MGI3NjExYWdzOGFzY2c1enhmZmFwY2s5cmxmaDJwMm1rbXZ3b2wxYmZzcTQ5diZlcD12MV9pbnRlcm5hbF9naWZfYnlfaWQmY3Q9Zw/x2NtwIIIICGZXhDNrb/giphy.gif)"
      },
      "typeVersion": 1
    },
    {
      "id": "007fd671-1f27-41d1-b0eb-567f50aa9cc4",
      "name": "Test - Boolean",
      "type": "n8n-nodes-base.set",
      "notes": "\u00a9 2025 Lucas Peyrin",
      "disabled": true,
      "position": [
        1968,
        288
      ],
      "parameters": {
        "mode": "raw",
        "options": {},
        "jsonOutput": "{\n  \"is_active\": ,\n  \"has_permission\": \n}\n"
      },
      "typeVersion": 3.4
    },
    {
      "id": "bd109f04-fa2c-45a6-97bd-293b6f655897",
      "name": "Check - Boolean",
      "type": "n8n-nodes-base.if",
      "notes": "\u00a9 2025 Lucas Peyrin",
      "position": [
        2224,
        288
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 2,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "d4e5f6a7-8901-2345-6789-0abcdef12345",
              "operator": {
                "type": "boolean",
                "operation": "equals"
              },
              "leftValue": "={{ $json.is_active }}",
              "rightValue": true
            },
            {
              "id": "e5f6a789-0123-4567-890a-bcdef1234567",
              "operator": {
                "type": "boolean",
                "operation": "equals"
              },
              "leftValue": "={{ $json.has_permission }}",
              "rightValue": false
            }
          ]
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "b2a9b160-7a3f-4147-b501-838aec6e66c8",
      "name": "Feedback Correct3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2384,
        64
      ],
      "parameters": {
        "color": 7,
        "height": 272,
        "content": "\u2705 **Correct!**\n\nNow for the `null` value."
      },
      "typeVersion": 1
    },
    {
      "id": "744d372f-b9d0-470a-9212-b9d8074e591e",
      "name": "Success - Boolean",
      "type": "n8n-nodes-base.noOp",
      "notes": "\u00a9 2025 Lucas Peyrin",
      "position": [
        2448,
        176
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "65d05841-7dad-49d2-ad29-e1ae181ef2f8",
      "name": "Feedback Incorrect3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2384,
        352
      ],
      "parameters": {
        "color": 7,
        "height": 320,
        "content": "\u274c **Incorrect.**\n\n**Hint:** Boolean values are `true` or `false` and must be written without any quotes."
      },
      "typeVersion": 1
    },
    {
      "id": "25f6a110-b111-49de-8854-d529db20dde4",
      "name": "Error - Boolean",
      "type": "n8n-nodes-base.stopAndError",
      "notes": "\u00a9 2025 Lucas Peyrin",
      "position": [
        2448,
        512
      ],
      "parameters": {
        "errorMessage": "Incorrect Boolean. Hint: Boolean values are `true` or `false` and must be written without any quotes."
      },
      "typeVersion": 1
    },
    {
      "id": "f99b468d-6fda-4261-b80a-58d4c1e21ebc",
      "name": "Answer - Boolean",
      "type": "n8n-nodes-base.set",
      "notes": "\u00a9 2025 Lucas Peyrin",
      "position": [
        1968,
        736
      ],
      "parameters": {
        "mode": "raw",
        "options": {},
        "jsonOutput": "{\n  \"is_active\": true,\n  \"has_permission\": false\n}\n"
      },
      "typeVersion": 3.4
    },
    {
      "id": "6073ffe7-4ea4-491f-821a-da585f6210b8",
      "name": "Instruction - Null",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2672,
        0
      ],
      "parameters": {
        "color": 6,
        "width": 316,
        "height": 492,
        "content": "### Step 4: Null\n\nModify the **\"Test - Null\"** node.\n\n**Task:** Create a JSON object with a key `middle_name` whose value is explicitly nothing, or `null`.\n\n\n![Null](https://media1.giphy.com/media/v1.Y2lkPTc5MGI3NjExOXF0NG9pYWw2OXRiZGV0bTA1MGoyY3h2MXNjaWY0a2Iydjc1eHh0ZiZlcD12MV9pbnRlcm5hbF9naWZfYnlfaWQmY3Q9Zw/05dgux7TEBbY4VxAlb/giphy.gif)"
      },
      "typeVersion": 1
    },
    {
      "id": "4c271125-415e-46b3-93ba-12fcc8ba0409",
      "name": "Test - Null",
      "type": "n8n-nodes-base.set",
      "notes": "\u00a9 2025 Lucas Peyrin",
      "disabled": true,
      "position": [
        2784,
        288
      ],
      "parameters": {
        "mode": "raw",
        "options": {},
        "jsonOutput": "{\n  \"middle_name\": \n}\n"
      },
      "typeVersion": 3.4
    },
    {
      "id": "27b327c1-ede6-4d7d-b6f6-a029988fb707",
      "name": "Feedback Correct4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        3200,
        64
      ],
      "parameters": {
        "color": 7,
        "height": 272,
        "content": "\u2705 **Correct!**\n\nExcellent. Time for arrays."
      },
      "typeVersion": 1
    },
    {
      "id": "418ad6d2-1b57-41cb-bcbd-994c7a3e1f0d",
      "name": "Success - Null",
      "type": "n8n-nodes-base.noOp",
      "notes": "\u00a9 2025 Lucas Peyrin",
      "position": [
        3264,
        176
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "13f02cb6-a8f7-4185-ae2e-7b728ad37c42",
      "name": "Error - Null",
      "type": "n8n-nodes-base.stopAndError",
      "notes": "\u00a9 2025 Lucas Peyrin",
      "position": [
        3264,
        512
      ],
      "parameters": {
        "errorMessage": "Incorrect Null. Hint: The `null` value represents 'nothing' and is written as `null` without quotes."
      },
      "typeVersion": 1
    },
    {
      "id": "6e7ff4fd-2fa9-45a7-83d5-1e2847e69bc0",
      "name": "Answer - Null",
      "type": "n8n-nodes-base.set",
      "notes": "\u00a9 2025 Lucas Peyrin",
      "position": [
        2784,
        640
      ],
      "parameters": {
        "mode": "raw",
        "options": {},
        "jsonOutput": "{\n  \"middle_name\": null\n}\n"
      },
      "typeVersion": 3.4
    },
    {
      "id": "441310fa-1b9d-436a-9d12-27a158b5d70f",
      "name": "Instruction - Array",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        3520,
        -64
      ],
      "parameters": {
        "color": 6,
        "width": 300,
        "height": 530,
        "content": "### Step 5: Array\n\nModify the **\"Test - Array\"** node.\n\n**Task:** Create a JSON object with a key `tags` which is an array containing:\n- The string `'n8n'`\n- The string `'automation'`\n- The number `2024`\n\n\n![Array](https://media1.giphy.com/media/v1.Y2lkPWVjZjA1ZTQ3dmxsZzN2Y3o5NHRqdGk2eHRmdmoycmdiYjFqMW90eGY1c3c2aGQ3MSZlcD12MV9naWZzX3NlYXJjaCZjdD1n/Iv6s8zUIyIfnXBp6B8/200.webp)"
      },
      "typeVersion": 1
    },
    {
      "id": "f2b4505d-665d-4baf-87e2-d0f9f5ad1a52",
      "name": "Test - Array",
      "type": "n8n-nodes-base.set",
      "notes": "\u00a9 2025 Lucas Peyrin",
      "disabled": true,
      "position": [
        3632,
        288
      ],
      "parameters": {
        "mode": "raw",
        "options": {},
        "jsonOutput": "{\n  \"tags\": \n}\n"
      },
      "typeVersion": 3.4
    },
    {
      "id": "1234203c-72db-410a-b2a0-cd13f421af8f",
      "name": "Check - Array",
      "type": "n8n-nodes-base.if",
      "notes": "\u00a9 2025 Lucas Peyrin",
      "position": [
        3872,
        288
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 2,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "b0123456-7890-abcd-ef12-345678901234",
              "operator": {
                "type": "string",
                "operation": "equals"
              },
              "leftValue": "={{ $json.tags[0] }}",
              "rightValue": "n8n"
            },
            {
              "id": "c1234567-890a-bcde-f123-456789012345",
              "operator": {
                "type": "string",
                "operation": "equals"
              },
              "leftValue": "={{ $json.tags[1] }}",
              "rightValue": "automation"
            },
            {
              "id": "d2345678-90ab-cdef-1234-567890123456",
              "operator": {
                "type": "number",
                "operation": "equals"
              },
              "leftValue": "={{ $json.tags[2] }}",
              "rightValue": 2024
            }
          ]
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "2f946929-3262-43cb-aaca-a683c9fdc8cb",
      "name": "Feedback Correct5",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        4032,
        64
      ],
      "parameters": {
        "color": 7,
        "height": 272,
        "content": "\u2705 **Correct!**\n\nAlmost there. Last one: objects."
      },
      "typeVersion": 1
    },
    {
      "id": "be1a40a8-e8e9-48b7-beb5-6b222242337c",
      "name": "Success - Array",
      "type": "n8n-nodes-base.noOp",
      "notes": "\u00a9 2025 Lucas Peyrin",
      "position": [
        4096,
        176
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "167a24fe-9076-4839-81a8-ad42709a812f",
      "name": "Feedback Incorrect5",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        4032,
        352
      ],
      "parameters": {
        "color": 7,
        "height": 320,
        "content": "\u274c **Incorrect.**\n\n**Hint:** Check the order of items, data types (string vs number), and the syntax: `[` `]` `,`."
      },
      "typeVersion": 1
    },
    {
      "id": "0a7c456b-8312-4079-919a-0a9cb768c2e2",
      "name": "Error - Array",
      "type": "n8n-nodes-base.stopAndError",
      "notes": "\u00a9 2025 Lucas Peyrin",
      "position": [
        4096,
        512
      ],
      "parameters": {
        "errorMessage": "Incorrect Array. Hint: Check the order of items, data types (string vs number), and the syntax: `[` `]` `,`."
      },
      "typeVersion": 1
    },
    {
      "id": "83a76d4d-5578-41e9-8598-c4f091c8d38c",
      "name": "Answer - Array",
      "type": "n8n-nodes-base.set",
      "notes": "\u00a9 2025 Lucas Peyrin",
      "position": [
        3632,
        624
      ],
      "parameters": {
        "mode": "raw",
        "options": {},
        "jsonOutput": "{\n  \"tags\": [\"n8n\", \"automation\", 2024]\n}\n"
      },
      "typeVersion": 3.4
    },
    {
      "id": "5b03bf52-ef8a-4170-a759-7dc6b7c4d232",
      "name": "Instruction - Object",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        4320,
        -16
      ],
      "parameters": {
        "color": 6,
        "width": 316,
        "height": 482,
        "content": "### Step 6: Object\n\nModify the **\"Test - Object\"** node.\n\n**Task:** Create a JSON object with a key `user`. Its value should be *another object* with two keys:\n- `name` (string: `'Alex'`)\n- `id` (number: `987`)\n\n\n![Object](https://media1.giphy.com/media/v1.Y2lkPTc5MGI3NjExZmlwNHlld3ZpbjF2eGg1Z3hndGxpN3RsMDQ5MmYyNDh6cjE1YWN3OCZlcD12MV9pbnRlcm5hbF9naWZfYnlfaWQmY3Q9Zw/AiPHa8Drgklos/giphy.gif)"
      },
      "typeVersion": 1
    },
    {
      "id": "d76cc94f-3fdf-46d2-bb35-0e2a427ba368",
      "name": "Test - Object",
      "type": "n8n-nodes-base.set",
      "notes": "\u00a9 2025 Lucas Peyrin",
      "disabled": true,
      "position": [
        4432,
        288
      ],
      "parameters": {
        "mode": "raw",
        "options": {},
        "jsonOutput": "{\n  \"user\": \n}\n"
      },
      "typeVersion": 3.4
    },
    {
      "id": "63570256-b7e8-41cc-84a6-f51c377d0aee",
      "name": "Check - Object",
      "type": "n8n-nodes-base.if",
      "notes": "\u00a9 2025 Lucas Peyrin",
      "position": [
        4688,
        288
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 2,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "a1234567-890a-bcde-f123-456789012345",
              "operator": {
                "type": "string",
                "operation": "equals"
              },
              "leftValue": "={{ $json.user.name }}",
              "rightValue": "Alex"
            },
            {
              "id": "b2345678-90ab-cdef-1234-567890123456",
              "operator": {
                "type": "number",
                "operation": "equals"
              },
              "leftValue": "={{ $json.user.id }}",
              "rightValue": 987
            }
          ]
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "fae24ca9-2a98-4748-ab76-d4c8a4264731",
      "name": "Feedback Correct6",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        4848,
        96
      ],
      "parameters": {
        "color": 7,
        "height": 240,
        "content": "\u2705 **YOU DID IT!**"
      },
      "typeVersion": 1
    },
    {
      "id": "87a8fccc-bf4d-4db6-b4ab-0a4b2a9238ab",
      "name": "Success - Object",
      "type": "n8n-nodes-base.noOp",
      "notes": "\u00a9 2025 Lucas Peyrin",
      "position": [
        4912,
        176
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "deb017d8-2520-46b6-9fee-655c1162faa1",
      "name": "Feedback Incorrect6",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        4848,
        352
      ],
      "parameters": {
        "color": 7,
        "height": 320,
        "content": "\u274c **Incorrect.**\n\n**Hint:** Remember to wrap the inner object in curly braces `{}` and check the data types inside it."
      },
      "typeVersion": 1
    },
    {
      "id": "8fe7e4ba-5e75-4258-8638-ab781eb95da8",
      "name": "Error - Object",
      "type": "n8n-nodes-base.stopAndError",
      "notes": "\u00a9 2025 Lucas Peyrin",
      "position": [
        4912,
        512
      ],
      "parameters": {
        "errorMessage": "Incorrect Object. Hint: Remember to wrap the inner object in curly braces `{}` and check the data types inside it."
      },
      "typeVersion": 1
    },
    {
      "id": "f16458eb-836c-4122-b958-ff6bba632344",
      "name": "Answer - Object",
      "type": "n8n-nodes-base.set",
      "notes": "\u00a9 2025 Lucas Peyrin",
      "position": [
        4432,
        624
      ],
      "parameters": {
        "mode": "raw",
        "options": {},
        "jsonOutput": "{\n  \"user\": {\n    \"name\": \"Alex\",\n    \"id\": 987\n  }\n}\n"
      },
      "typeVersion": 3.4
    },
    {
      "id": "98bcaef8-4c6d-4143-9af4-6cc833cf404a",
      "name": "Congratulations!",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        5120,
        96
      ],
      "parameters": {
        "color": 4,
        "width": 416,
        "height": 576,
        "content": "\ud83c\udf89 **Congratulations! You've passed the test!**\n\nYou have successfully demonstrated your understanding of all the basic JSON data types.\n\nYou are now ready to work with data in n8n.\n\n-- Well done! --"
      },
      "typeVersion": 1
    },
    {
      "id": "84a620ab-3cfc-43a5-a905-9c92f34f8cbd",
      "name": "Instruction - String1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        224,
        64
      ],
      "parameters": {
        "color": 6,
        "width": 300,
        "height": 396,
        "content": "### Step 1: The String\n\nModify the **\"Test - String\"** node below.\n\n**Task:** Create a JSON object with a single key named `my_string` whose value is the text `I love automation`."
      },
      "typeVersion": 1
    },
    {
      "id": "d1391387-115a-4263-89e8-409ad347cb98",
      "name": "Feedback Correct1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        736,
        64
      ],
      "parameters": {
        "color": 7,
        "height": 272,
        "content": "\u2705 **Correct!**\n\nLet's move on to numbers."
      },
      "typeVersion": 1
    },
    {
      "id": "2a278bd1-a54b-4804-80b0-442fed0feee1",
      "name": "Feedback Incorrect1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        736,
        352
      ],
      "parameters": {
        "color": 7,
        "height": 320,
        "content": "\u274c **Incorrect.**\n\n**Hint:** A string value must always be enclosed in double quotes `\" \"`. Check for typos!"
      },
      "typeVersion": 1
    },
    {
      "id": "3cc0a5cf-9c0a-4043-824c-9487f563f722",
      "name": "Sticky Note13",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -272,
        -48
      ],
      "parameters": {
        "width": 460,
        "height": 504,
        "content": "## JSON Knowledge Test\n\nWelcome to the practical test! The goal is to check your understanding of the JSON concepts you've just learned.\n\n**How to use this test:**\n1.  For each step, read the instructions on the purple sticky note.\n2.  Modify the corresponding **\"Test - ...\"** node by writing the correct JSON in the text area.\n3.  Click **\"Execute Workflow\"** to check your answers.\n4.  A green path means a correct answer, a red path means it's incorrect. Keep trying until the path turns green!\n\n\nGood luck!"
      },
      "typeVersion": 1
    },
    {
      "id": "f8ffce9d-d4a3-452d-98a6-0fade9d47f1e",
      "name": "Feedback Correct7",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1552,
        64
      ],
      "parameters": {
        "color": 7,
        "height": 272,
        "content": "\u2705 **Correct!**\n\nLet's move on to booleans."
      },
      "typeVersion": 1
    },
    {
      "id": "af7ca882-415a-417a-9c5b-c0b62f119de2",
      "name": "Feedback Incorrect7",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        3200,
        352
      ],
      "parameters": {
        "color": 7,
        "height": 320,
        "content": "\u274c **Incorrect.**\n\n**Hint:** The `null` value represents 'nothing' and is written as `null` without quotes."
      },
      "typeVersion": 1
    },
    {
      "id": "01d04637-fda6-4539-bb75-aab074ecc21b",
      "name": "Answer Note - Number",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1040,
        496
      ],
      "parameters": {
        "color": 7,
        "width": 304,
        "height": 304,
        "content": "\ud83d\udca1 **Answer Key**\n\nThis node contains the correct JSON for the **Number** step. You can use it as a reference if you get stuck."
      },
      "typeVersion": 1
    },
    {
      "id": "ab300417-993a-4399-8cbb-48970a4a468b",
      "name": "Answer Note - Boolean",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1856,
        608
      ],
      "parameters": {
        "color": 7,
        "width": 320,
        "height": 288,
        "content": "\ud83d\udca1 **Answer Key**\n\nThis node contains the correct JSON for the **Boolean** step. You can use it as a reference if you get stuck."
      },
      "typeVersion": 1
    },
    {
      "id": "64ae4cc7-d135-4314-8057-93c9b728333c",
      "name": "Answer Note - Null",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2672,
        512
      ],
      "parameters": {
        "color": 7,
        "width": 320,
        "height": 288,
        "content": "\ud83d\udca1 **Answer Key**\n\nThis node contains the correct JSON for the **Null** step. You can use it as a reference if you get stuck."
      },
      "typeVersion": 1
    },
    {
      "id": "1fc99ad5-9549-4bc1-82cb-c46e222a9884",
      "name": "Answer Note - Array",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        3520,
        480
      ],
      "parameters": {
        "color": 7,
        "width": 304,
        "height": 304,
        "content": "\ud83d\udca1 **Answer Key**\n\nThis node contains the correct JSON for the **Array** step. You can use it as a reference if you get stuck."
      },
      "typeVersion": 1
    },
    {
      "id": "c0641a7a-b2ab-4ab3-84fc-9643b932d9bd",
      "name": "Answer Note - Object",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        4320,
        480
      ],
      "parameters": {
        "color": 7,
        "width": 320,
        "height": 304,
        "content": "\ud83d\udca1 **Answer Key**\n\nThis node contains the correct JSON for the **Object** step. You can use it as a reference if you get stuck."
      },
      "typeVersion": 1
    },
    {
      "id": "a5acca7f-1eeb-4372-9e66-56e47e697f43",
      "name": "Test - String",
      "type": "n8n-nodes-base.set",
      "notes": "\u00a9 2025 Lucas Peyrin",
      "disabled": true,
      "position": [
        320,
        288
      ],
      "parameters": {
        "mode": "raw",
        "options": {},
        "jsonOutput": "{\n  \"my_string\": \n}\n"
      },
      "typeVersion": 3.4
    },
    {
      "id": "f93864ab-89b8-42df-bb6b-bd2c6c0cd241",
      "name": "Check - String",
      "type": "n8n-nodes-base.if",
      "notes": "\u00a9 2025 Lucas Peyrin",
      "position": [
        576,
        288
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 2,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "5ac1af5c-2769-42f8-9df7-ec092d2fec05",
              "operator": {
                "type": "string",
                "operation": "equals"
              },
              "leftValue": "={{ $json.my_string.trim().toLowerCase() }}",
              "rightValue": "i love automation"
            }
          ]
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "35da61fb-1272-4acc-acc5-afae2c5024a6",
      "name": "Success - String",
      "type": "n8n-nodes-base.noOp",
      "notes": "\u00a9 2025 Lucas Peyrin",
      "position": [
        800,
        176
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "6394c8cf-fbc2-4c78-a6b5-eeb3113700de",
      "name": "Error - String",
      "type": "n8n-nodes-base.stopAndError",
      "notes": "\u00a9 2025 Lucas Peyrin",
      "position": [
        800,
        512
      ],
      "parameters": {
        "errorMessage": "Incorrect String. Hint: A string value must always be enclosed in double quotes `\" \"`. Check for typos!"
      },
      "typeVersion": 1
    },
    {
      "id": "da1aec33-d064-4d66-80b4-a327b688021b",
      "name": "Test - Number",
      "type": "n8n-nodes-base.set",
      "notes": "\u00a9 2025 Lucas Peyrin",
      "disabled": true,
      "position": [
        1136,
        288
      ],
      "parameters": {
        "mode": "raw",
        "options": {},
        "jsonOutput": "{\n  \"product_id\": ,\n  \"price\": \n}\n"
      },
      "typeVersion": 3.4
    },
    {
      "id": "565c42c3-6bc5-4c34-b87d-d60e529cb901",
      "name": "Check - Number",
      "type": "n8n-nodes-base.if",
      "notes": "\u00a9 2025 Lucas Peyrin",
      "position": [
        1392,
        288
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 2,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "5ac1af5c-2769-42f8-9df7-ec092d2fec05",
              "operator": {
                "type": "number",
                "operation": "equals"
              },
              "leftValue": "={{ $json.product_id }}",
              "rightValue": 12345
            },
            {
              "id": "7c1937fa-393c-4b5c-88f5-788df2f99295",
              "operator": {
                "type": "number",
                "operation": "equals"
              },
              "leftValue": "={{ $json.price }}",
              "rightValue": 99.99
            }
          ]
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "de1de270-c55b-4b37-abdb-ef619695463a",
      "name": "Error - Number",
      "type": "n8n-nodes-base.stopAndError",
      "notes": "\u00a9 2025 Lucas Peyrin",
      "position": [
        1616,
        512
      ],
      "parameters": {
        "errorMessage": "Incorrect Number. Hint: Numbers must not be in quotes. Check both the integer and the decimal value."
      },
      "typeVersion": 1
    },
    {
      "id": "3570a1c6-19d1-4f4e-b4e9-5a72ed787ea9",
      "name": "Answer - Number",
      "type": "n8n-nodes-base.set",
      "notes": "\u00a9 2025 Lucas Peyrin",
      "position": [
        1136,
        640
      ],
      "parameters": {
        "mode": "raw",
        "options": {},
        "jsonOutput": "{\n  \"product_id\": 12345,\n  \"price\": 99.99\n}\n"
      },
      "typeVersion": 3.4
    },
    {
      "id": "b36d5141-2714-4e0e-a76b-8c4ddfecbc07",
      "name": "Answer - String",
      "type": "n8n-nodes-base.set",
      "notes": "\u00a9 2025 Lucas Peyrin",
      "position": [
        320,
        624
      ],
      "parameters": {
        "mode": "raw",
        "options": {},
        "jsonOutput": "{\n  \"my_string\": \"I love automation\"\n}\n"
      },
      "typeVersion": 3.4
    },
    {
      "id": "c5e41209-c3ad-4be8-a68b-4a55f6c5ec5d",
      "name": "Answer Note - String",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        224,
        480
      ],
      "parameters": {
        "color": 7,
        "width": 304,
        "height": 304,
        "content": "\ud83d\udca1 **Answer Key**\n\nThis node contains the correct JSON for the **String** step. You can use it as a reference if you get stuck."
      },
      "typeVersion": 1
    },
    {
      "id": "2a6ebfaf-7c59-4f38-9f03-37d385447f68",
      "name": "Success - Number",
      "type": "n8n-nodes-base.noOp",
      "notes": "\u00a9 2025 Lucas Peyrin",
      "position": [
        1616,
        176
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "42929a15-4047-47f5-ae17-e19b3b44a808",
      "name": "Start Test!",
      "type": "n8n-nodes-base.manualTrigger",
      "position": [
        -16,
        288
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "7533ec6a-a35f-463f-8801-384a19b8a90c",
      "name": "Answer Note - String1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -272,
        480
      ],
      "parameters": {
        "color": 7,
        "width": 464,
        "height": 304,
        "content": "### How to pass a test\n![Test Example](https://supastudio.ia2s.app/storage/v1/object/public/assets/n8n/json_test_guide.gif)"
      },
      "typeVersion": 1
    },
    {
      "id": "dc32ec11-0360-4713-a9c7-7962b3488e88",
      "name": "Sticky Note10",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        5568,
        -304
      ],
      "parameters": {
        "color": 3,
        "width": 540,
        "height": 976,
        "content": "## Mission Accomplished !\n[![clic](https://supastudio.ia2s.app/storage/v1/object/public/assets/n8n/clic_down_lucas.gif)](https://api.ia2s.app/form/templates/academy)\n\nI really hope this test helped you check your JSON understanding fully. \nNow, go ahead: **make it your own**, use it, and tweak it.\n\n\n---\n\n### Automate your operations today\nYour time is valuable. Let us automate the boring stuff for you.\n\n**\ud83d\udc47 CHOOSE YOUR PATH:**\n\n[ **\u26a1\ufe0f I WANT A FREE AUDIT (2 min)** ](https://workflows.ac/audit?utm_source=n8n_template&utm_medium=workflow_note&utm_campaign=test_your_json_skills_with_interactive_challenges_and_instant_feedback&utm_content=6232)\n> *We've put our heart into this business evaluation machine.*\n\n[ **\ud83d\udca1 I HAVE A SPECIFIC REQUEST** ](https://workflows.ac/form?utm_source=n8n_template&utm_medium=workflow_note&utm_campaign=test_your_json_skills_with_interactive_challenges_and_instant_feedback&utm_content=6232)\n\n\n---\n\n*Happy Automating!*\n\nLucas Peyrin | [Workflows Accelerator](https://workflows.ac?utm_source=n8n_template&utm_medium=workflow_note&utm_campaign=test_your_json_skills_with_interactive_challenges_and_instant_feedback&utm_content=6232)"
      },
      "typeVersion": 1
    },
    {
      "id": "5a7e7045-7c14-4330-bf8b-992c055ea278",
      "name": "Sticky Note16",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        5200,
        448
      ],
      "parameters": {
        "color": 4,
        "width": 272,
        "height": 184,
        "content": "[![Test Skills](https://supastudio.ia2s.app/storage/v1/object/public/assets/n8n/n8n_animation.gif)](https://n8n.io/creators/lucaspeyrin)"
      },
      "typeVersion": 1
    },
    {
      "id": "b6cd1002-b9ef-4292-8e64-6a7ffc5fa9f3",
      "name": "Check - Null",
      "type": "n8n-nodes-base.if",
      "notes": "\u00a9 2025 Lucas Peyrin",
      "position": [
        3040,
        288
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 2,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "b0123456-7890-abcd-ef12-345678901234",
              "operator": {
                "type": "string",
                "operation": "notExists",
                "singleValue": true
              },
              "leftValue": "={{ $json.middle_name }}",
              "rightValue": "n8n"
            }
          ]
        }
      },
      "typeVersion": 2.2
    }
  ],
  "connections": {
    "Start Test!": {
      "main": [
        [
          {
            "node": "Test - String",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Test - Null": {
      "main": [
        [
          {
            "node": "Check - Null",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Check - Null": {
      "main": [
        [
          {
            "node": "Success - Null",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Error - Null",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Test - Array": {
      "main": [
        [
          {
            "node": "Check - Array",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Check - Array": {
      "main": [
        [
          {
            "node": "Success - Array",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Error - Array",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Test - Number": {
      "main": [
        [
          {
            "node": "Check - Number",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Test - Object": {
      "main": [
        [
          {
            "node": "Check - Object",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Test - String": {
      "main": [
        [
          {
            "node": "Check - String",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Check - Number": {
      "main": [
        [
          {
            "node": "Success - Number",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Error - Number",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Check - Object": {
      "main": [
        [
          {
            "node": "Success - Object",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Error - Object",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Check - String": {
      "main": [
        [
          {
            "node": "Success - String",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Error - String",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Success - Null": {
      "main": [
        [
          {
            "node": "Test - Array",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Test - Boolean": {
      "main": [
        [
          {
            "node": "Check - Boolean",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Check - Boolean": {
      "main": [
        [
          {
            "node": "Success - Boolean",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Error - Boolean",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Success - Array": {
      "main": [
        [
          {
            "node": "Test - Object",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Success - Number": {
      "main": [
        [
          {
            "node": "Test - Boolean",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Success - Object": {
      "main": [
        [
          {
            "node": "\ud83c\udf89 SUCCESS \ud83c\udf89",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Success - String": {
      "main": [
        [
          {
            "node": "Test - Number",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Success - Boolean": {
      "main": [
        [
          {
            "node": "Test - Null",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}
Pro

For the full experience including quality scoring and batch install features for each workflow upgrade to Pro

About this workflow

This template is a hands-on, practical exam designed to test your understanding of the fundamental JSON data types. It's the perfect way to solidify your knowledge after learning the basics.

Source: https://n8n.io/workflows/6232/ — original creator credit. Request a take-down →

More General workflows → · Browse all categories →

Related workflows

Workflows that share integrations, category, or trigger type with this one. All free to copy and import.

General

This template is a hands-on, practical exam designed to help you master n8n Expressions—the key to accessing and manipulating data in your workflows.

Stop And Error
General

Prevent concurrent workflow runs using Redis. Uses executeWorkflowTrigger, manualTrigger, stickyNote, executeWorkflow. Event-driven trigger; 43 nodes.

Execute Workflow Trigger, Redis, Stop And Error
General

This workflow sets a small "lock" value in Redis so that only one copy of a long job can run at the same time. If another trigger fires while the job is still busy, the workflow sees the lock, stops e

Execute Workflow Trigger, Redis, Stop And Error
General

This template facilitates the transfer of a folder, along with all its files and subfolders, within a Nextcloud instance. The Nextcloud user must have access to both the source and destination folders

Execute Workflow Trigger, Next Cloud, Stop And Error
General

This template uses the ZeroBounce node to validate and score email addresses. It is designed to first check if an email is deliverable and then uses A.I. Scoring to assess the sender's deliverability

@Zerobounce/N8N Nodes Zerobounce, Stop And Error