
Template Visual Workflow Architecture v1.0
Description
Categories
⚙️ Automation
Nodes Used
n8n-nodes-base.setn8n-nodes-base.setn8n-nodes-base.setn8n-nodes-base.setn8n-nodes-base.coden8n-nodes-base.coden8n-nodes-base.noOpn8n-nodes-base.mergen8n-nodes-base.switchn8n-nodes-base.webhook
PriceKostenlos
Views0
Last Updated11/28/2025
workflow.json
{
"id": "UW1Si82XFg1xpKU6",
"meta": {
"instanceId": "b647f0ebd8b6d139faf3e6bcf7eb4e75bf2254b55299893f22d4aabb50ef1e9e",
"templateCredsSetupCompleted": true
},
"name": "Template Visual Workflow Architecture v1.0",
"tags": [
{
"id": "bPkcrK17uG3HMk6T",
"name": "🏷️ Template",
"createdAt": "2025-09-03T06:52:38.087Z",
"updatedAt": "2025-09-03T06:52:38.087Z"
},
{
"id": "v4mArge40MnxFxw5",
"name": "🟢 operational",
"createdAt": "2025-08-10T13:32:11.849Z",
"updatedAt": "2025-08-19T17:01:08.590Z"
}
],
"nodes": [
{
"id": "5f7c322b-52a4-4db7-b6b2-48ea3677ce61",
"name": "Manual",
"type": "n8n-nodes-base.manualTrigger",
"position": [
144,
-576
],
"parameters": {},
"typeVersion": 1
},
{
"id": "79c67797-8a0d-49d7-a8e1-ee173a31c9d8",
"name": "Sticky Note",
"type": "n8n-nodes-base.stickyNote",
"position": [
80,
-768
],
"parameters": {
"color": 7,
"width": 608,
"height": 944,
"content": "## Triggers\n- Normalized Inputs related to Sub-Workflow Trigger\n- All triggers converge into a **normliized node** that can then be universally referenced downstream"
},
"typeVersion": 1
},
{
"id": "f1dbe4af-c285-4913-8cf7-421eb2d46a84",
"name": "Sticky Note5",
"type": "n8n-nodes-base.stickyNote",
"position": [
720,
-768
],
"parameters": {
"color": 7,
"width": 816,
"height": 944,
"content": "## Collect or gather all data inputs needed\n- in simple workflows this might be very short or missing\n- this is the place to set any defaults for the workflow"
},
"typeVersion": 1
},
{
"id": "0113592d-14fc-4df8-836e-064e95cf339e",
"name": "Input | Combined",
"type": "n8n-nodes-base.merge",
"position": [
1360,
-336
],
"parameters": {
"mode": "combine",
"options": {},
"combineBy": "combineAll"
},
"typeVersion": 3.2
},
{
"id": "424e5d2c-460f-4f87-aa1f-9412c1fec23f",
"name": "Sticky Note6",
"type": "n8n-nodes-base.stickyNote",
"position": [
1808,
-768
],
"parameters": {
"color": 7,
"width": 656,
"height": 288,
"content": "## Business Logic A - working setup\n- with **working** setup"
},
"typeVersion": 1
},
{
"id": "b282594f-e3a5-478d-94d6-942c4051cdca",
"name": "Sticky Note7",
"type": "n8n-nodes-base.stickyNote",
"position": [
32,
-1264
],
"parameters": {
"color": 4,
"width": 2496,
"height": 1488,
"content": "# Key Objective of overall Workflow as a #-level Heading\n\n## Often useful:\n- Link or reference to the system triggering the workdlow"
},
"typeVersion": 1
},
{
"id": "d066cccc-3930-48ef-8c77-9d079ced82f2",
"name": "Search records",
"type": "n8n-nodes-base.airtable",
"position": [
1104,
-432
],
"parameters": {
"base": {
"__rl": true,
"mode": "list",
"value": "app4JwaENq0JKC1sm",
"cachedResultUrl": "https://airtable.com/app4JwaENq0JKC1sm",
"cachedResultName": "Testing"
},
"table": {
"__rl": true,
"mode": "list",
"value": "tblzRTsHDIBzqUnxY",
"cachedResultUrl": "https://airtable.com/app4JwaENq0JKC1sm/tblzRTsHDIBzqUnxY",
"cachedResultName": "User Date Dummy"
},
"options": {},
"operation": "search"
},
"credentials": {
"airtableTokenApi": {
"id": "IXLSqnoQYJKrtElS",
"name": "Airtable | Testing Base"
}
},
"typeVersion": 2.1
},
{
"id": "5e71007c-b8aa-4d48-984a-ae72c918ed12",
"name": "Sticky Note9",
"type": "n8n-nodes-base.stickyNote",
"position": [
80,
-1040
],
"parameters": {
"color": 7,
"width": 608,
"height": 256,
"content": "## Colorcoding for Nodes\n\n🟩 **Green** – Operational, runs in stable mode ✅ \n🟥 **Red** – Error / not operational ❌ \n🟧 **Orange** – Partly Operational ⚠️ (e.g warning or improvement needs) \n🟨 **Yellow** – Work in Progress 🛠️ \n🟦 **Blue** – User Input required 🙋 (at run time)\n⬛ **dark grey** – On Hold / Deprecated\n⬜ **White** – Neutral / inherits meaning of containing node\n"
},
"typeVersion": 1
},
{
"id": "7bb25024-9279-4175-a498-2987bf9daba2",
"name": "Sticky Note1",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1184,
-1264
],
"parameters": {
"color": 2,
"width": 1152,
"height": 608,
"content": "# START HERE\n\n# Best Practices for visual structuring & visual hierarchy of workflow\nThis template is meant to showcase typical aspects and a clean, maintainable and visual structure. \nIt does not provide and functionality, all nodes are for demonstration only.\n\n ➡️ Use this workflow as a template to start new workflows from.\n\n## Design Patterns:\n- Notes are **color coded** with a meaning as explained on right side in **\"Colorcoding for Nodes\"**\n(keeping the color coding info in the workflow often helps to keep it visible during development phase)\n- Each workflow contains typical phases for clean and maintainable code, they are **boxed within background nodes**\n\n## How to use this template\n- familirize yourself with the color coding and design patterns\n- go through workflow node by node, reasoning is mentioned within nodes where applicable\n"
},
"typeVersion": 1
},
{
"id": "91ebfd8e-5ca5-4ba4-9010-d3dd48e62d35",
"name": "Normalize Manual Trigger",
"type": "n8n-nodes-base.set",
"position": [
368,
-576
],
"parameters": {
"options": {},
"assignments": {
"assignments": []
},
"includeOtherFields": true
},
"typeVersion": 3.4
},
{
"id": "85d5a7ee-066b-4df2-b219-54cfd680ec11",
"name": "Trigger | Normalized",
"type": "n8n-nodes-base.set",
"notes": "Fields are normalized with the Sub-workflow trigger as defining the \"normalization\" standard ",
"position": [
656,
-336
],
"parameters": {
"options": {
"stripBinary": true
},
"assignments": {
"assignments": []
},
"includeOtherFields": true
},
"notesInFlow": true,
"typeVersion": 3.4
},
{
"id": "a36066b3-3122-48d1-8e67-b0925586dd74",
"name": "Triggered from other Workflow",
"type": "n8n-nodes-base.executeWorkflowTrigger",
"notes": "Make a note for triggering workflow(s) somewhere for easy debugging later.",
"position": [
144,
-336
],
"parameters": {
"workflowInputs": {
"values": [
{
"name": "someInput"
},
{
"name": "someOtherInput"
}
]
}
},
"notesInFlow": true,
"typeVersion": 1.1
},
{
"id": "d4ee827c-340f-4b67-a1e2-50713b37e09e",
"name": "General Webhook",
"type": "n8n-nodes-base.webhook",
"position": [
144,
-64
],
"webhookId": "f960a6c6-8916-44bd-aa90-b247d331afb8",
"parameters": {
"path": "f960a6c6-8916-44bd-aa90-b247d331afb8",
"options": {}
},
"typeVersion": 2.1
},
{
"id": "e4d2a068-d6fd-4041-a911-b47e87c9c0ec",
"name": "Normalize Webhook Trigger",
"type": "n8n-nodes-base.set",
"position": [
368,
-64
],
"parameters": {
"options": {},
"includeOtherFields": true
},
"typeVersion": 3.4
},
{
"id": "19eba4f8-0022-4bc8-a19f-3985be32061f",
"name": "Get Data From Google Sheets",
"type": "n8n-nodes-base.googleSheets",
"position": [
1104,
-240
],
"parameters": {
"options": {},
"sheetName": {
"__rl": true,
"mode": "id",
"value": "={{ $json.googleSheetId }}"
},
"documentId": {
"__rl": true,
"mode": "id",
"value": "={{ $json.googleDocId }}"
}
},
"credentials": {
"googleSheetsOAuth2Api": {
"id": "2W4H38P2FaCFoGKw",
"name": "n8n Google Sheets - OAuth2.0 v01"
}
},
"typeVersion": 4.7
},
{
"id": "15d9bb5f-cdae-4884-a255-e6a84006359c",
"name": "Set Defaults",
"type": "n8n-nodes-base.set",
"position": [
880,
-336
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "20fbf030-1ccd-4be7-91b0-2fb6b6cc3e59",
"name": "googleDocId",
"type": "string",
"value": "docABC"
},
{
"id": "be994eaa-423c-4a85-a4b0-4e994a797714",
"name": "googleSheetId",
"type": "string",
"value": "sheetID123"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "040cf859-5b90-47ea-bd02-1e834696164a",
"name": "Sticky Note8",
"type": "n8n-nodes-base.stickyNote",
"position": [
1808,
-432
],
"parameters": {
"width": 656,
"height": 272,
"content": "## Business Logic B - currently in development\n- with **working** setup"
},
"typeVersion": 1
},
{
"id": "1c880ade-1be1-404b-a409-3ca1d69b09c0",
"name": "Business Logic Single or Multi step1",
"type": "n8n-nodes-base.code",
"position": [
1872,
-336
],
"parameters": {
"jsCode": "return [\n {\n json: {\n result: \"some use case specific output\"\n }\n }\n];\n"
},
"typeVersion": 2
},
{
"id": "24280bf1-3e6a-4e85-9581-040bc27965e5",
"name": "Business Logic Single or Multi step",
"type": "n8n-nodes-base.code",
"position": [
1872,
-656
],
"parameters": {
"jsCode": "return [\n {\n json: {\n result: \"some use case specific output\"\n }\n }\n];\n"
},
"typeVersion": 2
},
{
"id": "386d9501-e4c9-40cf-b1b5-6b3ed86dccdc",
"name": "Sticky Note10",
"type": "n8n-nodes-base.stickyNote",
"position": [
1808,
-112
],
"parameters": {
"color": 6,
"width": 656,
"height": 288,
"content": "## Business Logic C - Old Version, not used any more\n- to keep fors ome time \n- should finally be managed in versions or be deleted"
},
"typeVersion": 1
},
{
"id": "1ddba747-5567-4e65-a6d2-ddc12828e683",
"name": "Some Old Version",
"type": "n8n-nodes-base.noOp",
"position": [
1872,
32
],
"parameters": {},
"typeVersion": 1
},
{
"id": "049b807e-9b07-4ea1-9e26-4f6e4371bfd6",
"name": "Switch",
"type": "n8n-nodes-base.switch",
"position": [
1584,
-352
],
"parameters": {
"rules": {
"values": [
{
"outputKey": "Production",
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": false,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "effed10c-279f-48b2-a981-1a1a77a9d4a2",
"operator": {
"type": "string",
"operation": "equals"
},
"leftValue": "={{ $execution.mode }}",
"rightValue": "production"
}
]
},
"renameOutput": true
},
{
"outputKey": "Development",
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": false,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "89d5f781-9e89-4682-9f30-d261b8511bc4",
"operator": {
"name": "filter.operator.equals",
"type": "string",
"operation": "equals"
},
"leftValue": "={{ $execution.mode }}",
"rightValue": "test"
}
]
},
"renameOutput": true
}
]
},
"options": {
"ignoreCase": true,
"fallbackOutput": "extra"
}
},
"typeVersion": 3.3
}
],
"active": false,
"pinData": {},
"settings": {
"callerPolicy": "workflowsFromSameOwner",
"errorWorkflow": "YEvXt4fjXiqx3zZt",
"executionOrder": "v1",
"executionTimeout": 180,
"timeSavedPerExecution": 1
},
"versionId": "ae1e6fac-9bf6-47ab-bf36-9457ed4833af",
"connections": {
"Manual": {
"main": [
[
{
"node": "Normalize Manual Trigger",
"type": "main",
"index": 0
}
]
]
},
"Switch": {
"main": [
[
{
"node": "Business Logic Single or Multi step",
"type": "main",
"index": 0
}
],
[
{
"node": "Business Logic Single or Multi step1",
"type": "main",
"index": 0
}
],
[
{
"node": "Some Old Version",
"type": "main",
"index": 0
}
]
]
},
"Set Defaults": {
"main": [
[
{
"node": "Search records",
"type": "main",
"index": 0
},
{
"node": "Get Data From Google Sheets",
"type": "main",
"index": 0
}
]
]
},
"Search records": {
"main": [
[
{
"node": "Input | Combined",
"type": "main",
"index": 0
}
]
]
},
"General Webhook": {
"main": [
[
{
"node": "Normalize Webhook Trigger",
"type": "main",
"index": 0
}
]
]
},
"Input | Combined": {
"main": [
[
{
"node": "Switch",
"type": "main",
"index": 0
}
]
]
},
"Trigger | Normalized": {
"main": [
[
{
"node": "Set Defaults",
"type": "main",
"index": 0
}
]
]
},
"Normalize Manual Trigger": {
"main": [
[
{
"node": "Trigger | Normalized",
"type": "main",
"index": 0
}
]
]
},
"Normalize Webhook Trigger": {
"main": [
[
{
"node": "Trigger | Normalized",
"type": "main",
"index": 0
}
]
]
},
"Get Data From Google Sheets": {
"main": [
[
{
"node": "Input | Combined",
"type": "main",
"index": 1
}
]
]
},
"Triggered from other Workflow": {
"main": [
[
{
"node": "Trigger | Normalized",
"type": "main",
"index": 0
}
]
]
}
}
}