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.

Action (binary) Data & Storage v1 Binary data

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

DirectionPort(s)
InputInput
OutputOutput, Error

Credentials

This tool requires Google Drive OAuth2 credentials. See the Credentials Guide for setup instructions.

Resources

ResourceValue
Filefile
Folderfolder
File/FolderfileFolder
Shared Drivedrive

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.

OperationValueDescription
CopycopyCopy a file
Create From TextcreateFromTextCreate a file from text content
DeletedeleteDelete or trash a file
DownloaddownloadDownload a file
MovemoveMove a file to another folder
ShareshareShare a file with a user, group, or domain
UpdateupdateUpdate file metadata or content
UploaduploadUpload a binary file to Google Drive
CreatecreateCreate a new folder
DeletedeleteDelete or trash a folder
ShareshareShare a folder
SearchsearchSearch files and folders
CreatecreateCreate a shared drive
DeletedeleteDelete a shared drive
GetgetGet a shared drive
ListlistList shared drives
UpdateupdateUpdate a shared drive

Parameters

File: Upload

ParameterTypeRequiredDefaultDescription
Input Binary FieldstringYesdataName of the binary property containing the file data to upload.
File NamestringNoThe name of the file. If not specified, the original binary file name is used. Supports expressions.
Parent DrivestringNoMy DriveThe drive where to upload the file. Use “My Drive” for personal drive or a shared drive ID.
Parent FolderstringNorootThe folder where to upload the file. Use “root” for the drive root.
OptionscollectionNo{}Upload behaviour and metadata.
— Simplify OutputbooleanNotrueWhether to return simplified output.
— Keep Revision ForeverbooleanNofalseWhether to pin this revision forever.
— OCR LanguagestringNoISO 639-1 language hint for OCR.
— Use Content As Indexable TextbooleanNofalseWhether to use uploaded content as indexable text.
— Properties (JSON)jsonNo{}Key-value properties visible to all apps (JSON object).
— App Properties (JSON)jsonNo{}Key-value properties private to the requesting app (JSON object).

File: Download

ParameterTypeRequiredDefaultDescription
File IDstringYesThe ID of the file. Can be found in the file URL. Supports expressions.
OptionscollectionNo{}Download destination and export formats.
— Binary Property NamestringNodataName 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 NamestringNoOverride the downloaded file name.
— Google Docs Export FormatoptionsNotext/htmlFormat 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 FormatoptionsNotext/csvFormat 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 FormatoptionsNoapplication/vnd.openxmlformats-officedocument.presentationml.presentationFormat to export Google Slides as.
Options: application/vnd.openxmlformats-officedocument.presentationml.presentation (PPTX), application/vnd.oasis.opendocument.presentation (ODP), application/pdf
— Google Drawings Export FormatoptionsNoimage/jpegFormat to export Google Drawings as.
Options: image/jpeg, application/pdf, image/png, image/svg+xml

File: Copy

ParameterTypeRequiredDefaultDescription
File IDstringYesThe ID of the file. Can be found in the file URL. Supports expressions.
File NamestringNoName of the copied file. Defaults to “Copy of {original name}”. Supports expressions.
Copy In Same FolderbooleanNotrueWhether to copy to the same folder as the original.
Target DrivestringNoMy DriveTarget drive ID for the copy. (shown when Copy In Same Folder is false)
Target FolderstringNorootTarget folder ID for the copy. (shown when Copy In Same Folder is false)
OptionscollectionNo{}Extra properties for the copy.
— Copy Requires Writer PermissionbooleanNofalseWhether to disable copy/print/download for readers and commenters.
— DescriptionstringNoA short description of the copied file.

File: Create From Text

ParameterTypeRequiredDefaultDescription
File ContentstringNoThe text content of the file to create. Supports expressions.
File NamestringNoName of the file. Defaults to “Untitled”. Supports expressions.
Parent DrivestringNoMy DriveThe drive where to upload the file. Use “My Drive” for personal drive or a shared drive ID.
Parent FolderstringNorootThe folder where to upload the file. Use “root” for the drive root.
OptionscollectionNo{}Conversion behaviour and metadata.
— Convert to Google DocumentbooleanNofalseWhether to create a Google Doc instead of a .txt file. Requires Google Docs API to be enabled.
— Keep Revision ForeverbooleanNofalseWhether to pin this revision forever.
— OCR LanguagestringNoISO 639-1 language hint for OCR.
— Use Content As Indexable TextbooleanNofalseWhether to use the content as indexable text.
— Properties (JSON)jsonNo{}Key-value properties visible to all apps (JSON object).
— App Properties (JSON)jsonNo{}Key-value properties private to the requesting app (JSON object).

File: Move

ParameterTypeRequiredDefaultDescription
File IDstringYesThe ID of the file. Can be found in the file URL. Supports expressions.
Target DrivestringNoMy DriveDrive to move the file to.
Target FolderstringNorootFolder to move the file to.

File: Update

ParameterTypeRequiredDefaultDescription
File IDstringYesThe ID of the file. Can be found in the file URL. Supports expressions.
Change File ContentbooleanNofalseWhether to upload new binary content to replace the file.
Input Binary FieldstringNodataBinary property containing the new file content. (shown when Change File Content is true)
New File NamestringNoNew name for the file. Leave empty to keep the current name. Supports expressions.
OptionscollectionNo{}Metadata to change and fields to return.
— Keep Revision ForeverbooleanNofalseWhether to pin this revision forever.
— OCR LanguagestringNoISO 639-1 language hint for OCR.
— Use Content As Indexable TextbooleanNofalseWhether to use the content as indexable text.
— Move to TrashbooleanNofalseWhether to move the file to trash.
— Return FieldsmultiOptionsNo[]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)jsonNo{}Key-value properties visible to all apps (JSON object).
— App Properties (JSON)jsonNo{}Key-value properties private to the requesting app (JSON object).

File: Delete

ParameterTypeRequiredDefaultDescription
File IDstringYesThe ID of the file. Can be found in the file URL. Supports expressions.
OptionscollectionNo{}Deletion behaviour.
— Delete PermanentlybooleanNofalseWhether to permanently delete instead of trashing.

File: Share

ParameterTypeRequiredDefaultDescription
File IDstringYesThe ID of the file. Can be found in the file URL. Supports expressions.
Permission RoleoptionsNoreaderThe role to grant.
Options: reader, writer, commenter, fileOrganizer, organizer, owner
Permission TypeoptionsNouserThe scope of the permission.
Options: user, group, domain, anyone
Email AddressstringNoEmail address of the user or group. (shown when Permission Type is user, group)
DomainstringNoThe domain to share with. (shown when Permission Type is domain)
OptionscollectionNo{}Notification and ownership settings.
— Allow File DiscoverybooleanNofalseWhether to allow file discovery through search.
— Email MessagestringNoCustom message for the notification email.
— Send Notification EmailbooleanNofalseWhether to email the recipient about the share.
— Transfer OwnershipbooleanNofalseWhether to transfer ownership to the recipient.
— Move To New Owners RootbooleanNofalseWhether to move the file to the new owner’s root folder.
— Use Domain Admin AccessbooleanNofalseWhether to act as a domain administrator.

Folder: Create

ParameterTypeRequiredDefaultDescription
Folder NamestringNoName of the new folder. Defaults to “Untitled”. Supports expressions.
Parent DrivestringNoMy DriveDrive where the folder will be created.
Parent FolderstringNorootParent folder ID. Use “root” for drive root.
OptionscollectionNo{}Folder appearance and output shape.
— Simplify OutputbooleanNotrueWhether to return simplified output.
— Folder ColorstringNoHex RGB color for the folder.

Folder: Delete

ParameterTypeRequiredDefaultDescription
Folder IDstringYesThe ID of the folder. Supports expressions.
OptionscollectionNo{}Deletion behaviour.
— Delete PermanentlybooleanNofalseWhether to permanently delete instead of trashing.

Folder: Share

ParameterTypeRequiredDefaultDescription
Folder IDstringYesThe ID of the folder. Supports expressions.
Permission RoleoptionsNoreaderThe role to grant.
Options: reader, writer, commenter, fileOrganizer, organizer, owner
Permission TypeoptionsNouserThe scope of the permission.
Options: user, group, domain, anyone
Email AddressstringNoEmail address of the user or group. (shown when Permission Type is user, group)
DomainstringNoThe domain to share with. (shown when Permission Type is domain)
OptionscollectionNo{}Notification and ownership settings.
— Allow File DiscoverybooleanNofalseWhether to allow file discovery through search.
— Email MessagestringNoCustom message for the notification email.
— Send Notification EmailbooleanNofalseWhether to email the recipient about the share.
— Transfer OwnershipbooleanNofalseWhether to transfer ownership to the recipient.
— Move To New Owners RootbooleanNofalseWhether to move the file to the new owner’s root folder.
— Use Domain Admin AccessbooleanNofalseWhether to act as a domain administrator.
ParameterTypeRequiredDefaultDescription
Search MethodoptionsNonameHow the Search Query is interpreted.
Options: name (search by name), query (advanced Drive query)
Search QuerystringNoFile or folder name to search for (partial match), or a full Drive query string for advanced search. Supports expressions.
Return AllbooleanNofalseWhether to return all results or only up to a given limit.
LimitnumberNo50Max number of results. (shown when Return All is false)
FiltercollectionNo{}Narrow the scope of the search.
— Drive IDstringNoScope search to a specific drive. Leave empty for all drives.
— Folder IDstringNoOnly search direct children of this folder.
— What to SearchoptionsNoallWhich kinds of item to return.
Options: all (files and folders), files, folders
— Include TrashedbooleanNofalseWhether to include trashed items in the results.
OptionscollectionNo{}Response shaping.
— Return FieldsmultiOptionsNo[]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

ParameterTypeRequiredDefaultDescription
NamestringYesThe name of the shared drive. Supports expressions.
OptionscollectionNo{}Appearance and restrictions for the new drive.
— Color RGBstringNoHex RGB color for the shared drive.
— HiddenbooleanNofalseWhether the shared drive is hidden from the drive list.
— Restrictions (JSON)jsonNo{}JSON object with restriction booleans: adminManagedRestrictions, copyRequiresWriterPermission, domainUsersOnly, driveMembersOnly.

Shared Drive: Get

ParameterTypeRequiredDefaultDescription
Drive IDstringYesThe ID of the shared drive. Supports expressions.
OptionscollectionNo{}Access mode.
— Use Domain Admin AccessbooleanNofalseWhether to act as a domain administrator.

Shared Drive: List

ParameterTypeRequiredDefaultDescription
Return AllbooleanNofalseWhether to return all shared drives or only up to a given limit.
LimitnumberNo100Max number of shared drives to return. (shown when Return All is false)
OptionscollectionNo{}Search and access options.
— QuerystringNoSearch query for shared drives.
— Use Domain Admin AccessbooleanNofalseWhether to act as a domain administrator.

Shared Drive: Update

ParameterTypeRequiredDefaultDescription
Drive IDstringYesThe ID of the shared drive. Supports expressions.
Update FieldscollectionNo{}Properties of the shared drive to change.
— NamestringNoNew name for the shared drive.
— Color RGBstringNoHex RGB color for the shared drive.
— Restrictions (JSON)jsonNo{}JSON object with restriction booleans.

Shared Drive: Delete

ParameterTypeRequiredDefaultDescription
Drive IDstringYesThe ID of the shared drive. Supports expressions.

All Operations

ParameterTypeRequiredDefaultDescription
AuthenticationoptionsNooAuth2Authentication method to use.
Options: oAuth2, serviceAccount
Google AccountcredentialNoConnect or select your Google account. (shown when Authentication is oAuth2)
Service Account EmailstringYesThe email address of the Google service account. (shown when Authentication is serviceAccount)
Private KeystringYesThe private key from the service account JSON key file. (shown when Authentication is serviceAccount)
Max ConcurrencynumberNo5Maximum 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.

OperationOutput
file / upload, copy, createFromText, move, updateThe Drive file metadata (id, name, mimeType, webViewLink, parents …).
file / downloadJSON unchanged; the file is written to the binary property you named, alongside any binary already on the item.
file / deleteid — the file that was removed — and success: true.
file / share, folder / shareThe permission Google Drive created (id, type, role …).
folder / createThe new folder’s metadata.
folder / deletefolderId and success: true.
fileFolder / searchA results array — one entry per match, or an empty array when nothing matched.
drive / create, get, updateThe shared drive’s metadata.
drive / listA results array — one entry per shared drive.
drive / deletesuccess: 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

ModeBehavior
stopHalts workflow on first error
continueSkips failed items, passes successful ones through
errorPortRoutes failed items to Error output port

Tips

Manage Google Drive files, folders, and shared drives: upload, download, copy, move, search, share, and more.

  • My Drive and root are 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. name does a partial name match on whatever you type; query passes 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. user and group take an Email Address, domain takes a Domain, and anyone takes 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 BusyBot

Last updated . Spotted something wrong? Tell us.