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 →
{
"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.
ftpgoogleDriveOAuth2Api
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 →
Related workflows
Workflows that share integrations, category, or trigger type with this one. All free to copy and import.
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
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
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
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