{
  "id": "vnlmgDq8SZlzMcfi",
  "meta": {
    "templateId": "2886"
  },
  "name": "Backup all n8n workflows to Google Drive every 4 hours",
  "tags": [],
  "nodes": [
    {
      "id": "26b6a8ca-cf9e-4eab-9f2a-841f975a4741",
      "name": "On clicking 'execute'",
      "type": "n8n-nodes-base.manualTrigger",
      "position": [
        240,
        448
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "c42307c1-0d95-4500-85e8-a89234a7e2e7",
      "name": "create new folder",
      "type": "n8n-nodes-base.googleDrive",
      "onError": "continueErrorOutput",
      "position": [
        464,
        560
      ],
      "parameters": {
        "name": "=Workflow Backups {{ $now.format('cccc t dd-MM-yyyy') }}",
        "driveId": {
          "__rl": true,
          "mode": "list",
          "value": "My Drive"
        },
        "options": {},
        "folderId": {
          "__rl": true,
          "mode": "list",
          "value": "14Mui2em5keVRWaoq3dlrvaX8KNRxw2h2",
          "cachedResultUrl": "https://drive.google.com/drive/folders/14Mui2em5keVRWaoq3dlrvaX8KNRxw2h2",
          "cachedResultName": "N8N Backups"
        },
        "resource": "folder"
      },
      "credentials": {
        "googleDriveOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 3
    },
    {
      "id": "139487f6-1ef0-4835-bdef-a896dbbdf942",
      "name": "Schedule Trigger",
      "type": "n8n-nodes-base.scheduleTrigger",
      "position": [
        240,
        640
      ],
      "parameters": {
        "rule": {
          "interval": [
            {
              "field": "hours",
              "hoursInterval": 4
            }
          ]
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "724c83f9-9e07-4a87-9f25-d1631a8ef403",
      "name": "Completed Notification",
      "type": "n8n-nodes-base.slack",
      "position": [
        1808,
        192
      ],
      "parameters": {
        "text": "=\u2705 Backup has completed - {{ $('Get many workflows').all().length }} workflows have been processed.",
        "select": "channel",
        "channelId": {
          "__rl": true,
          "mode": "id",
          "value": "C099YS0V3M2"
        },
        "otherOptions": {}
      },
      "credentials": {
        "slackApi": {
          "name": "<your credential>"
        }
      },
      "executeOnce": true,
      "typeVersion": 2.2
    },
    {
      "id": "939d7dc3-2080-4ac7-9609-ef598b018eb2",
      "name": "Failed Notification",
      "type": "n8n-nodes-base.slack",
      "position": [
        1808,
        752
      ],
      "parameters": {
        "text": "=\u274c Error in the N8N Backup Workflow",
        "select": "channel",
        "channelId": {
          "__rl": true,
          "mode": "id",
          "value": "C099YS0V3M2"
        },
        "otherOptions": {}
      },
      "credentials": {
        "slackApi": {
          "name": "<your credential>"
        }
      },
      "executeOnce": true,
      "typeVersion": 2.2
    },
    {
      "id": "53a6e217-05cb-4d9d-93ba-686cfec5e7b7",
      "name": "Convert to File1",
      "type": "n8n-nodes-base.convertToFile",
      "position": [
        848,
        240
      ],
      "parameters": {
        "mode": "each",
        "options": {
          "fileName": "={{ $json.name + '.json' }}"
        },
        "operation": "toJson"
      },
      "typeVersion": 1.1
    },
    {
      "id": "80cdeba1-1d1c-4b20-994b-09d1791cf534",
      "name": "Compression",
      "type": "n8n-nodes-base.compression",
      "position": [
        1200,
        384
      ],
      "parameters": {
        "fileName": "={{ 'workflows_backup_' + new Date().toISOString().slice(0,10) + '.zip' }}",
        "operation": "compress",
        "outputFormat": "=zip",
        "binaryPropertyName": "={{ Object.keys($binary).join(',') }}"
      },
      "typeVersion": 1.1
    },
    {
      "id": "96167a67-bc95-4414-bf61-52d225ffc43d",
      "name": "Code",
      "type": "n8n-nodes-base.code",
      "position": [
        1024,
        320
      ],
      "parameters": {
        "jsCode": "let binaries = {}, binary_keys = [];\n\nfor (const [index, inputItem] of Object.entries($input.all())) {\n  binaries[`data_${index}`] = inputItem.binary.data;\n  binary_keys.push(`data_${index}`);\n}\n\nreturn [{\n    json: {\n        binary_keys: binary_keys.join(',')\n    },\n    binary: binaries\n}];\n"
      },
      "typeVersion": 2
    },
    {
      "id": "502b946e-2543-486a-aaa6-f3a11bdfde80",
      "name": "Upload file",
      "type": "n8n-nodes-base.googleDrive",
      "onError": "continueErrorOutput",
      "position": [
        1568,
        464
      ],
      "parameters": {
        "name": "={{ 'workflows_backup_' + new Date().toISOString().slice(0,10) + '.zip' }}",
        "driveId": {
          "__rl": true,
          "mode": "list",
          "value": "My Drive"
        },
        "options": {},
        "folderId": {
          "__rl": true,
          "mode": "id",
          "value": "={{ $json.folderId }}"
        },
        "inputDataFieldName": "=data"
      },
      "credentials": {
        "googleDriveOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 3
    },
    {
      "id": "e4cfa753-d0c7-452f-9f10-0cd22d57d2ec",
      "name": "Get many workflows",
      "type": "n8n-nodes-base.n8n",
      "position": [
        688,
        192
      ],
      "parameters": {
        "filters": {},
        "returnAll": "=1",
        "requestOptions": {}
      },
      "credentials": {
        "n8nApi": {
          "name": "<your credential>"
        }
      },
      "retryOnFail": true,
      "typeVersion": 1,
      "alwaysOutputData": true
    },
    {
      "id": "261700eb-b41d-4eb4-883a-87c10b6600e3",
      "name": "Set New Folder Id",
      "type": "n8n-nodes-base.set",
      "position": [
        1200,
        544
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "d76278da-3d66-4776-893f-d7b7cd8bdd04",
              "name": "folderId",
              "type": "string",
              "value": "={{ $json.id }}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "e5ae88c5-5246-409f-acae-087c8de30a08",
      "name": "Merge",
      "type": "n8n-nodes-base.merge",
      "position": [
        1392,
        464
      ],
      "parameters": {
        "mode": "combine",
        "options": {},
        "combineBy": "combineByPosition"
      },
      "typeVersion": 3.2
    }
  ],
  "active": true,
  "settings": {},
  "versionId": "c7acf018-a4f5-437b-9ae3-0d9298408c3b",
  "connections": {
    "Code": {
      "main": [
        [
          {
            "node": "Compression",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Merge": {
      "main": [
        [
          {
            "node": "Upload file",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Compression": {
      "main": [
        [
          {
            "node": "Merge",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Upload file": {
      "main": [
        [
          {
            "node": "Completed Notification",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Failed Notification",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Convert to File1": {
      "main": [
        [
          {
            "node": "Code",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Schedule Trigger": {
      "main": [
        [
          {
            "node": "create new folder",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Set New Folder Id": {
      "main": [
        [
          {
            "node": "Merge",
            "type": "main",
            "index": 1
          }
        ]
      ]
    },
    "create new folder": {
      "main": [
        [
          {
            "node": "Set New Folder Id",
            "type": "main",
            "index": 0
          },
          {
            "node": "Get many workflows",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Failed Notification",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get many workflows": {
      "main": [
        [
          {
            "node": "Convert to File1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "On clicking 'execute'": {
      "main": [
        [
          {
            "node": "create new folder",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}