Package Information
Released: 7/10/2025
Downloads: 0 weeklyĀ /Ā 0 monthly
Latest Version: 1.0.0
Author: molight
Documentation
n8n-nodes-workflow-backup
This is an n8n community node package that provides workflow backup and restore functionality for n8n instances.
Features
- š Automatic Backup: Backup all or selected n8n workflows to GitHub
- š„ Easy Restore: Restore workflows from GitHub backups
- š·ļø Tag-based Filtering: Backup workflows by tags
- ā” Conflict Resolution: Handle name conflicts during restore
- š Safe Defaults: Restore workflows as inactive for safety
- š Scheduled Backups: Perfect for automated daily/weekly backups
- š Simple Configuration: Just provide GitHub repository and go
Installation
To install this community package, follow these steps:
Option 1: Manual Installation
# Navigate to your n8n installation directory
cd ~/.n8n/nodes
# Install the package
npm install n8n-nodes-workflow-backup
Option 2: Docker Environment
Add to your docker-compose.yml:
environment:
- N8N_COMMUNITY_PACKAGES_ENABLED=true
Then run:
npm install n8n-nodes-workflow-backup
Option 3: n8n Cloud
- Go to Settings > Community Nodes
- Click Install
- Enter:
n8n-nodes-workflow-backup
- Click Install
Credentials Setup
1. GitHub Backup API Credentials
- Go to GitHub Settings > Developer settings > Personal access tokens > Tokens (classic)
- Click Generate new token
- Give it a name:
n8n-workflow-backup
- Select scopes:
repo
(for private repos) orpublic_repo
(for public repos only) - Copy the generated token
- In n8n, create new GitHub Backup API credential and paste the token
2. n8n API Credentials
- Go to your n8n instance Settings > API
- Click Create new API key
- Copy the generated API key
- In n8n, create new n8n API credential with:
- API URL: Your n8n instance URL (e.g.,
https://your-n8n.com
orhttp://localhost:5678
) - API Key: The copied API key
- API URL: Your n8n instance URL (e.g.,
Nodes
Workflow Backup Node
Backs up workflows from your n8n instance to a GitHub repository.
Parameters:
- GitHub Repository: Repository to store backups (format:
username/repo-name
) - Backup Mode:
All Workflows
: Backup all workflowsActive Only
: Backup only active workflowsBy Tags
: Backup workflows with specific tags
- Tags: Comma-separated list of tags (when using "By Tags" mode)
- Backup Branch: Target branch for backups (default:
n8n-backups
)
Workflow Restore Node
Restores workflows from GitHub backup to your n8n instance.
Parameters:
- GitHub Repository: Repository containing backups
- Restore Mode:
Latest Backup
: Restore from the most recent backupSpecific Date
: Restore from a backup on specific dateIndividual Workflows
: Restore only selected workflows
- Conflict Resolution:
Skip Existing
: Skip workflows that already existRename New
: Create with new name (adds timestamp)Overwrite
: Replace existing workflows
- Restore as Inactive: Import workflows in inactive state (recommended)
Usage Examples
Daily Automatic Backup
{
"name": "Daily Backup",
"nodes": [
{
"name": "Every Day at 2 AM",
"type": "n8n-nodes-base.cron",
"parameters": {
"triggerTimes": {
"item": [{"hour": 2, "minute": 0}]
}
}
},
{
"name": "Backup Active Workflows",
"type": "n8n-nodes-workflow-backup.workflowBackup",
"parameters": {
"repository": "myuser/n8n-backups",
"backupMode": "active"
}
},
{
"name": "Send Notification",
"type": "n8n-nodes-base.slack",
"parameters": {
"channel": "#n8n-backups",
"text": "ā
Daily backup completed: {{$node['Backup Active Workflows'].json.workflowCount}} workflows"
}
}
]
}
Restore from Backup
{
"name": "Restore Workflows",
"nodes": [
{
"name": "Manual Trigger",
"type": "n8n-nodes-base.manualTrigger"
},
{
"name": "Restore Latest Backup",
"type": "n8n-nodes-workflow-backup.workflowRestore",
"parameters": {
"repository": "myuser/n8n-backups",
"restoreMode": "latest",
"conflictResolution": "skip",
"restoreInactive": true
}
}
]
}
Backup Structure
The backups are stored in your GitHub repository with this structure:
your-repo/
āāā backups/
ā āāā backup-2024-01-15.json # Complete backup with metadata
ā āāā backup-2024-01-16.json
ā āāā ...
āāā workflows/
āāā My_Workflow_1-123.json # Individual workflow files
āāā Another_Workflow-456.json
āāā ...
Security Considerations
- Credentials: The backup process automatically removes sensitive credential data
- Private Repositories: Use private GitHub repositories for sensitive workflows
- API Keys: Store GitHub tokens and n8n API keys securely in n8n credentials
- Restore Safety: Workflows are restored as inactive by default to prevent accidental execution
Troubleshooting
Common Issues
"Repository not found" error:
- Verify the repository name format:
username/repo-name
- Ensure your GitHub token has access to the repository
- Check if the repository exists
"API key invalid" error:
- Verify your n8n API key is correct
- Check if the n8n instance URL is accessible
- Ensure the API key has sufficient permissions
"No backup files found" error:
- Check if backups exist in the
backups/
folder of your repository - Verify you're using the correct branch name
- Ensure the backup files follow the naming pattern:
backup-YYYY-MM-DD.json
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
License
MIT License - see the LICENSE file for details.
Support
- š Report bugs
- š” Request features
- š Documentation
Changelog
v1.0.0
- Initial release
- Backup workflows to GitHub
- Restore workflows from GitHub
- Support for tag-based filtering
- Conflict resolution during restore
- Automatic credential sanitization