Reference · Tools
Google Drive
Manage files, folders, and shared drives on Google Drive. Upload, download, copy, move, search, and share files with full shared drive support.
The Google Drive node lets you upload, download, copy, move, search, share, and delete files and folders across both personal and shared drives. It handles binary file transfers directly — making it straightforward to build pipelines that, say, pull a report from an upstream node and store it in a team shared drive. Google-native formats like Docs and Sheets are exported to your chosen file type on download.
- Node type
- Action (binary)
- Parameters
- 57
- Outputs
- Output, Error
- Credentials
- Google Drive OAuth2
Google Drive
Manage files, folders, and shared drives on Google Drive
Overview
Provides file management on Google Drive: upload binary files, download files (including Google Docs, Sheets, Slides and Drawings exported to a format you choose), copy, move, rename, delete, share files and folders, search across drives, create folders, and administer shared drives. Both personal My Drive and shared drives are supported. Download operations produce binary data on the output item; upload operations consume binary data from an upstream node.
Category: Data & Storage
Tool Name: google_drive
Version: 1
Appearance: Icon: si-googledrive | Color: #4285F4
Node Type
Action (Binary) — handles file/binary data operations
Input / Output
| Direction | Port(s) |
|---|---|
| Input | Input |
| Output | Output, Error |
Credentials
This tool requires Google Drive OAuth2 credentials. See the Credentials Guide for setup instructions.
Resources
| Resource | Value |
|---|---|
| File | file |
| Folder | folder |
| File/Folder | fileFolder |
| Shared Drive | drive |
fileFolder is the search resource — it looks across files and folders together.
Operations
The available operations depend on the selected resource — file operations first, then folder, file/folder and shared drive.
| Operation | Value | Description |
|---|---|---|
| Copy | copy | Copy a file |
| Create From Text | createFromText | Create a file from text content |
| Delete | delete | Delete or trash a file |
| Download | download | Download a file |
| Move | move | Move a file to another folder |
| Share | share | Share a file with a user, group, or domain |
| Update | update | Update file metadata or content |
| Upload | upload | Upload a binary file to Google Drive |
| Create | create | Create a new folder |
| Delete | delete | Delete or trash a folder |
| Share | share | Share a folder |
| Search | search | Search files and folders |
| Create | create | Create a shared drive |
| Delete | delete | Delete a shared drive |
| Get | get | Get a shared drive |
| List | list | List shared drives |
| Update | update | Update a shared drive |
Parameters
File: Upload
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| Input Binary Field | string | Yes | data | Name of the binary property containing the file data to upload. |
| File Name | string | No | — | The name of the file. If not specified, the original binary file name is used. Supports expressions. |
| Parent Drive | string | No | My Drive | The drive where to upload the file. Use “My Drive” for personal drive or a shared drive ID. |
| Parent Folder | string | No | root | The folder where to upload the file. Use “root” for the drive root. |
| Options | collection | No | {} | Upload behaviour and metadata. |
| — Simplify Output | boolean | No | true | Whether to return simplified output. |
| — Keep Revision Forever | boolean | No | false | Whether to pin this revision forever. |
| — OCR Language | string | No | — | ISO 639-1 language hint for OCR. |
| — Use Content As Indexable Text | boolean | No | false | Whether to use uploaded content as indexable text. |
| — Properties (JSON) | json | No | {} | Key-value properties visible to all apps (JSON object). |
| — App Properties (JSON) | json | No | {} | Key-value properties private to the requesting app (JSON object). |
File: Download
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| File ID | string | Yes | — | The ID of the file. Can be found in the file URL. Supports expressions. |
| Options | collection | No | {} | Download destination and export formats. |
| — Binary Property Name | string | No | data | Name of the binary property to write the downloaded file to. Names are case-sensitive — see the upstream node’s Binary Data panel for the exact names to use. |
| — File Name | string | No | — | Override the downloaded file name. |
| — Google Docs Export Format | options | No | text/html | Format to export Google Docs as. |
Options: text/html, application/vnd.openxmlformats-officedocument.wordprocessingml.document (DOCX), application/vnd.oasis.opendocument.text (ODT), application/pdf, application/rtf, text/plain | ||||
| — Google Sheets Export Format | options | No | text/csv | Format to export Google Sheets as. |
Options: text/csv, application/vnd.openxmlformats-officedocument.spreadsheetml.sheet (XLSX), application/vnd.oasis.opendocument.spreadsheet (ODS), application/pdf | ||||
| — Google Slides Export Format | options | No | application/vnd.openxmlformats-officedocument.presentationml.presentation | Format to export Google Slides as. |
Options: application/vnd.openxmlformats-officedocument.presentationml.presentation (PPTX), application/vnd.oasis.opendocument.presentation (ODP), application/pdf | ||||
| — Google Drawings Export Format | options | No | image/jpeg | Format to export Google Drawings as. |
Options: image/jpeg, application/pdf, image/png, image/svg+xml |
File: Copy
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| File ID | string | Yes | — | The ID of the file. Can be found in the file URL. Supports expressions. |
| File Name | string | No | — | Name of the copied file. Defaults to “Copy of {original name}”. Supports expressions. |
| Copy In Same Folder | boolean | No | true | Whether to copy to the same folder as the original. |
| Target Drive | string | No | My Drive | Target drive ID for the copy. (shown when Copy In Same Folder is false) |
| Target Folder | string | No | root | Target folder ID for the copy. (shown when Copy In Same Folder is false) |
| Options | collection | No | {} | Extra properties for the copy. |
| — Copy Requires Writer Permission | boolean | No | false | Whether to disable copy/print/download for readers and commenters. |
| — Description | string | No | — | A short description of the copied file. |
File: Create From Text
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| File Content | string | No | — | The text content of the file to create. Supports expressions. |
| File Name | string | No | — | Name of the file. Defaults to “Untitled”. Supports expressions. |
| Parent Drive | string | No | My Drive | The drive where to upload the file. Use “My Drive” for personal drive or a shared drive ID. |
| Parent Folder | string | No | root | The folder where to upload the file. Use “root” for the drive root. |
| Options | collection | No | {} | Conversion behaviour and metadata. |
| — Convert to Google Document | boolean | No | false | Whether to create a Google Doc instead of a .txt file. Requires Google Docs API to be enabled. |
| — Keep Revision Forever | boolean | No | false | Whether to pin this revision forever. |
| — OCR Language | string | No | — | ISO 639-1 language hint for OCR. |
| — Use Content As Indexable Text | boolean | No | false | Whether to use the content as indexable text. |
| — Properties (JSON) | json | No | {} | Key-value properties visible to all apps (JSON object). |
| — App Properties (JSON) | json | No | {} | Key-value properties private to the requesting app (JSON object). |
File: Move
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| File ID | string | Yes | — | The ID of the file. Can be found in the file URL. Supports expressions. |
| Target Drive | string | No | My Drive | Drive to move the file to. |
| Target Folder | string | No | root | Folder to move the file to. |
File: Update
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| File ID | string | Yes | — | The ID of the file. Can be found in the file URL. Supports expressions. |
| Change File Content | boolean | No | false | Whether to upload new binary content to replace the file. |
| Input Binary Field | string | No | data | Binary property containing the new file content. (shown when Change File Content is true) |
| New File Name | string | No | — | New name for the file. Leave empty to keep the current name. Supports expressions. |
| Options | collection | No | {} | Metadata to change and fields to return. |
| — Keep Revision Forever | boolean | No | false | Whether to pin this revision forever. |
| — OCR Language | string | No | — | ISO 639-1 language hint for OCR. |
| — Use Content As Indexable Text | boolean | No | false | Whether to use the content as indexable text. |
| — Move to Trash | boolean | No | false | Whether to move the file to trash. |
| — Return Fields | multiOptions | No | [] | Which file properties to return. |
Options: * (all), id, kind, name, mimeType, starred, trashed, explicitlyTrashed, exportLinks, hasThumbnail, iconLink, permissions, shared, spaces, thumbnailLink, version, webViewLink | ||||
| — Properties (JSON) | json | No | {} | Key-value properties visible to all apps (JSON object). |
| — App Properties (JSON) | json | No | {} | Key-value properties private to the requesting app (JSON object). |
File: Delete
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| File ID | string | Yes | — | The ID of the file. Can be found in the file URL. Supports expressions. |
| Options | collection | No | {} | Deletion behaviour. |
| — Delete Permanently | boolean | No | false | Whether to permanently delete instead of trashing. |
File: Share
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| File ID | string | Yes | — | The ID of the file. Can be found in the file URL. Supports expressions. |
| Permission Role | options | No | reader | The role to grant. |
Options: reader, writer, commenter, fileOrganizer, organizer, owner | ||||
| Permission Type | options | No | user | The scope of the permission. |
Options: user, group, domain, anyone | ||||
| Email Address | string | No | — | Email address of the user or group. (shown when Permission Type is user, group) |
| Domain | string | No | — | The domain to share with. (shown when Permission Type is domain) |
| Options | collection | No | {} | Notification and ownership settings. |
| — Allow File Discovery | boolean | No | false | Whether to allow file discovery through search. |
| — Email Message | string | No | — | Custom message for the notification email. |
| — Send Notification Email | boolean | No | false | Whether to email the recipient about the share. |
| — Transfer Ownership | boolean | No | false | Whether to transfer ownership to the recipient. |
| — Move To New Owners Root | boolean | No | false | Whether to move the file to the new owner’s root folder. |
| — Use Domain Admin Access | boolean | No | false | Whether to act as a domain administrator. |
Folder: Create
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| Folder Name | string | No | — | Name of the new folder. Defaults to “Untitled”. Supports expressions. |
| Parent Drive | string | No | My Drive | Drive where the folder will be created. |
| Parent Folder | string | No | root | Parent folder ID. Use “root” for drive root. |
| Options | collection | No | {} | Folder appearance and output shape. |
| — Simplify Output | boolean | No | true | Whether to return simplified output. |
| — Folder Color | string | No | — | Hex RGB color for the folder. |
Folder: Delete
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| Folder ID | string | Yes | — | The ID of the folder. Supports expressions. |
| Options | collection | No | {} | Deletion behaviour. |
| — Delete Permanently | boolean | No | false | Whether to permanently delete instead of trashing. |
Folder: Share
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| Folder ID | string | Yes | — | The ID of the folder. Supports expressions. |
| Permission Role | options | No | reader | The role to grant. |
Options: reader, writer, commenter, fileOrganizer, organizer, owner | ||||
| Permission Type | options | No | user | The scope of the permission. |
Options: user, group, domain, anyone | ||||
| Email Address | string | No | — | Email address of the user or group. (shown when Permission Type is user, group) |
| Domain | string | No | — | The domain to share with. (shown when Permission Type is domain) |
| Options | collection | No | {} | Notification and ownership settings. |
| — Allow File Discovery | boolean | No | false | Whether to allow file discovery through search. |
| — Email Message | string | No | — | Custom message for the notification email. |
| — Send Notification Email | boolean | No | false | Whether to email the recipient about the share. |
| — Transfer Ownership | boolean | No | false | Whether to transfer ownership to the recipient. |
| — Move To New Owners Root | boolean | No | false | Whether to move the file to the new owner’s root folder. |
| — Use Domain Admin Access | boolean | No | false | Whether to act as a domain administrator. |
File/Folder: Search
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| Search Method | options | No | name | How the Search Query is interpreted. |
Options: name (search by name), query (advanced Drive query) | ||||
| Search Query | string | No | — | File or folder name to search for (partial match), or a full Drive query string for advanced search. Supports expressions. |
| Return All | boolean | No | false | Whether to return all results or only up to a given limit. |
| Limit | number | No | 50 | Max number of results. (shown when Return All is false) |
| Filter | collection | No | {} | Narrow the scope of the search. |
| — Drive ID | string | No | — | Scope search to a specific drive. Leave empty for all drives. |
| — Folder ID | string | No | — | Only search direct children of this folder. |
| — What to Search | options | No | all | Which kinds of item to return. |
Options: all (files and folders), files, folders | ||||
| — Include Trashed | boolean | No | false | Whether to include trashed items in the results. |
| Options | collection | No | {} | Response shaping. |
| — Return Fields | multiOptions | No | [] | Which file properties to return. |
Options: * (all), id, kind, name, mimeType, starred, trashed, explicitlyTrashed, exportLinks, hasThumbnail, iconLink, permissions, shared, spaces, thumbnailLink, version, webViewLink |
Shared Drive: Create
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| Name | string | Yes | — | The name of the shared drive. Supports expressions. |
| Options | collection | No | {} | Appearance and restrictions for the new drive. |
| — Color RGB | string | No | — | Hex RGB color for the shared drive. |
| — Hidden | boolean | No | false | Whether the shared drive is hidden from the drive list. |
| — Restrictions (JSON) | json | No | {} | JSON object with restriction booleans: adminManagedRestrictions, copyRequiresWriterPermission, domainUsersOnly, driveMembersOnly. |
Shared Drive: Get
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| Drive ID | string | Yes | — | The ID of the shared drive. Supports expressions. |
| Options | collection | No | {} | Access mode. |
| — Use Domain Admin Access | boolean | No | false | Whether to act as a domain administrator. |
Shared Drive: List
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| Return All | boolean | No | false | Whether to return all shared drives or only up to a given limit. |
| Limit | number | No | 100 | Max number of shared drives to return. (shown when Return All is false) |
| Options | collection | No | {} | Search and access options. |
| — Query | string | No | — | Search query for shared drives. |
| — Use Domain Admin Access | boolean | No | false | Whether to act as a domain administrator. |
Shared Drive: Update
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| Drive ID | string | Yes | — | The ID of the shared drive. Supports expressions. |
| Update Fields | collection | No | {} | Properties of the shared drive to change. |
| — Name | string | No | — | New name for the shared drive. |
| — Color RGB | string | No | — | Hex RGB color for the shared drive. |
| — Restrictions (JSON) | json | No | {} | JSON object with restriction booleans. |
Shared Drive: Delete
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| Drive ID | string | Yes | — | The ID of the shared drive. Supports expressions. |
All Operations
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| Authentication | options | No | oAuth2 | Authentication method to use. |
Options: oAuth2, serviceAccount | ||||
| Google Account | credential | No | — | Connect or select your Google account. (shown when Authentication is oAuth2) |
| Service Account Email | string | Yes | — | The email address of the Google service account. (shown when Authentication is serviceAccount) |
| Private Key | string | Yes | — | The private key from the service account JSON key file. (shown when Authentication is serviceAccount) |
| Max Concurrency | number | No | 5 | Maximum number of items to process concurrently. Google Drive recommends lower concurrency due to per-user rate limits. |
Output Data
Every operation produces exactly one output item. Results are merged into the input item’s JSON, so the incoming fields stay available downstream, and binary data on the input item is forwarded.
| Operation | Output |
|---|---|
file / upload, copy, createFromText, move, update | The Drive file metadata (id, name, mimeType, webViewLink, parents …). |
file / download | JSON unchanged; the file is written to the binary property you named, alongside any binary already on the item. |
file / delete | id — the file that was removed — and success: true. |
file / share, folder / share | The permission Google Drive created (id, type, role …). |
folder / create | The new folder’s metadata. |
folder / delete | folderId and success: true. |
fileFolder / search | A results array — one entry per match, or an empty array when nothing matched. |
drive / create, get, update | The shared drive’s metadata. |
drive / list | A results array — one entry per shared drive. |
drive / delete | success: true. |
A file metadata result looks like this:
{
"id": "1ABC123DEF456GHI789JKL",
"name": "Q4-2024-Report.pdf",
"mimeType": "application/pdf",
"webViewLink": "https://drive.google.com/file/d/1ABC123DEF456GHI789JKL/view"
}
Because Search and List return arrays on a single item, use a Split Out node on results when you want one workflow item per match.
Usage Examples
- Download a file from Google Drive
- Upload a binary file to a Google Drive folder
- Search for files by name in Google Drive
- Copy a file to another folder
- Create a shared drive
- Share a file with a specific user
- Export a Google Doc as PDF
Example Configuration
Upload binary data from an upstream node:
{
"type": "google_drive",
"parameters": {
"resource": "file",
"operation": "upload",
"inputDataFieldName": "data",
"name": "{{ $json.fileName }}",
"driveId": "My Drive",
"folderId": "root",
"options": {
"keepRevisionForever": true,
"useContentAsIndexableText": true
}
}
}
Download a file, exporting Google-native formats on the way out:
{
"type": "google_drive",
"parameters": {
"resource": "file",
"operation": "download",
"fileId": "{{ $json.id }}",
"options": {
"binaryPropertyName": "fileData",
"fileName": "converted-doc",
"docsToFormat": "application/pdf",
"sheetsToFormat": "text/csv"
}
}
}
Copy a file into a different drive and folder:
{
"type": "google_drive",
"parameters": {
"resource": "file",
"operation": "copy",
"fileId": "1ABC123DEF456GHI789JKL",
"name": "Copy of Important Document",
"sameFolder": false,
"driveId": "0ABCD1234567890",
"folderId": "1DEF456GHI789ABC123",
"options": {
"copyRequiresWriterPermission": true,
"description": "Copied for review"
}
}
}
Create a Google Doc from text:
{
"type": "google_drive",
"parameters": {
"resource": "file",
"operation": "createFromText",
"content": "{{ $json.body }}",
"name": "{{ $json.title }}",
"driveId": "My Drive",
"folderId": "root",
"options": {
"convertToGoogleDocument": true
}
}
}
Share a file with a colleague and notify them:
{
"type": "google_drive",
"parameters": {
"resource": "file",
"operation": "share",
"fileId": "1ABC123DEF456GHI789JKL",
"permissionRole": "writer",
"permissionType": "user",
"emailAddress": "colleague@example.com",
"options": {
"sendNotificationEmail": true,
"emailMessage": "Please review this document"
}
}
}
Replace a file’s contents and rename it:
{
"type": "google_drive",
"parameters": {
"resource": "file",
"operation": "update",
"fileId": "1ABC123DEF456GHI789JKL",
"changeFileContent": true,
"inputDataFieldName": "data",
"newUpdatedFileName": "Updated Document v2.pdf",
"options": {
"keepRevisionForever": true
}
}
}
Create a folder:
{
"type": "google_drive",
"parameters": {
"resource": "folder",
"operation": "create",
"name": "Project Files",
"driveId": "0ABCD1234567890",
"parentFolderId": "root",
"options": {
"simplifyOutput": true,
"folderColorRgb": "#ff0000"
}
}
}
Search by name within one drive:
{
"type": "google_drive",
"parameters": {
"resource": "fileFolder",
"operation": "search",
"searchMethod": "name",
"queryString": "budget",
"returnAll": false,
"limit": 50,
"filter": {
"driveId": "0ABCD1234567890",
"whatToSearch": "all",
"includeTrashed": false
},
"options": {
"fields": ["name", "id", "mimeType"]
}
}
}
Search with a raw Drive query:
{
"type": "google_drive",
"parameters": {
"resource": "fileFolder",
"operation": "search",
"searchMethod": "query",
"queryString": "mimeType='application/pdf' and modifiedTime > '2023-01-01T00:00:00'",
"returnAll": true,
"filter": {
"includeTrashed": false
}
}
}
Create a shared drive:
{
"type": "google_drive",
"parameters": {
"resource": "drive",
"operation": "create",
"name": "Marketing Team Drive",
"options": {
"colorRgb": "#4285f4",
"hidden": false,
"restrictions": "{\"copyRequiresWriterPermission\": true}"
}
}
}
List shared drives matching a query:
{
"type": "google_drive",
"parameters": {
"resource": "drive",
"operation": "list",
"returnAll": false,
"limit": 25,
"options": {
"q": "name contains 'Project'"
}
}
}
Error Handling
| Mode | Behavior |
|---|---|
| stop | Halts workflow on first error |
| continue | Skips failed items, passes successful ones through |
| errorPort | Routes failed items to Error output port |
Tips
Manage Google Drive files, folders, and shared drives: upload, download, copy, move, search, share, and more.
My Driveandrootare the defaults for a personal drive. Replace Parent Drive with a shared drive ID and Parent Folder with a folder ID to work inside a shared drive.- Google-native files are exported, not downloaded verbatim. Docs, Sheets, Slides and Drawings each have their own export format option; pick the one that matches how the downstream node will read the file.
- Delete trashes by default. Turn on Delete Permanently only when the file should not be recoverable.
- Search has two modes.
namedoes a partial name match on whatever you type;querypasses your string through as a Drive query, which lets you filter on mime type, dates and parents. - Narrow searches with Filter. Scoping to a drive or a folder, and excluding trashed items, keeps result sets small and requests cheap.
- Share needs a recipient that matches Permission Type.
userandgrouptake an Email Address,domaintakes a Domain, andanyonetakes neither. - Copy defaults to the original’s folder. Turn off Copy In Same Folder to reveal the Target Drive and Target Folder parameters.
- Keep Max Concurrency modest. Google Drive enforces per-user rate limits, so a high value tends to produce errors rather than throughput.
Frequently asked questions
How do I download a Google Doc, Sheet, or Slide — and what format does the output come out in?
Google-native files can't be downloaded verbatim, so the node exports them instead. Each file type (Docs, Sheets, Slides, Drawings) has its own export format option you set in the parameters — for example, exporting a Sheet as CSV or XLSX. The result lands as binary data on the Output item, ready for a downstream node to read. Pick the format that matches what the next node in your workflow expects.
What credentials does this node require, and what permissions does the OAuth2 app need?
The node uses Google Drive OAuth2 (credential type: googleDriveOAuth2). You'll need to create or connect an OAuth2 app that has been granted access to the Drive API. The scopes required depend on what operations you run — read-only scopes work for downloads and searches, but write scopes are needed for uploads, moves, shares, and deletes. Authenticate once in BusyBot's credential store and all Google Drive nodes in your workspace can reuse it.
How do I target a shared drive instead of My personal Drive?
By default the node targets your personal My Drive (using 'root' as the parent). To work inside a shared drive, replace the Parent Drive parameter with the shared drive's ID and set the Parent Folder to the specific folder you want. Both personal and shared drives are fully supported across all operations — upload, search, copy, and so on.
When I run a search, does it search everywhere, and how do I keep results manageable?
Search has two modes: 'name' does a partial match on the filename you type, while 'query' passes your string directly as a Drive query expression so you can filter by MIME type, date, parent folder, and more. Regardless of mode, use the Filter options to scope results to a specific drive or folder and to exclude trashed items — this keeps result sets small and avoids burning through API quota unnecessarily.
Does 'delete' permanently remove the file, and what happens to rate limits if I process many files at once?
Delete sends files to the Drive trash by default — they remain recoverable. Turn on the 'Delete Permanently' option only when you're certain the file should not be restorable. On throughput: Google Drive enforces per-user rate limits, so keep the Max Concurrency setting modest. Setting it too high typically produces errors rather than faster processing.
Build with the Google Drive node
Drop it into a workflow, wire it to an agent, or call it on a schedule. You'll need Google Drive OAuth2 credentials first.
Open BusyBotLast updated . Spotted something wrong? Tell us.