Source code , I maintain this workflow here.
Usage Guide
This workflow backs up all workflows as JSON files named in the [workflow_name].json format.
Steps
-
Create a GitHub Repository
- Skip this step if using an existing repository.
-
Add GitHub Credentials
- In Credentials , add the GitHub credential for the repository owner.
-
Download and Import Workflow
- Import this workflow into n8n.
-
Set Global Values
- In the Globals node, set the following:
-
repo.owner : GitHub username of the repository owner.
-
repo.name : Name of the repository for backups.
-
repo.path : Path to the folder within the repository where workflows will be saved.
-
Configure GitHub Nodes
- Edit each GitHub node in the workflow to use the added credentials.
Workflow Logic
Each workflow run handles files based on their status:
-
New Workflow
- If a workflow is new, create a new file in the repository.
-
Unchanged Workflow
- If the workflow is unchanged, skip to the next item.
-
Changed Workflow
- If a workflow has changes, update the corresponding file in the repository.
Current Limitations / Needs work
-
Name Change of Workflows
- If a workflow is renamed or deleted in n8n, the old file remains in the repository.
-
Deleted Workflows
- Deleted workflows in n8n are not removed from the repository.