This workflow corresponds to n8n.io template #9351 — 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 →
{
"meta": {
"templateCredsSetupCompleted": true
},
"nodes": [
{
"id": "",
"name": "Execute sub-process",
"type": "n8n-nodes-base.executeWorkflow",
"onError": "continueErrorOutput",
"position": [
3232,
96
],
"parameters": {},
"typeVersion": 1.2
},
{
"id": "",
"name": "Get Sub-workflow Name",
"type": "n8n-nodes-base.n8n",
"position": [
3440,
272
],
"parameters": {},
"typeVersion": 1
},
{
"id": "",
"name": "Sticky Note3",
"type": "n8n-nodes-base.stickyNote",
"position": [
2768,
-256
],
"parameters": {
"content": ""
},
"typeVersion": 1
},
{
"id": "",
"name": "Append Planning File",
"type": "n8n-nodes-base.readWriteFile",
"position": [
3856,
96
],
"parameters": {},
"typeVersion": 1
},
{
"id": "",
"name": "Read Planning File",
"type": "n8n-nodes-base.readWriteFile",
"position": [
4064,
96
],
"parameters": {},
"typeVersion": 1
},
{
"id": "",
"name": "ERROR: Execute Sub-worflow",
"type": "n8n-nodes-base.stopAndError",
"position": [
3648,
272
],
"parameters": {},
"typeVersion": 1
},
{
"id": "",
"name": "Monitoring",
"type": "n8n-nodes-base.code",
"onError": "continueErrorOutput",
"position": [
3648,
96
],
"parameters": {},
"typeVersion": 2
},
{
"id": "",
"name": "ERROR: Monitoring",
"type": "n8n-nodes-base.stopAndError",
"position": [
3856,
272
],
"parameters": {},
"typeVersion": 1
},
{
"id": "",
"name": "Schedule Trigger",
"type": "n8n-nodes-base.scheduleTrigger",
"notes": "At 1am every day (default",
"position": [
1104,
0
],
"parameters": {},
"notesInFlow": true,
"typeVersion": 1.2
},
{
"id": "",
"name": "Go/no go",
"type": "n8n-nodes-base.switch",
"position": [
2384,
0
],
"parameters": {},
"typeVersion": 3.2
},
{
"id": "",
"name": "Daily Scheduler",
"type": "n8n-nodes-base.code",
"onError": "continueErrorOutput",
"position": [
1536,
0
],
"parameters": {},
"typeVersion": 2
},
{
"id": "",
"name": "Init",
"type": "n8n-nodes-base.code",
"position": [
1312,
0
],
"parameters": {},
"typeVersion": 2
},
{
"id": "",
"name": "NOTHING Planned Email",
"type": "n8n-nodes-base.emailSend",
"position": [
2592,
96
],
"parameters": {},
"typeVersion": 2.1
},
{
"id": "",
"name": "Sticky Note",
"type": "n8n-nodes-base.stickyNote",
"position": [
1040,
-256
],
"parameters": {
"content": ""
},
"typeVersion": 1
},
{
"id": "",
"name": "Sticky Note1",
"type": "n8n-nodes-base.stickyNote",
"position": [
1488,
-256
],
"parameters": {
"content": ""
},
"typeVersion": 1
},
{
"id": "",
"name": "Sticky Note2",
"type": "n8n-nodes-base.stickyNote",
"position": [
1920,
-256
],
"parameters": {
"content": ""
},
"typeVersion": 1
},
{
"id": "",
"name": "Write Planning File",
"type": "n8n-nodes-base.readWriteFile",
"position": [
2176,
0
],
"parameters": {},
"typeVersion": 1
},
{
"id": "",
"name": "Send planning",
"type": "n8n-nodes-base.emailSend",
"position": [
1744,
-96
],
"parameters": {},
"typeVersion": 2.1
},
{
"id": "",
"name": "Write Log File",
"type": "n8n-nodes-base.readWriteFile",
"position": [
1968,
0
],
"parameters": {},
"typeVersion": 1
},
{
"id": "",
"name": "Sticky Note5",
"type": "n8n-nodes-base.stickyNote",
"position": [
1040,
-720
],
"parameters": {
"content": ""
},
"typeVersion": 1
},
{
"id": "",
"name": "Split Out",
"type": "n8n-nodes-base.splitOut",
"position": [
2816,
0
],
"parameters": {},
"typeVersion": 1
},
{
"id": "",
"name": "ERROR: Daily Scheduler",
"type": "n8n-nodes-base.stopAndError",
"position": [
1744,
96
],
"parameters": {},
"typeVersion": 1
},
{
"id": "",
"name": "FINAL SUCCESS Email",
"type": "n8n-nodes-base.emailSend",
"position": [
5584,
16
],
"parameters": {},
"typeVersion": 2.1
},
{
"id": "",
"name": "Read Final Planning File",
"type": "n8n-nodes-base.readWriteFile",
"position": [
4960,
-128
],
"parameters": {},
"typeVersion": 1
},
{
"id": "",
"name": "Sticky Note6",
"type": "n8n-nodes-base.stickyNote",
"position": [
4688,
-256
],
"parameters": {
"content": ""
},
"typeVersion": 1
},
{
"id": "",
"name": "Loop Over Items",
"type": "n8n-nodes-base.splitInBatches",
"position": [
3024,
0
],
"parameters": {},
"typeVersion": 3
},
{
"id": "",
"name": "LOOP SUCCESS email",
"type": "n8n-nodes-base.emailSend",
"notes": "Use $env after Split",
"position": [
4272,
96
],
"parameters": {},
"notesInFlow": true,
"typeVersion": 2.1
},
{
"id": "",
"name": "Aggregate",
"type": "n8n-nodes-base.aggregate",
"position": [
4752,
0
],
"parameters": {},
"typeVersion": 1
},
{
"id": "",
"name": "Return Monitoring Data",
"type": "n8n-nodes-base.code",
"position": [
4480,
272
],
"parameters": {},
"typeVersion": 2
},
{
"id": "",
"name": "Merge",
"type": "n8n-nodes-base.merge",
"position": [
5376,
0
],
"parameters": {},
"typeVersion": 3.2
},
{
"id": "",
"name": "Extract from File",
"type": "n8n-nodes-base.extractFromFile",
"position": [
5168,
16
],
"parameters": {},
"typeVersion": 1
},
{
"id": "985459e2-c127-404b-ad8f-fdd02f6678dd",
"name": "Read Log File",
"type": "n8n-nodes-base.readWriteFile",
"position": [
4960,
176
],
"parameters": {},
"typeVersion": 1
}
],
"connections": {
"Init": {
"main": [
[
{
"node": "Daily Scheduler",
"type": "main",
"index": 0
}
]
]
},
"Merge": {
"main": [
[
{
"node": "FINAL SUCCESS Email",
"type": "main",
"index": 0
}
]
]
},
"Go/no go": {
"main": [
[
{
"node": "Split Out",
"type": "main",
"index": 0
}
],
[
{
"node": "NOTHING Planned Email",
"type": "main",
"index": 0
}
]
]
},
"Aggregate": {
"main": [
[
{
"node": "Read Final Planning File",
"type": "main",
"index": 0
},
{
"node": "Read Log File",
"type": "main",
"index": 0
}
]
]
},
"Split Out": {
"main": [
[
{
"node": "Loop Over Items",
"type": "main",
"index": 0
}
]
]
},
"Monitoring": {
"main": [
[
{
"node": "Append Planning File",
"type": "main",
"index": 0
}
],
[
{
"node": "ERROR: Monitoring",
"type": "main",
"index": 0
}
]
]
},
"Read Log File": {
"main": [
[
{
"node": "Merge",
"type": "main",
"index": 2
}
]
]
},
"Write Log File": {
"main": [
[
{
"node": "Write Planning File",
"type": "main",
"index": 0
}
]
]
},
"Daily Scheduler": {
"main": [
[
{
"node": "Send planning",
"type": "main",
"index": 0
},
{
"node": "Write Log File",
"type": "main",
"index": 0
}
],
[
{
"node": "ERROR: Daily Scheduler",
"type": "main",
"index": 0
}
]
]
},
"Loop Over Items": {
"main": [
[
{
"node": "Aggregate",
"type": "main",
"index": 0
}
],
[
{
"node": "Execute sub-process",
"type": "main",
"index": 0
}
]
]
},
"Schedule Trigger": {
"main": [
[
{
"node": "Init",
"type": "main",
"index": 0
}
]
]
},
"Extract from File": {
"main": [
[
{
"node": "Merge",
"type": "main",
"index": 1
}
]
]
},
"LOOP SUCCESS email": {
"main": [
[
{
"node": "Return Monitoring Data",
"type": "main",
"index": 0
}
]
]
},
"Read Planning File": {
"main": [
[
{
"node": "LOOP SUCCESS email",
"type": "main",
"index": 0
}
]
]
},
"Execute sub-process": {
"main": [
[
{
"node": "Monitoring",
"type": "main",
"index": 0
}
],
[
{
"node": "Get Sub-workflow Name",
"type": "main",
"index": 0
}
]
]
},
"Write Planning File": {
"main": [
[
{
"node": "Go/no go",
"type": "main",
"index": 0
}
]
]
},
"Append Planning File": {
"main": [
[
{
"node": "Read Planning File",
"type": "main",
"index": 0
}
]
]
},
"Get Sub-workflow Name": {
"main": [
[
{
"node": "ERROR: Execute Sub-worflow",
"type": "main",
"index": 0
}
]
]
},
"Return Monitoring Data": {
"main": [
[
{
"node": "Loop Over Items",
"type": "main",
"index": 0
}
]
]
},
"Read Final Planning File": {
"main": [
[
{
"node": "Merge",
"type": "main",
"index": 0
},
{
"node": "Extract from File",
"type": "main",
"index": 0
}
]
]
}
}
}
For the full experience including quality scoring and batch install features for each workflow upgrade to Pro
About this workflow
Perfect for content publishing with organic scheduling patterns, social media automation, API systems that need to avoid rate limiting, or any automation requiring randomised timing control across multiple periods.
Source: https://n8n.io/workflows/9351/ — 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.
Complete backup solution that saves both workflows and credentials to local/server disk with optional FTP upload for off-site redundancy.
Perfect for disaster recovery or migrating between environments, this workflow automatically identifies your most recent FTP backup and provides a manual restore capability that intelligently excludes
This workflow automatically handles errors in your n8n workflows by: Detecting when an error occurs and capturing the error details Sending an email notification with the error message and affected no
> v2: Now it can read multiple types of LLM usages. Better dynamic approach for reading model usage.
Click here to access this Workflow for free.