Sync self-hosted workflow backups to GitHub for version control
Ready for 3.0Ready for 3.0. This template uses no nodes that n8n 3.0 removes. No removed nodes, versions or helpers found. Static check, last run 2026-10-19.
What this workflow does
This workflow has 14 nodes and runs on a schedule (every day). Along the way it connects GitHub.
How it runs
Trigger: On a schedule (every day).
- List Files in GitHub Repo (GitHub): list (file)
- Collect GitHub Filenames (Aggregate): combines items into one
- Fetch All n8n Workflows (n8n): uses n8n
- Filter Changed/New Workflows (Code): runs custom JavaScript code
- Convert Workflow to JSON File (Convert to File): converts data to a file (to json)
- Encode as Base (Extract from File): extracts data from a file (binary to propery)
- Build Filename & Commit Date (Edit Fields (Set)): sets 2 fields: commitDate, fileName
- File Already Exists in Repo? (If): checks a condition and branches into true / false
- Update Existing File (GitHub): edit (file)
- Create New File (GitHub): work with file
…plus 3 more steps. See the full node list below.
Services it uses
Before you upgrade to n8n 3.0
Nothing in this workflow is removed in n8n 3.0, so it should import and run after the upgrade.
Nodes used (9)
- Schedule Trigger
n8n-nodes-base.scheduleTrigger - GitHub
n8n-nodes-base.github - Aggregate
n8n-nodes-base.aggregate - n8n
n8n-nodes-base.n8n - Code
n8n-nodes-base.code - Convert to File
n8n-nodes-base.convertToFile - Extract from File
n8n-nodes-base.extractFromFile - Edit Fields (Set)
n8n-nodes-base.set - If
n8n-nodes-base.if
From the author
Automatically back up and sync your n8n workflows to GitHub with unlimited version control. This workflow ensures your repository always reflects the latest state of your n8n instance by creating, updating, and deleting workflow files as needed. Ideal for…