AutomationFlowsData & Sheets › Database Backup to Google Drive

Database Backup to Google Drive

Database Backup to Google Drive. Uses postgres, spreadsheetFile, googleDrive, slack. Scheduled trigger; 7 nodes.

Cron / scheduled trigger★★★★☆ complexity7 nodesPostgresSpreadsheet FileGoogle DriveSlack
Data & Sheets Trigger: Cron / scheduled Nodes: 7 Complexity: ★★★★☆ Added:

This workflow follows the Google Drive → Slack recipe pattern — see all workflows that pair these two integrations.

The workflow JSON

Copy or download the full n8n JSON below. Paste it into a new n8n workflow, add your credentials, activate. Full import guide →

Download .json
{
  "name": "Database Backup to Google Drive",
  "nodes": [
    {
      "parameters": {
        "rule": {
          "interval": [
            {
              "field": "hours",
              "hoursInterval": 24
            }
          ]
        }
      },
      "id": "schedule-trigger",
      "name": "Daily at 2am",
      "type": "n8n-nodes-base.scheduleTrigger",
      "typeVersion": 1,
      "position": [
        250,
        300
      ]
    },
    {
      "parameters": {
        "operation": "executeQuery",
        "query": "SELECT * FROM your_table",
        "options": {}
      },
      "id": "postgres-query",
      "name": "Export PostgreSQL",
      "type": "n8n-nodes-base.postgres",
      "typeVersion": 2,
      "position": [
        500,
        300
      ]
    },
    {
      "parameters": {
        "method": "csv",
        "data": "={{ $json }}"
      },
      "id": "convert-csv",
      "name": "Convert to CSV",
      "type": "n8n-nodes-base.spreadsheetFile",
      "typeVersion": 1,
      "position": [
        750,
        300
      ]
    },
    {
      "parameters": {
        "operation": "upload",
        "name": "={{ 'backup-' + new Date().toISOString().split('T')[0] + '.csv' }}",
        "mimeType": "text/csv",
        "parents": [
          {
            "id": {
              "value": "your-backup-folder-id",
              "mode": "raw"
            }
          }
        ]
      },
      "id": "drive-upload",
      "name": "Upload to Google Drive",
      "type": "n8n-nodes-base.googleDrive",
      "typeVersion": 1,
      "position": [
        1000,
        300
      ]
    },
    {
      "parameters": {
        "channel": "#ops",
        "text": "=Database backup completed: {{ new Date().toLocaleString() }} \u2014 {{ $json.name }} uploaded to Drive"
      },
      "id": "slack-confirm",
      "name": "Confirm on Slack",
      "type": "n8n-nodes-base.slack",
      "typeVersion": 1,
      "position": [
        1250,
        300
      ]
    },
    {
      "parameters": {
        "operation": "search",
        "searchQuery": "=name contains 'backup-'",
        "returnAll": true,
        "options": {
          "fields": "files(name, createdTime)",
          "orderBy": "createdTime desc",
          "pageSize": 100
        }
      },
      "id": "list-backups",
      "name": "List Old Backups",
      "type": "n8n-nodes-base.googleDrive",
      "typeVersion": 1,
      "position": [
        1250,
        500
      ]
    },
    {
      "parameters": {
        "operation": "delete",
        "fileId": "={{ $json.id }}",
        "options": {}
      },
      "id": "delete-old",
      "name": "Delete > 7 Days Old",
      "type": "n8n-nodes-base.googleDrive",
      "typeVersion": 1,
      "position": [
        1500,
        500
      ]
    }
  ],
  "connections": {
    "Daily at 2am": {
      "main": [
        [
          {
            "node": "Export PostgreSQL",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Export PostgreSQL": {
      "main": [
        [
          {
            "node": "Convert to CSV",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Convert to CSV": {
      "main": [
        [
          {
            "node": "Upload to Google Drive",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Upload to Google Drive": {
      "main": [
        [
          {
            "node": "Confirm on Slack",
            "type": "main",
            "index": 0
          },
          {
            "node": "List Old Backups",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "List Old Backups": {
      "main": [
        [
          {
            "node": "Delete > 7 Days Old",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  },
  "settings": {},
  "staticData": null
}
Pro

For the full experience including quality scoring and batch install features for each workflow upgrade to Pro

About this workflow

Database Backup to Google Drive. Uses postgres, spreadsheetFile, googleDrive, slack. Scheduled trigger; 7 nodes.

Source: https://github.com/atlas-aia/n8n-automation-guides/blob/e798ae623ea1a02cda20e18da22baf24f0b7bec5/templates/database-backup.json — original creator credit. Request a take-down →

More Data & Sheets workflows → · Browse all categories →

Related workflows

Workflows that share integrations, category, or trigger type with this one. All free to copy and import.

Data & Sheets

This workflow acts as a junior finance research analyst for a UK boutique M&A or corporate finance team. It listens for Slack messages, classifies the request, gathers company or market data, and prod

HTTP Request, Google Drive, Google Docs +5
Data & Sheets

Automated Knowledge Management Backup & Recovery. Uses executeCommand, postgres, httpRequest, googleDrive. Scheduled trigger; 30 nodes.

Execute Command, Postgres, HTTP Request +1
Data & Sheets

This workflow is a multi-system document synchronization pipeline built in n8n, designed to automatically sync and back up files between Microsoft SharePoint, Supabase/Postgres, and Google Drive.

HTTP Request, Supabase, Postgres +1
Data & Sheets

Post Scheduler. Uses postgres, googleDrive, httpRequest. Scheduled trigger; 20 nodes.

Postgres, Google Drive, HTTP Request
Data & Sheets

This workflow automatically identifies users who started but did not complete the signup process. It runs on a fixed schedule, checks your database for inactive and incomplete users, and validates the

Postgres, Slack, @Itechnotion/N8N Nodes Inboxplus +1