This workflow corresponds to n8n.io template #6947 — 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": "0fe79c1a-bdb9-41d5-8306-dcff0e5eff64",
"name": "When clicking \u2018Test workflow\u2019",
"type": "n8n-nodes-base.manualTrigger",
"position": [
384,
144
],
"parameters": {},
"typeVersion": 1
},
{
"id": "d67fc8d4-42b0-4183-a64b-1ef550aaea71",
"name": "GET - Workflows",
"type": "n8n-nodes-base.n8n",
"position": [
464,
832
],
"parameters": {
"filters": {},
"requestOptions": {}
},
"credentials": {
"n8nApi": {
"name": "<your credential>"
}
},
"typeVersion": 1
},
{
"id": "3c90ef38-0341-4493-80f1-d85f112dbe9f",
"name": "CREATE - Workflow",
"type": "n8n-nodes-base.n8n",
"notes": "{\n \"name\": \"{{ $json.name }}\",\n \"nodes\": {{ JSON.stringify($json[\"nodes\"]) }},\n \"connections\": {{ JSON.stringify($json[\"connections\"] || {}) }}\n}",
"position": [
1344,
864
],
"parameters": {
"operation": "create",
"requestOptions": {},
"workflowObject": "={\n \"name\": \"{{ $('today_prefix').item.json.formattedDate + $json.name }}\",\n \"nodes\": {{ JSON.stringify($json[\"nodes\"]) }},\n \"connections\": {{ JSON.stringify($json[\"connections\"] || {}) }}\n}"
},
"credentials": {
"n8nApi": {
"name": "<your credential>"
}
},
"typeVersion": 1
},
{
"id": "f521fd95-a581-4e7d-8c03-f5846ec2b859",
"name": "Loop Over Items",
"type": "n8n-nodes-base.splitInBatches",
"position": [
1120,
832
],
"parameters": {
"options": {}
},
"typeVersion": 3
},
{
"id": "b2f9180c-9ae4-4114-aba7-0e4803598b61",
"name": "Sticky Note",
"type": "n8n-nodes-base.stickyNote",
"position": [
400,
752
],
"parameters": {
"color": 6,
"width": 220,
"content": "### Source Select All"
},
"typeVersion": 1
},
{
"id": "3acd266a-e555-4501-9ef2-6e1a4d7be5ee",
"name": "Sticky Note2",
"type": "n8n-nodes-base.stickyNote",
"position": [
1232,
784
],
"parameters": {
"color": 3,
"width": 540,
"height": 300,
"content": "### Destination Save Today\nworflowname becomes YYYY-MM-DD_workflowname"
},
"typeVersion": 1
},
{
"id": "ed59a2e4-c489-4359-bbf4-89dfc88424d9",
"name": "GET - Destination Workflows",
"type": "n8n-nodes-base.n8n",
"position": [
912,
512
],
"parameters": {
"limit": 200,
"filters": {},
"returnAll": false,
"requestOptions": {
"batching": {
"batch": {}
}
}
},
"credentials": {
"n8nApi": {
"name": "<your credential>"
}
},
"typeVersion": 1
},
{
"id": "655bb1aa-306e-4f18-8bde-0706684f5d5a",
"name": "Split Out Workflows",
"type": "n8n-nodes-base.splitOut",
"position": [
912,
832
],
"parameters": {
"include": "allOtherFields",
"options": {},
"fieldToSplitOut": "id"
},
"typeVersion": 1
},
{
"id": "4e302ca7-31d4-47d9-a5f0-df4997b9dd5b",
"name": "Split Out Workflows1",
"type": "n8n-nodes-base.splitOut",
"position": [
1152,
512
],
"parameters": {
"include": "allOtherFields",
"options": {},
"fieldToSplitOut": "id"
},
"typeVersion": 1
},
{
"id": "6bcc9cc7-cb70-41aa-81d9-8a76d9fd0c88",
"name": "Sticky Note3",
"type": "n8n-nodes-base.stickyNote",
"position": [
-256,
-80
],
"parameters": {
"color": 7,
"width": 576,
"height": 1312,
"content": "# Copy n8n workflows between n8n instances\nInspired by [Alex Kim's workflow](https://n8n.io/workflows/3048-clone-n8n-workflows-between-instances-using-n8n-api/), this version adds the ability to keep multiple versions of the same workflow on the destination instance. Each copied workflow\u2019s name is prefixed with the date (`YYYY_MM_DD_`), enabling simple version tracking. Process details and workflow counts are recorded centrally in Notion.\n\n## How it works\n\n- Workflows from the **source n8n instance** are copied to the **destination** using the n8n API node.\n- On the destination, each workflow name is prefixed with the current date (e.g., `2025_08_03_PDF Summarizer`), so you can keep multiple daily versions.\n- The workflow tracks and saves:\n - The date of execution.\n - Number of workflows processed.\n - Both details are recorded in Notion.\n\n### Rolling retention policy example:\n\n- **Day 1:** Workflows are saved with `2025_08_03_` prefix.\n- **Day 2:** New set saved with `2025_08_04_`.\n- **Day 3:** Day 1\u2019s set is deleted, new set saved as `2025_08_05_`.\n- To keep more days, adjust the \u201cSubtract From Date\u201d node.\n\n## How to use\n\n1. **Create a Notion database** with one page and three fields:\n - `sequence`: Should contain `\"prefix\"`.\n - `Value`: Today's date as `YYYY_MM_DD_`.\n - `Comment`: Number of saved workflows.\n\n2. **Configure the Notion node**:\n - Enter your Notion credentials.\n - Link to the created database/page.\n\n3. **Update the \"Subtract From Date\" node**:\n - Set how many days\u2019 versions you want to keep (default: 2 days).\n - Set the limit to 1 in the \"Limit\" node for testing.\n4. **Input credentials** for both source and destination n8n instances.\n\n## Requirements\n\n- **Notion** for tracking execution date and workflow count.\n- **n8n API Keys** for both source and destination instances.\n- **n8n version** this workflow was tested on 1.103.2 (Ubuntu)\n- Ensure you have the necessary **API permissions** (read, create, delete workflows) for both n8n instances.\n\n## Need Help?\n\nContact me on LinkedIn or ask in the [Forum](https://community.n8n.io/)!\n\n\n"
},
"typeVersion": 1
},
{
"id": "d1374fb8-78ac-480e-a30b-90e723cd05c2",
"name": "Wait",
"type": "n8n-nodes-base.wait",
"position": [
1568,
928
],
"parameters": {
"amount": 1
},
"typeVersion": 1.1
},
{
"id": "04b6f8a9-1e5f-4ef4-bc50-7899732387e5",
"name": "Limit",
"type": "n8n-nodes-base.limit",
"disabled": true,
"position": [
688,
832
],
"parameters": {},
"typeVersion": 1
},
{
"id": "4190da9c-a51b-45f2-92fd-4bcb8e8ff4f3",
"name": "Filter",
"type": "n8n-nodes-base.filter",
"notes": "{{ (() => $json.name.slice(0, 7))() }}",
"position": [
1360,
512
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "7bdc83bd-e9b3-4eaa-8154-4056fca3b390",
"operator": {
"name": "filter.operator.equals",
"type": "string",
"operation": "equals"
},
"leftValue": "={{ $json.name.slice(0, 11) }}",
"rightValue": "={{ $('yesterday_prefix').item.json.formattedDate }}"
}
]
}
},
"typeVersion": 2.2,
"alwaysOutputData": false
},
{
"id": "bbc9d2a5-f6fd-4800-99e3-f448856e39bf",
"name": "today",
"type": "n8n-nodes-base.dateTime",
"position": [
608,
144
],
"parameters": {
"options": {}
},
"typeVersion": 2
},
{
"id": "c6e31672-e3d2-4f31-8af4-b10099f131f6",
"name": "yesterday",
"type": "n8n-nodes-base.dateTime",
"position": [
432,
512
],
"parameters": {
"options": {},
"duration": 2,
"magnitude": "={{ $('today').item.json.currentDate }}",
"operation": "subtractFromDate"
},
"typeVersion": 2
},
{
"id": "9720d3b9-244d-4a44-9ebe-f4f80e14c7dd",
"name": "yesterday_prefix",
"type": "n8n-nodes-base.dateTime",
"position": [
688,
512
],
"parameters": {
"date": "={{ $json.newDate }}",
"format": "custom",
"options": {},
"operation": "formatDate",
"customFormat": "yyyy-MM-dd_"
},
"typeVersion": 2
},
{
"id": "ab21f9b5-21b4-432a-9fe3-eb28039c49a1",
"name": "today_prefix",
"type": "n8n-nodes-base.dateTime",
"position": [
832,
144
],
"parameters": {
"date": "={{ $json.currentDate }}",
"format": "custom",
"options": {},
"operation": "formatDate",
"customFormat": "yyyy-MM-dd_"
},
"typeVersion": 2
},
{
"id": "eeec891a-cad2-449c-8f4d-81d887a4efbe",
"name": "Sticky Note4",
"type": "n8n-nodes-base.stickyNote",
"position": [
1328,
368
],
"parameters": {
"color": 3,
"width": 460,
"content": "### Destination Delete the day before yesterday\nWorkflows starting with YYYY-MM-DD_"
},
"typeVersion": 1
},
{
"id": "b5ea5dad-7ff0-41d7-a718-9623d190e508",
"name": "Sticky Note5",
"type": "n8n-nodes-base.stickyNote",
"position": [
864,
368
],
"parameters": {
"color": 3,
"width": 220,
"content": "### Destination Select All"
},
"typeVersion": 1
},
{
"id": "2209cca8-310f-4313-bf3e-3218ffc3bb0a",
"name": "Sticky Note6",
"type": "n8n-nodes-base.stickyNote",
"position": [
368,
368
],
"parameters": {
"color": 7,
"width": 220,
"content": "### Substract From Date\nSubstract 2 (duration) for the day before yesterday so you have 2 days of online backup"
},
"typeVersion": 1
},
{
"id": "8c0eabb2-a286-4931-a821-3602581dc367",
"name": "Sticky Note7",
"type": "n8n-nodes-base.stickyNote",
"position": [
624,
368
],
"parameters": {
"color": 7,
"width": 220,
"content": "### YYYY-MM-DD_\nSetup the custom format with yyyy-MM-dd_\n"
},
"typeVersion": 1
},
{
"id": "7b99a424-b2dd-463b-898d-8bd5e111f139",
"name": "Sticky Note8",
"type": "n8n-nodes-base.stickyNote",
"position": [
640,
752
],
"parameters": {
"color": 3,
"width": 220,
"content": "### Try with 1 first"
},
"typeVersion": 1
},
{
"id": "885d90ef-3972-4c7e-b8df-ee1ab29fae52",
"name": "Notion",
"type": "n8n-nodes-base.notion",
"position": [
1584,
672
],
"parameters": {
"pageId": {
"__rl": true,
"mode": "id",
"value": "1f9d79a8-067c-802a-8098-db9052f7a1db"
},
"options": {},
"resource": "databasePage",
"operation": "update",
"propertiesUi": {
"propertyValues": [
{
"key": "Value|rich_text",
"textContent": "={{ $('today_prefix').item.json.formattedDate }}"
},
{
"key": "Comment|rich_text",
"textContent": "={{ $items().length.toString() }}"
}
]
}
},
"credentials": {
"notionApi": {
"name": "<your credential>"
}
},
"executeOnce": true,
"typeVersion": 2.2
},
{
"id": "138a534c-a92b-40d9-b345-a6da7f3a6e05",
"name": "Notion1",
"type": "n8n-nodes-base.notion",
"position": [
1040,
144
],
"parameters": {
"pageId": {
"__rl": true,
"mode": "id",
"value": "1f9d79a8-067c-802a-8098-db9052f7a1db"
},
"resource": "databasePage",
"operation": "get"
},
"credentials": {
"notionApi": {
"name": "<your credential>"
}
},
"typeVersion": 2.2
},
{
"id": "b00a1e8f-c08c-40af-ac3d-717d9e38d28a",
"name": "If",
"type": "n8n-nodes-base.if",
"position": [
1264,
144
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "35c3f4b7-55a7-4d3f-aab9-0dca9f9ed795",
"operator": {
"type": "string",
"operation": "equals"
},
"leftValue": "={{ $json.property_value }}",
"rightValue": "={{ $('today_prefix').item.json.formattedDate }}"
}
]
}
},
"typeVersion": 2.2
},
{
"id": "052b251c-4c30-46e0-bc90-4007e5d193f2",
"name": "backup_already_done",
"type": "n8n-nodes-base.noOp",
"position": [
1488,
48
],
"parameters": {},
"typeVersion": 1
},
{
"id": "1f3a05e2-56ff-4745-aba6-6c29737ac635",
"name": "Sticky Note9",
"type": "n8n-nodes-base.stickyNote",
"position": [
768,
0
],
"parameters": {
"color": 7,
"width": 220,
"height": 320,
"content": "### YYYY-MM-DD_\nThis is the prefix added to workflow name"
},
"typeVersion": 1
},
{
"id": "bb0611c5-1de3-4306-a17e-27dfc670e052",
"name": "n8n_destination",
"type": "n8n-nodes-base.n8n",
"position": [
1648,
512
],
"parameters": {
"operation": "delete",
"workflowId": {
"__rl": true,
"mode": "id",
"value": "={{ $('GET - Destination Workflows').item.json.id }}"
},
"requestOptions": {}
},
"credentials": {
"n8nApi": {
"name": "<your credential>"
}
},
"typeVersion": 1
}
],
"connections": {
"If": {
"main": [
[
{
"node": "backup_already_done",
"type": "main",
"index": 0
}
],
[
{
"node": "yesterday",
"type": "main",
"index": 0
}
]
]
},
"Wait": {
"main": [
[
{
"node": "Loop Over Items",
"type": "main",
"index": 0
}
]
]
},
"Limit": {
"main": [
[
{
"node": "Split Out Workflows",
"type": "main",
"index": 0
}
]
]
},
"today": {
"main": [
[
{
"node": "today_prefix",
"type": "main",
"index": 0
}
]
]
},
"Filter": {
"main": [
[
{
"node": "n8n_destination",
"type": "main",
"index": 0
}
]
]
},
"Notion1": {
"main": [
[
{
"node": "If",
"type": "main",
"index": 0
}
]
]
},
"yesterday": {
"main": [
[
{
"node": "yesterday_prefix",
"type": "main",
"index": 0
},
{
"node": "GET - Workflows",
"type": "main",
"index": 0
}
]
]
},
"today_prefix": {
"main": [
[
{
"node": "Notion1",
"type": "main",
"index": 0
}
]
]
},
"GET - Workflows": {
"main": [
[
{
"node": "Limit",
"type": "main",
"index": 0
}
]
]
},
"Loop Over Items": {
"main": [
[
{
"node": "Notion",
"type": "main",
"index": 0
}
],
[
{
"node": "CREATE - Workflow",
"type": "main",
"index": 0
}
]
]
},
"n8n_destination": {
"main": [
[]
]
},
"yesterday_prefix": {
"main": [
[
{
"node": "GET - Destination Workflows",
"type": "main",
"index": 0
}
]
]
},
"CREATE - Workflow": {
"main": [
[
{
"node": "Wait",
"type": "main",
"index": 0
}
]
]
},
"Split Out Workflows": {
"main": [
[
{
"node": "Loop Over Items",
"type": "main",
"index": 0
}
]
]
},
"Split Out Workflows1": {
"main": [
[
{
"node": "Filter",
"type": "main",
"index": 0
}
]
]
},
"GET - Destination Workflows": {
"main": [
[
{
"node": "Split Out Workflows1",
"type": "main",
"index": 0
}
]
]
},
"When clicking \u2018Test workflow\u2019": {
"main": [
[
{
"node": "today",
"type": "main",
"index": 0
}
]
]
}
}
}
Credentials you'll need
Each integration node will prompt for credentials when you import. We strip credential IDs before publishing — you'll add your own.
n8nApinotionApi
For the full experience including quality scoring and batch install features for each workflow upgrade to Pro
About this workflow
Inspired by Alex Kim's workflow, this version adds the ability to keep multiple versions of the same workflow on the destination instance. Each copied workflow’s name is prefixed with the date (), enabling simple version tracking. Process details and workflow counts are recorded…
Source: https://n8n.io/workflows/6947/ — 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.
Automate sales call analysis and store structured insights in Notion with AI-powered intelligence.
Everyone organizing him/herself by using a notion database for tasks but losing track on some important tasks having a deadline. The weekly reminder helps you to not forget about your notion tasks. Th
Wait Splitout. Uses executeWorkflowTrigger, notion, stickyNote, splitOut. Event-driven trigger; 24 nodes.
Wait Splitout. Uses executeWorkflowTrigger, stickyNote, notion, splitOut. Event-driven trigger; 19 nodes.
Automate product feedback extraction from AI-analyzed sales calls and store structured insights in Notion for data-driven product decisions.