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 →
{
"id": "ynTqojfUnGpG2rBP",
"name": "Merge multiple runs into one",
"tags": [],
"nodes": [
{
"id": "a42e0906-2d44-4b9b-b4fa-63ab3c2a6abf",
"name": "On clicking 'execute'",
"type": "n8n-nodes-base.manualTrigger",
"position": [
120,
340
],
"parameters": {},
"typeVersion": 1
},
{
"id": "220df874-90fd-4cb0-aea5-f238d33a7bcc",
"name": "Customer Datastore",
"type": "n8n-nodes-base.n8nTrainingCustomerDatastore",
"position": [
340,
340
],
"parameters": {
"operation": "getAllPeople"
},
"typeVersion": 1
},
{
"id": "e2819ff4-9ba8-4af4-8249-1edc018493ff",
"name": "Wait",
"type": "n8n-nodes-base.wait",
"position": [
780,
340
],
"parameters": {
"unit": "seconds"
},
"typeVersion": 1
},
{
"id": "e4c50762-d7f0-420b-8043-44060cd51451",
"name": "Done looping?",
"type": "n8n-nodes-base.if",
"position": [
1220,
340
],
"parameters": {
"conditions": {
"boolean": [
{
"value1": "={{$node[\"Loop Over Items\"].context[\"noItemsLeft\"]}}",
"value2": true
}
]
}
},
"typeVersion": 1
},
{
"id": "9e506657-6788-40f1-9fa0-55bd9db77ecc",
"name": "Merge loop items",
"type": "n8n-nodes-base.code",
"position": [
1440,
340
],
"parameters": {
"jsCode": "let results = [],\n i = 0;\n\ndo {\n try {\n results = results.concat($(\"NoOp\").all(0, i));\n } catch (error) {\n return results;\n }\n i++;\n} while (true);\n"
},
"typeVersion": 1
},
{
"id": "1b6dcb04-5945-48fb-925e-370ee1154df7",
"name": "NoOp",
"type": "n8n-nodes-base.noOp",
"position": [
1000,
340
],
"parameters": {},
"typeVersion": 1
},
{
"id": "28809ed2-1465-4a12-b11b-fe1498b7e045",
"name": "Loop Over Items",
"type": "n8n-nodes-base.splitInBatches",
"position": [
600,
340
],
"parameters": {
"options": {}
},
"typeVersion": 3
}
],
"active": false,
"settings": {
"executionOrder": "v1"
},
"versionId": "0fd71e8c-7938-43a3-acec-fe746a183f9c",
"connections": {
"NoOp": {
"main": [
[
{
"node": "Done looping?",
"type": "main",
"index": 0
}
]
]
},
"Wait": {
"main": [
[
{
"node": "NoOp",
"type": "main",
"index": 0
}
]
]
},
"Done looping?": {
"main": [
[
{
"node": "Merge loop items",
"type": "main",
"index": 0
}
],
[
{
"node": "Loop Over Items",
"type": "main",
"index": 0
}
]
]
},
"Loop Over Items": {
"main": [
[],
[
{
"node": "Wait",
"type": "main",
"index": 0
}
]
]
},
"Customer Datastore": {
"main": [
[
{
"node": "Loop Over Items",
"type": "main",
"index": 0
}
]
]
},
"On clicking 'execute'": {
"main": [
[
{
"node": "Customer Datastore",
"type": "main",
"index": 0
}
]
]
}
}
}
For the full experience including quality scoring and batch install features for each workflow upgrade to Pro
About this workflow
Merge multiple runs into one. Uses manualTrigger, n8nTrainingCustomerDatastore, noOp, splitInBatches. Event-driven trigger; 7 nodes.
Source: https://github.com/Zie619/n8n-workflows — 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.
Items length test. Uses stopAndError, n8nTrainingCustomerDatastore. Event-driven trigger; 26 nodes.
Rate Limiting And Waiting For External Events. Uses manualTrigger, stickyNote, noOp, n8nTrainingCustomerDatastore. Event-driven trigger; 13 nodes.
Workflow 1749. Uses n8nTrainingCustomerDatastore, n8nTrainingCustomerMessenger. Event-driven trigger; 13 nodes.
1749. Uses n8nTrainingCustomerDatastore, n8nTrainingCustomerMessenger. Event-driven trigger; 13 nodes.
Avoid Rate Limiting By Batching Http Requests. Uses manualTrigger, n8nTrainingCustomerDatastore, splitInBatches, httpRequest. Event-driven trigger; 6 nodes.