Automated daily backup of n8n workflows to GitLab repositories
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 19 nodes and runs on a schedule (every day). Along the way it connects GitLab.
How it runs
Trigger: On a schedule (every day).
- GitLab: get (repository)
- Globals (Edit Fields (Set)): sets or maps fields
- Retrieve all workflows (n8n): uses n8n
- Loop Over Workflows (Loop Over Items (Split in Batches)): loops over the items in batches
- Get file (GitLab): get (file)
- Extract from File: extracts data from a file (from json)
- Save each version in a different field (Edit Fields (Set)): sets or maps fields
- File status (Code): runs custom JavaScript code
- Switch: routes items into 3 branches
- Create file (GitLab): work with file
…plus 4 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)
- Edit Fields (Set)
n8n-nodes-base.set - No Operation, do nothing
n8n-nodes-base.noOp - Loop Over Items (Split in Batches)
n8n-nodes-base.splitInBatches - GitLab
n8n-nodes-base.gitlab - Code
n8n-nodes-base.code - Extract from File
n8n-nodes-base.extractFromFile - Switch
n8n-nodes-base.switch - n8n
n8n-nodes-base.n8n - Schedule Trigger
n8n-nodes-base.scheduleTrigger
From the author
n8n Workflow: Sync Workflows with GitLab How It Works This workflow ensures that your self-hosted n8n workflows are version-controlled in a GitLab repository. It compares each current workflow from n8n with its stored counterpart in GitLab. If any differences…