Source code, I maintain this worflow here.
Usage Guide
This workflow backs up all workflows as JSON files named in the [workflow_name].json
format.
Steps
-
Create 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.