AutomationFlowsGeneral › Automatically Transfer FTP Files to Google Drive with Batch Processing

Automatically Transfer FTP Files to Google Drive with Batch Processing

ByAvkash Kakdiya @itechnotion on n8n.io

This workflow automates the transfer of files from an FTP server to Google Drive. It runs on a schedule, lists files in a defined FTP directory, and processes them in batches. Each file is downloaded sequentially from the FTP server and uploaded to Google Drive. The workflow…

Cron / scheduled trigger★★★★☆ complexity9 nodesFtpGoogle Drive
General Trigger: Cron / scheduled Nodes: 9 Complexity: ★★★★☆ Added:

This workflow corresponds to n8n.io template #8703 — we link there as the canonical source.

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
{
  "meta": {
    "templateCredsSetupCompleted": false
  },
  "name": "FTP to Cloud Sync",
  "nodes": [
    {
      "id": "262d1e91-d950-41a4-8a27-afeb44c9744d",
      "name": "\u23ef\ufe0f Schedule Trigger",
      "type": "n8n-nodes-base.scheduleTrigger",
      "position": [
        -144,
        64
      ],
      "parameters": {
        "rule": {
          "interval": [
            {}
          ]
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "44decf50-8cb4-4eba-bd60-67f963e1d939",
      "name": "\ud83d\udcc2 List Files from FTP",
      "type": "n8n-nodes-base.ftp",
      "position": [
        80,
        64
      ],
      "parameters": {
        "path": "/path/to/your/files",
        "operation": "list"
      },
      "credentials": {
        "ftp": "<your credential>"
      },
      "typeVersion": 1
    },
    {
      "id": "821ff817-5e79-4d81-8fc5-980c76517d87",
      "name": "\ud83d\udd00 Batch Files",
      "type": "n8n-nodes-base.splitInBatches",
      "position": [
        304,
        64
      ],
      "parameters": {
        "options": {}
      },
      "typeVersion": 3
    },
    {
      "id": "7535c279-523e-4d07-bc8d-de3424456236",
      "name": "\u2b07\ufe0f Download File from FTP",
      "type": "n8n-nodes-base.ftp",
      "position": [
        528,
        -16
      ],
      "parameters": {
        "path": "={{ $json.name }}",
        "options": {}
      },
      "credentials": {
        "ftp": "<your credential>"
      },
      "typeVersion": 1
    },
    {
      "id": "b6f0df47-0de0-4636-8939-1fbe748da310",
      "name": "\u2601\ufe0f Upload to Google Drive",
      "type": "n8n-nodes-base.googleDrive",
      "position": [
        752,
        64
      ],
      "parameters": {
        "name": "={{ $json.name }}",
        "driveId": {
          "__rl": true,
          "mode": "list",
          "value": "My Drive"
        },
        "options": {},
        "folderId": {
          "__rl": true,
          "mode": "list",
          "value": "root",
          "cachedResultName": "/ (Root folder)"
        }
      },
      "credentials": {
        "googleDriveOAuth2Api": "<your credential>"
      },
      "typeVersion": 3
    },
    {
      "id": "a62179dc-9d84-42b9-953b-0d584763b1bc",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -208,
        -272
      ],
      "parameters": {
        "color": 4,
        "width": 448,
        "height": 544,
        "content": "## 1. Trigger & File Listing\n\n*The workflow starts automatically using a Schedule trigger.\n\nIt connects to the FTP server and retrieves a list of files from the given remote folder path.*"
      },
      "typeVersion": 1
    },
    {
      "id": "1cdca185-0cc4-4a2d-97cd-7a467d4df82b",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        256,
        -272
      ],
      "parameters": {
        "color": 3,
        "width": 208,
        "height": 544,
        "content": "## 2. Batch Processing Setup\n\n*Files are split into manageable batches so each file is handled one at a time.\n\nThis avoids overloading the system and ensures smooth sequential processing.*"
      },
      "typeVersion": 1
    },
    {
      "id": "333bf0b6-aeb7-422a-83ae-e2fa5d448814",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        480,
        -272
      ],
      "parameters": {
        "color": 5,
        "height": 544,
        "content": "## 3. File Handling\n\n*Each batch item (file) is downloaded from the FTP server.\n\nThe downloaded file is prepared for the next step (upload).*"
      },
      "typeVersion": 1
    },
    {
      "id": "58997636-96c2-4f25-9795-3f8fbc83d293",
      "name": "Sticky Note3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        736,
        -272
      ],
      "parameters": {
        "width": 192,
        "height": 544,
        "content": "## 4. Cloud Upload\n\n*Files are uploaded to Google Drive.\n\nThe filename from FTP is retained during upload for consistency.*"
      },
      "typeVersion": 1
    }
  ],
  "active": false,
  "settings": {
    "executionOrder": "v1"
  },
  "connections": {
    "\ud83d\udd00 Batch Files": {
      "main": [
        [],
        [
          {
            "node": "\u2b07\ufe0f Download File from FTP",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "\u23ef\ufe0f Schedule Trigger": {
      "main": [
        [
          {
            "node": "\ud83d\udcc2 List Files from FTP",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "\ud83d\udcc2 List Files from FTP": {
      "main": [
        [
          {
            "node": "\ud83d\udd00 Batch Files",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "\u2601\ufe0f Upload to Google Drive": {
      "main": [
        [
          {
            "node": "\ud83d\udd00 Batch Files",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "\u2b07\ufe0f Download File from FTP": {
      "main": [
        [
          {
            "node": "\u2601\ufe0f Upload to Google Drive",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}

Credentials you'll need

Each integration node will prompt for credentials when you import. We strip credential IDs before publishing — you'll add your own.

Pro

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

About this workflow

This workflow automates the transfer of files from an FTP server to Google Drive. It runs on a schedule, lists files in a defined FTP directory, and processes them in batches. Each file is downloaded sequentially from the FTP server and uploaded to Google Drive. The workflow…

Source: https://n8n.io/workflows/8703/ — original creator credit. Request a take-down →

More General workflows → · Browse all categories →

Related workflows

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

General

This n8n workflow automatically transfers files from Google Drive to an FTP server on a scheduled basis. It includes comprehensive logging, email notifications, and error handling. Automated Schedulin

Google Drive, Ftp, Write Binary File +1
General

How it works

Google Drive, n8n
General

This workflow is designed for n8n users who want an automated way to back up their workflows to Google Drive. It is useful for freelancers, developers, automation agencies, and teams managing multiple

Google Drive, n8n
General

This workflow is designed to automatically create backups of all your workflows in n8n and store them as individual .json files in Google Drive. It's a fully automated system that helps developers, ag

Google Drive, n8n
General

This workflow automatically transfers files from an FTP server to Google Drive. It's perfect for: Backing up files from remote servers Migrating data from FTP to cloud storage Automating file synchron

Ftp, Google Drive