AutomationFlowsGeneral › Google Drive Batch File Processing

Google Drive Batch File Processing

Original n8n title: Code (google Drive)

Code. Uses googleDrive, splitInBatches, manualTrigger, noOp. Event-driven trigger; 9 nodes.

Event trigger★★★★☆ complexity9 nodesGoogle Drive
General Trigger: Event Nodes: 9 Complexity: ★★★★☆ Added:

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
{
  "nodes": [
    {
      "id": "2165cd37-10ff-46bd-88a5-c8377bf4bef7",
      "name": "Google Drive",
      "type": "n8n-nodes-base.googleDrive",
      "position": [
        1280,
        1100
      ],
      "parameters": {
        "limit": 100,
        "options": {
          "spaces": [
            "*"
          ],
          "corpora": "allDrives"
        },
        "operation": "list",
        "queryString": "='{{ $json[\"Folder ID\"] }}' in parents",
        "authentication": "oAuth2",
        "useQueryString": true
      },
      "credentials": {
        "googleDriveOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "5061db5e-2137-4c50-8902-a24cd53a6bdf",
      "name": "Loop Over Items",
      "type": "n8n-nodes-base.splitInBatches",
      "position": [
        1480,
        1160
      ],
      "parameters": {
        "options": {},
        "batchSize": 50
      },
      "typeVersion": 3
    },
    {
      "id": "62a16fb8-9bfc-46db-a556-23fac7f403f5",
      "name": "Merge",
      "type": "n8n-nodes-base.merge",
      "position": [
        1720,
        1020
      ],
      "parameters": {
        "mode": "combine",
        "options": {},
        "combinationMode": "multiplex"
      },
      "typeVersion": 2.1
    },
    {
      "id": "bd410148-e745-43a2-960b-128bbb49828f",
      "name": "Set Folder ID",
      "type": "n8n-nodes-base.set",
      "notes": "Enter desired Folder",
      "position": [
        1120,
        1100
      ],
      "parameters": {
        "fields": {
          "values": [
            {
              "name": "Folder ID",
              "stringValue": "Enter Your Folder ID here"
            }
          ]
        },
        "options": {}
      },
      "notesInFlow": true,
      "typeVersion": 3.2
    },
    {
      "id": "16def9df-5c8b-4359-a879-11e66f191f92",
      "name": "Manual Execute Workflow",
      "type": "n8n-nodes-base.manualTrigger",
      "notes": "Optional",
      "position": [
        940,
        1100
      ],
      "parameters": {},
      "notesInFlow": true,
      "typeVersion": 1
    },
    {
      "id": "e7d54620-e5e6-470e-add5-ccefdfb2a979",
      "name": "Generate Download Links",
      "type": "n8n-nodes-base.code",
      "position": [
        1480,
        980
      ],
      "parameters": {
        "jsCode": "// This function will create an array of file links from the given Google Drive folder\nreturn items.map(file => {\n  return { json: { 'link': `https://drive.google.com/u/3/uc?id=${file.json.id}&export=download&confirm=t&authuser=0`, 'name': file.json.name } };\n});"
      },
      "typeVersion": 2
    },
    {
      "id": "04e71edf-c40f-4c80-961c-f511e145232c",
      "name": "Change Status",
      "type": "n8n-nodes-base.googleDrive",
      "notes": "Make Files Public to anyone with a link",
      "position": [
        1660,
        1180
      ],
      "parameters": {
        "fileId": {
          "__rl": true,
          "mode": "id",
          "value": "={{ $json.id }}"
        },
        "options": {
          "supportsAllDrives": true
        },
        "operation": "share",
        "permissionsUi": {
          "permissionsValues": {
            "role": "reader",
            "type": "anyone"
          }
        },
        "authentication": "oAuth2"
      },
      "credentials": {
        "googleDriveOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "notesInFlow": true,
      "typeVersion": 1
    },
    {
      "id": "4452cd81-e94a-465e-987b-5acf46e25428",
      "name": "Replace Me",
      "type": "n8n-nodes-base.noOp",
      "position": [
        1880,
        1020
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "dab69e10-d9af-4ece-a6c6-cb35468e3bf0",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        880,
        820
      ],
      "parameters": {
        "width": 1235.0111197082438,
        "height": 545.6382804772701,
        "content": "## Example Output:\n```JSON\n{\n\"link\": \"https://drive.google.com/u/3/uc?id=1hojqPfXchNTY8YRTNkxSo-8txK9re-V4&export=download&confirm=t&authuser=0\",\n\"name\": \"firefox_rNjA0ybKu7.png\",\n\"kind\": \"drive#permission\",\n\"id\": \"anyoneWithLink\",\n\"type\": \"anyone\",\n\"role\": \"reader\",\n\"allowFileDiscovery\": false\n}\n```\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n### You can store the output data with any data store node you want\n### for example save them into Excel Sheet or Airtable etc..."
      },
      "typeVersion": 1
    }
  ],
  "connections": {
    "Merge": {
      "main": [
        [
          {
            "node": "Replace Me",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Google Drive": {
      "main": [
        [
          {
            "node": "Loop Over Items",
            "type": "main",
            "index": 0
          },
          {
            "node": "Generate Download Links",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Change Status": {
      "main": [
        [
          {
            "node": "Loop Over Items",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Set Folder ID": {
      "main": [
        [
          {
            "node": "Google Drive",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Loop Over Items": {
      "main": [
        [
          {
            "node": "Merge",
            "type": "main",
            "index": 1
          }
        ],
        [
          {
            "node": "Change Status",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Generate Download Links": {
      "main": [
        [
          {
            "node": "Merge",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Manual Execute Workflow": {
      "main": [
        [
          {
            "node": "Set Folder ID",
            "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

Code. Uses googleDrive, splitInBatches, manualTrigger, noOp. Event-driven trigger; 9 nodes.

Source: https://github.com/Zie619/n8n-workflows — 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

creda. Uses executeCommand, googleDrive, n8n. Event-driven trigger; 27 nodes.

Execute Command, Google Drive, n8n
General

AI ImgGen. Uses manualTrigger, stickyNote, convertToFile, splitInBatches. Event-driven trigger; 21 nodes.

HTTP Request, Google Sheets, Google Drive
General

Code Filter. Uses stickyNote, googleDrive, noOp, googleDriveTrigger. Event-driven trigger; 20 nodes.

Google Drive, Google Drive Trigger
General

Purpose: Automate the process of finding and managing duplicate files in your Google Drive.

Google Drive, Google Drive Trigger
General

Important: This workflow uses the Autype community node and requires a self-hosted n8n instance.

Google Drive, N8N Nodes Autype