June 4, 2026
How to back up n8n workflows (3 ways, and the one I actually use)
n8n does not back itself up. If your instance dies, a workflow gets overwritten, or someone deletes the wrong node, what you can recover depends entirely on what you captured beforehand. Here are the three realistic ways to back up n8n workflows — and which one I actually use.
1. Manual JSON export
Open a workflow, download the JSON, save it somewhere. It's built-in and free, and it's fine for a one-off snapshot before a risky change.
The problem is that it relies on you remembering, every time, for every workflow. Across a real estate of automations it simply doesn't happen consistently — and the one time you need a backup is always the time you forgot to take it. A folder of dated exports also isn't very useful on its own: you can't easily tell which version was the good one, or what changed between them.
2. Scripted export to Git
A big step up: use the n8n API to pull all your workflows on a schedule and commit them to a Git repo. Now you have history, diffs, and something that survives the instance.
Two things to get right, though:
- Strip secrets first. Workflow JSON often contains hardcoded credentials — API keys and tokens tucked into HTTP headers or node parameters. You do not want those in your Git history. (You can see what that scrubbing looks like with the free redaction demo.)
- Canonicalize before committing.Raw exports churn on noise — node positions, pinned data, timestamps — so naive commits produce messy diffs and false "changes."
This is the right shape, but it's a bit of glue to build and maintain yourself.
3. Automated, redacted backup on every change
The version I actually use: an agent runs next to n8n, watches for changes, and commits redacted workflow JSON to my own GitHub repo automatically — secrets stripped, diffs clean, on every change rather than on a timer I have to think about. Same git-as-the-source-of-truth idea as option 2, minus the maintenance and the footguns.
That's one of the things Keel does (see n8n git backup). Your n8n API key never leaves your server; only the redacted version-state does. It's free on one instance.
Which should you use?
- Just starting / one workflow: manual export is fine. Keep a couple of known-good copies.
- Comfortable with scripts: the n8n API → Git approach is solid if you handle redaction and canonicalization.
- Running it for clients / can't afford to lose work: automate it, because the manual step is the one that fails exactly when it matters.