{
  "name": "Automatically transfer FTP files to Google Drive with batch processing",
  "nodes": [
    {
      "id": "262d1e91-d950-41a4-8a27-afeb44c9744d",
      "name": "⏯️ Schedule Trigger",
      "type": "n8n-nodes-base.scheduleTrigger",
      "position": [
        -144,
        64
      ]
    },
    {
      "id": "44decf50-8cb4-4eba-bd60-67f963e1d939",
      "name": "📂 List Files from FTP",
      "type": "n8n-nodes-base.ftp",
      "position": [
        80,
        64
      ]
    },
    {
      "id": "821ff817-5e79-4d81-8fc5-980c76517d87",
      "name": "🔀 Batch Files",
      "type": "n8n-nodes-base.splitInBatches",
      "position": [
        304,
        64
      ]
    },
    {
      "id": "7535c279-523e-4d07-bc8d-de3424456236",
      "name": "⬇️ Download File from FTP",
      "type": "n8n-nodes-base.ftp",
      "position": [
        528,
        -16
      ]
    },
    {
      "id": "b6f0df47-0de0-4636-8939-1fbe748da310",
      "name": "☁️ Upload to Google Drive",
      "type": "n8n-nodes-base.googleDrive",
      "position": [
        752,
        64
      ]
    },
    {
      "id": "a62179dc-9d84-42b9-953b-0d584763b1bc",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -208,
        -272
      ],
      "parameters": {
        "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.*"
      }
    },
    {
      "id": "1cdca185-0cc4-4a2d-97cd-7a467d4df82b",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        256,
        -272
      ],
      "parameters": {
        "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.*"
      }
    },
    {
      "id": "333bf0b6-aeb7-422a-83ae-e2fa5d448814",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        480,
        -272
      ],
      "parameters": {
        "width": null,
        "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).*"
      }
    },
    {
      "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.*"
      }
    }
  ],
  "connections": {
    "🔀 Batch Files": {
      "main": [
        [],
        [
          {
            "node": "⬇️ Download File from FTP",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "⏯️ Schedule Trigger": {
      "main": [
        [
          {
            "node": "📂 List Files from FTP",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "📂 List Files from FTP": {
      "main": [
        [
          {
            "node": "🔀 Batch Files",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "☁️ Upload to Google Drive": {
      "main": [
        [
          {
            "node": "🔀 Batch Files",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "⬇️ Download File from FTP": {
      "main": [
        [
          {
            "node": "☁️ Upload to Google Drive",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}