n8n Workflow
Advanced

Google Drive Batch Public Link Generator

Automate the creation of public, direct download links for all files in a Google Drive folder. Streamline bulk file sharing and distribution with this n8n workflow.

Overview

Automates making multiple Google Drive files public and generates direct download links for them, perfect for bulk sharing of resources or assets.

🧠 Description & Use Case

This workflow automates the process of converting all files within a specified Google Drive folder into publicly accessible, direct-download links. It eliminates the tedious manual work of sharing each file one by one.

🔄 How It Works:

  1. Trigger & Configure: The workflow can be initiated manually. You start by providing a Folder ID from your Google Drive in the Set Folder ID node.

  2. List Files: The Google Drive node connects to your account and lists all the files contained within the specified folder.

  3. Process Each File: The workflow then processes each file from the list in two parallel steps:

    • Generate Download Links: A Code node constructs a direct download URL for every file. This link bypasses the standard Google Drive preview page, allowing for immediate download.
    • Update Permissions: A Loop Over Items node iterates through each file, and the Change Status node updates its sharing permissions to make it public, so that 'anyone with the link' can view it. This step is crucial for the download links to work for users without explicit access.
  4. Combine Data: The Merge node combines the generated download link with the file's metadata and updated permission status.

  5. Final Output: The workflow outputs a clean list of items, each containing the file's name and its new direct download link. The Replace Me node is a placeholder where you can connect a database, a Google Sheet, Airtable, or any other service to store or use these generated links.

✅ Real-World Use Cases:

  • Resource Distribution: A teacher can place all class materials in a folder and run this workflow to get direct download links to post on a class website or syllabus.
  • Digital Asset Delivery: Content creators or businesses can quickly generate links for digital products (e.g., ebooks, templates, software) to send to customers after a purchase.
  • Website Asset Hosting: Host images, PDFs, or other assets on Google Drive and use the direct links on your website, avoiding the need for separate hosting.
  • Bulk Sharing with Teams: Quickly share a large number of files with external collaborators or partners without adding them individually to each file's permissions.

Instructions

Basic steps

  1. Download workflow JSON
  2. Import into n8n
  3. Configure node parameters as needed
  4. Test and enable the workflow

💡 Tips

After importing, verify all connectors and credentials match your environment.

Preview

Workflow Visualization

9 nodes
100%
Google DrivegoogleDriveLoop Over ItemssplitInBatchesMergemergeSet Folder IDsetManual Execute WorkflowmanualTriggerGenerate Download LinkscodeChange StatusgoogleDriveReplace MenoOpSticky NotestickyNote

Nodes

1

Google Drive

googleDrive

v1
2

Loop Over Items

splitInBatches

v3
3

Merge

merge

v2.1
4

Set Folder ID

set

v3.2
5

Manual Execute Workflow

manualTrigger

v1
6

Generate Download Links

code

v2
7

Change Status

googleDrive

v1
8

Replace Me

noOp

v1
9

Sticky Note

stickyNote

v1

Statistics

Total nodes:9
Disabled nodes:0
Node types:8
Connections:7
View full JSON structure
{
  "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": {
          "id": "KJE0ZORR1Q1fJCd5",
          "name": "Google Drive account 2"
        }
      },
      "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": {
          "id": "KJE0ZORR1Q1fJCd5",
          "name": "Google Drive account 2"
        }
      },
      "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.011119708244,
        "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
          }
        ]
      ]
    }
  }
}

Actions

Share
Categories:
Tags:
manualtriggersplitinbatchesnoopsetmergestickynotecodegoogledrive

Technical Specs

Complexity:
Advanced
Node Count:
9 nodes
Published:11 months ago
Updated:12 days ago

Compatibility

Platform:
N8N Cloud & Self-hosted
Min Version:
N8N v1.0.0+
Supports cloud and self-hosted deployment

License

This workflow template follows MIT license, you can freely use, modify and distribute.

Please comply with relevant third-party service terms when using.

Related Workflows