Workflow: Googledrive Workflow
Integrations: code, googleDrive, manualTrigger, merge, noOp, set, splitInBatches, stickyNote, stopAndError

{"meta": {"instanceId": "workflow-1fe51564", "versionId": "1.0.0", "createdAt": "2025-09-29T07:07:42.439017", "updatedAt": "2025-09-29T07:07:42.439098", "owner": "n8n-user", "license": "MIT", "category": "automation", "status": "active", "priority": "high", "environment": "production"}, "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": "{{ $credentials.oAuth2 }}", "useQueryString": true}, "credentials": {"googleDriveOAuth2Api": {"id": "KJE0ZORR1Q1fJCd5", "name": "Google Drive account 2"}}, "typeVersion": 1, "notes": "This googleDrive node performs automated tasks as part of the workflow."}, {"id": "5061db5e-2137-4c50-8902-a24cd53a6bdf", "name": "Loop Over Items", "type": "n8n-nodes-base.splitInBatches", "position": [1480, 1160], "parameters": {"options": {}, "batchSize": 50}, "typeVersion": 3, "notes": "This splitInBatches node performs automated tasks as part of the workflow."}, {"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, "notes": "This merge node performs automated tasks as part of the workflow."}, {"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': `{{ $env.WEBHOOK_URL }}{file.json.id}&export=download&confirm=t&authuser=0`, 'name': file.json.name } };\n});"}, "typeVersion": 2, "notes": "This code node performs automated tasks as part of the workflow."}, {"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": "{{ $credentials.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, "notes": "This noOp node performs automated tasks as part of the workflow."}, {"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\": \"{{ $env.WEBHOOK_URL }}\",\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, "notes": "This stickyNote node performs automated tasks as part of the workflow."}, {"id": "error-44092104", "name": "Error Handler", "type": "n8n-nodes-base.stopAndError", "typeVersion": 1, "position": [1000, 400], "parameters": {"message": "Workflow execution error", "options": {}}}], "pinData": {}, "connections": {"2165cd37-10ff-46bd-88a5-c8377bf4bef7": {"main": [[{"node": "error-handler-2165cd37-10ff-46bd-88a5-c8377bf4bef7-39f9d20e", "type": "main", "index": 0}]]}, "04e71edf-c40f-4c80-961c-f511e145232c": {"main": [[{"node": "error-handler-04e71edf-c40f-4c80-961c-f511e145232c-6f40c358", "type": "main", "index": 0}]]}}, "name": "Googledrive Workflow", "settings": {"executionOrder": "v1", "saveManualExecutions": true, "callerPolicy": "workflowsFromSameOwner", "errorWorkflow": null, "timezone": "UTC", "executionTimeout": 3600, "maxExecutions": 1000, "retryOnFail": true, "retryCount": 3, "retryDelay": 1000}, "description": "Automated workflow: Googledrive Workflow. This workflow integrates 9 different services: stickyNote, code, merge, googleDrive, set. It contains 11 nodes and follows best practices for error handling and security.", "tags": ["automation", "n8n", "production-ready", "excellent", "optimized"], "notes": "Excellent quality workflow: Googledrive Workflow. This workflow has been optimized for production use with comprehensive error handling, security, and documentation."}