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 →
{
"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"
},
"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"
},
"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"
},
"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"
},
"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"
},
"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"
},
"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[](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": "[](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
}
]
]
}
}
}
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 →
Related workflows
Workflows that share integrations, category, or trigger type with this one. All free to copy and import.
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.
Prevent concurrent workflow runs using Redis. Uses executeWorkflowTrigger, manualTrigger, stickyNote, executeWorkflow. Event-driven trigger; 43 nodes.
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
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
Workflow 1994. Uses executeWorkflowTrigger, nextCloud, stopAndError. Event-driven trigger; 32 nodes.