
n8n Google Drive: Create Folders, Upload Files & Trigger on New Files
Quick Summary
- •n8n connects to Google Drive via OAuth2 - add drive and drive.file scopes, then select your account in the credential setup
- •The Google Drive Trigger node polls for new or updated files in any folder - set a specific folder ID to avoid triggering on every file in My Drive
- •11 operations available: create folder, upload, download, copy, move, delete, share, list, search, update, and get metadata
- •Shared Drives require enabling 'Use Shared Drive' in both credentials and node settings - missing this causes 404 errors on valid files
- •Synta generates complete Google Drive automation workflows from plain English descriptions in seconds
If you've been searching for how to connect n8n Google Drive – you're in the right place. Whether you want to watch a folder for new uploads, automatically move files between directories, or trigger a Slack notification when a client drops something into a shared folder, n8n handles all of it natively with its Google Drive nodes.
This guide covers everything: OAuth2 setup, the Trigger node, every operation in the Google Drive node, a real workflow example, shared drive gotchas, and common errors.
What You Can Automate with n8n + Google Drive
Google Drive automation in n8n breaks down into two categories: triggers (detecting when something happens in Drive) and actions (doing something to files and folders).
Common use cases:
- Watch a client upload folder – process new files automatically and notify your team
- Back up data exports (CSV, JSON) from other systems into organized Drive folders
- Create a new project folder structure whenever a new deal is created in your CRM
- Move processed files from an inbox folder to an archive folder after handling
- Share specific folders with clients automatically when a project is created
The Google Drive integration in n8n is mature and covers the full Drive API surface. You don't need to write a single line of code.
Google Drive OAuth2 Credential Setup
Before you can use any Google Drive node, you need to connect your Google account. n8n uses OAuth2 for this.
Step 1 – Create a Google Cloud Project
Go to console.cloud.google.com, click "New Project", and give it a name (e.g., "n8n Automations"). Select the project once created.
Step 2 – Enable the Google Drive API
In the left sidebar, go to APIs & Services > Library. Search for "Google Drive API", click it, and hit Enable.
Step 3 – Configure OAuth Consent Screen
Go to APIs & Services > OAuth consent screen. Choose External (unless using Google Workspace). Fill in app name and contact info. Under Scopes, add: https://www.googleapis.com/auth/drive. Add your Google account as a test user.
Step 4 – Create OAuth2 Credentials
Go to APIs & Services > Credentials. Click + Create Credentials > OAuth client ID. Set Application type to Web application. Under Authorized redirect URIs, add your n8n callback URL: https://your-n8n-instance.com/rest/oauth2-credential/callback. Copy the Client ID and Client Secret.
Step 5 – Add to n8n
In n8n, open any Google Drive node. Click the Credential dropdown > Create New. Paste your Client ID and Client Secret. Click Connect and authorize in the Google popup. Save the credential – it's now reusable across all Google Drive nodes.

Google Drive Trigger Node
The Google Drive Trigger watches your Drive for changes and fires your workflow when they happen.
Trigger Events
Available trigger events: File Created (a new file appears in a folder), File Updated (an existing file is modified), File Created or Updated (either), Folder Created (a new subfolder is created), and File Deleted (a file is moved to trash).
Setting Up Folder Monitoring
By default, the trigger watches your entire Drive. To watch a specific folder: add a Google Drive Trigger node, set Trigger On to your desired event, under Watch select Specific Folder, use the folder picker to select your target, and optionally enable Include Items from Subfolders for recursive watching.
The trigger polls Google Drive every minute by default. When it fires, it outputs the file's metadata: ID, name, MIME type, size, created time, modified time, parent folders, and web view link.
Google Drive Node – All Operations
The main Google Drive node handles file and folder actions. Here's what each operation does:
Operations reference:
• Create Folder – creates a new folder (optionally inside a parent)
• Upload File – uploads a binary file from n8n to Google Drive
• Download File – downloads a file from Drive as binary data
• Move File – moves a file or folder to a different parent folder
• Copy File – creates a copy of a file in a specified location
• Delete File – permanently deletes or moves to trash
• Share File – shares a file/folder with a user by setting permissions
• List Files – returns files matching a query (folder contents, search)
• Get File – returns metadata for a single file by ID
• Update File – updates file metadata (name, description, starred)
• Create from Text – creates a Google Doc/Sheet from plain text content
Upload File – Key Settings
When uploading, pass the file as binary data from a previous node (HTTP Request, Read Binary File, etc.). Key settings: File Name (the name to give the file in Drive), Parent Folder (where to put it – leave blank for root), Convert to Google Format (auto-converts .xlsx to Google Sheets, .docx to Google Docs), and MIME Type (usually auto-detected).
List Files – Query Syntax
The List Files operation supports Google Drive's query syntax. Useful examples: name contains 'invoice', mimeType = 'application/pdf', 'FOLDER_ID' in parents and trashed = false, modifiedTime > '2026-01-01T00:00:00'.
Building a Real Workflow: Watch Folder, Process, Archive, Notify
Here's a practical example: a workflow that watches a "Client Uploads" folder, downloads each new file, sends it to a processing step, archives it to a dated folder, and notifies a Slack channel.
Node setup:
1. Google Drive Trigger – Trigger On: File Created, Watch: Specific Folder ("Client Uploads")
2. Google Drive (Download File) – File ID: {{ $json.id }} from trigger output
3. Processing step – HTTP API, Code node, OpenAI, etc.
4. Google Drive (Create Folder) – Name: {{ $now.format('yyyy-MM-dd') }}-processed, Parent: Archive folder ID
5. Google Drive (Move File) – File ID from trigger, New Parent: ID from Create Folder step
6. Slack – Channel: #client-files, Message: New file processed: {{ $('Google Drive Trigger').item.json.name }}

Shared Drives vs My Drive – Common Gotcha
This is where most people get tripped up. Google Drive has two distinct storage areas. My Drive is personal storage – files are owned by you and it's the default for all Drive API calls. Shared Drives (formerly Team Drives) are shared organizational storage where files are owned by the organization, not an individual, with different access and permission rules.
What Changes for Shared Drives
When working with Shared Drives in n8n: (1) Enable Shared Drive support – in your Google Drive nodes, select your drive by name or ID from the Shared Drive option. (2) For List Files and Trigger nodes, enable Include Items from All Drives to see Shared Drive contents. (3) n8n handles supportsAllDrives automatically when you select a Shared Drive. (4) Permissions are inherited from the drive – you can't share a Shared Drive file the same way as a personal file.
If your trigger isn't firing on files in a Shared Drive, ensure you've explicitly selected the Shared Drive in the trigger settings rather than leaving it on "My Drive".
Common Errors and Fixes
Insufficient Permission / OAuth Scope Error
Symptom: API returns 403 with "insufficientPermissions" or "Request had insufficient authentication scopes". Fix: Your OAuth credential was created with read-only Drive scope. Delete the credential in n8n, update the OAuth scope in Google Cloud Console to https://www.googleapis.com/auth/drive (full access), and reconnect.
File Not Found Error
Symptom: 404 File not found when downloading, moving, or getting a file. Fix: Two common causes – the file ID is wrong or has changed, or the user doesn't have access to the file. Verify the file ID from the trigger output and check folder-level sharing settings.
Large File Upload Failures
Symptom: Upload fails on files over ~5MB. Fix: n8n's Google Drive node uses resumable uploads for large files, but your n8n instance needs enough memory. For files over 100MB, consider using the Google Drive API's resumable upload endpoint via an HTTP Request node instead.
Trigger Not Firing
Symptom: Files are added to the folder but the workflow doesn't start. Fix: Check three things – (1) the correct folder is selected in the trigger using the folder picker to confirm the ID, (2) the n8n workflow is activated (not just open in the editor), and (3) for Shared Drives, confirm Include Items from All Drives is enabled.
How Synta Generates Google Drive Workflows from Plain English
Building these workflows manually – finding the right nodes, connecting credential refs, wiring up folder IDs, handling Shared Drive flags – takes time even if you know n8n well.
Synta lets you describe what you want in plain English and generates the n8n workflow for you. Type something like: "Watch my Google Drive folder called 'Client Uploads' for new PDF files. When one arrives, download it, send it to my webhook, then move it to a folder named today's date." Synta builds the complete workflow – all pre-wired with the right field mappings.
The Synta MCP connects to your n8n instance directly, so the workflow is deployed live. It uses a library of 10,000+ production-tested templates and validates the workflow before deploying to catch configuration errors automatically. For teams building multiple Drive-connected workflows, this cuts setup time from 30-45 minutes per workflow down to a few seconds.
Frequently Asked Questions
Can n8n watch multiple Google Drive folders at the same time?
Yes. Use separate Google Drive Trigger nodes in different workflows, each pointing to a different folder. You can also use a single trigger watching a parent folder with Include Items from Subfolders enabled, then route with an IF node based on which subfolder the file landed in.
How do I upload a file from a URL to Google Drive in n8n?
Use an HTTP Request node (GET, with Binary Output enabled) to download the file into n8n's memory, then pass it to a Google Drive node with the Upload File operation. Connect the binary output from the HTTP node to the Google Drive node's binary input.
What Google Drive file size limits apply in n8n?
The Google Drive API supports files up to 5TB. In practice, n8n's memory limits are the constraint. For large files, ensure your n8n instance has enough RAM, or use streaming approaches for files over 100MB.
Can I use a Google service account instead of OAuth2?
Yes. n8n supports Google Service Account credentials. Create a service account in Google Cloud Console, download the JSON key, and add it as a Google Service Account credential type in n8n. Remember to share the Drive folders with the service account's email address.
How do I create a nested folder structure in one workflow?
Chain multiple Create Folder operations. Create the top-level folder first, capture its ID from the output, then create subfolders using that ID as the parent. n8n's expression syntax lets you reference previous node outputs: {{ $('Create Top Folder').item.json.id }}.
Get Started
The n8n Google Drive integration is one of the most useful for automating file-based workflows. Once your OAuth credential is set up, you can chain Drive triggers and actions with hundreds of other n8n nodes – Slack, email, databases, APIs, and more.
If you'd rather skip the manual configuration and describe your workflow in plain English instead, try Synta and let it build the n8n workflow for you.