> ## Documentation Index
> Fetch the complete documentation index at: https://docs.jelou.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Google Drive

> Manage Google Drive files, folders, and shared drives from your Brain Studio flows.

**Google Drive** is Google Workspace's shared file system. Unlike structured-data integrations such as Sheets or Supabase, Drive operates on **files and folders**: documents, PDFs, images, contracts, and any asset you need to store, organize, or share as part of a process.

In **Brain Studio**, this integration lets your flows create, search, share, and organize files in Drive directly from the conversation, without anyone opening Drive separately.

## What Google Drive enables

When you connect **Google Drive**, you can:

* **Deliver documents to customers from chat** — find a file, adjust permissions, and share a link without anyone manually navigating folders
* **Receive and classify user files** — upload attachments to the right folder with consistent naming by customer, case, or process
* **Provision structure by customer or project** — create folders, copy templates, and share with the assigned team automatically
* **Govern collaboration and permissions** — share resources, resolve access proposals, and work with document comments
* **Check metadata and context** — identify paths, versions, and current user details before making flow decisions

***

## Installation

### Prerequisites

1. A **Google account** with access to **Google Drive**.
2. Sufficient permissions on the resources you will manage (comments, sharing, or shared drives, as applicable).

### How to connect it

You can connect **Google Drive** in two ways:

* **From Marketplace** — find the integration and connect it manually.
* **From Jelou Agent** — if the agent detects you need Drive while building a solution, it will ask you to connect it at that moment.

<Tip>
  If you are creating a solution from scratch, the most common approach is connecting **Google Drive** from **Jelou Agent**. If you already know which integration you need, you can install it manually from **Marketplace**.
</Tip>

In both cases, access is done through **OAuth** in a secure Google window.

<CardGroup cols={2}>
  <Card title="How to use integrations in Brain" href="/en/guides/integraciones/como-usar-integraciones-en-brain" icon="book-open">
    Installation with Jelou Agent or Marketplace, and usage in Canvas versus AI Agent.
  </Card>

  <Card title="Jelou Agent" href="/en/guides/getting-started/jelou-agent" icon="sparkles">
    How to describe your solution so Brain suggests integrations and builds the flow.
  </Card>
</CardGroup>

The following flow describes manual installation from **Marketplace**.

<Steps>
  <Step title="Open Marketplace">
    In Brain Studio, open **Marketplace** from the side menu.
  </Step>

  <Step title="Search Google Drive">
    Find **Google Drive** in the catalog and click **Connect**.
  </Step>

  <Step title="Authorize access with Google">
    A secure Google authorization window will open. Sign in if needed and accept the requested permissions.
  </Step>

  <Step title="Confirm installation">
    Back in Brain Studio, complete the wizard until the integration appears as **connected**.

    <Check>
      In **Marketplace**, Google Drive should appear as connected. From **Canvas** you can add its node, and in **AI Agent** → **Tools** you can enable it.
    </Check>
  </Step>
</Steps>

***

## Available tools

At a high level, actions are grouped as:

* **Query** — search/list files, folders, drives, comments, replies, and metadata.
* **Create or modify** — create, copy, upload, move, update, and share resources.
* **Collaboration and governance** — comments, replies, access proposals, and permissions.
* **Delete** — move to trash or permanently delete resources.

This integration exposes 37 tools in Brain Studio; below is each tool with purpose, inputs, and example.

## Features

<AccordionGroup>
  <Accordion title="Add comment">
    Adds an **unanchored** comment to a supported file (e.g. Google Doc): general feedback without highlighting specific text.

    **Inputs:**

    * **fileId** (string) — File ID.
    * **content** (string) — Comment text (HTML allowed per API).

    **Example:**

    ```json theme={null}
    {
      "fileId": "1XyZdocId",
      "content": "Please review the conclusions section before publishing."
    }
    ```

    [Google documentation: `comments.create`](https://developers.google.com/workspace/drive/api/reference/rest/v3/comments/create)
  </Accordion>

  <Accordion title="Share file or folder">
    Creates a [sharing permission](https://support.google.com/drive/answer/7166529) on a file or folder and may return a sharing URL depending on configuration.

    **Inputs:**

    * **fileId** (string) — File or folder ID.
    * **role** (enum: `reader` | `writer` | `commenter` | `owner`) — Access level.
    * **type** (enum: `user` | `group` | `domain` | `anyone`) — Grantee type.
    * **emailAddress** (optional, string) — Email when `type` is `user` or `group`.
    * **domain** (optional, string) — Domain when `type` is `domain`.
    * **sendNotificationEmail** (optional, boolean) — Send email notification.

    **Example:**

    ```json theme={null}
    {
      "fileId": "1XyZarchivoID",
      "role": "writer",
      "type": "user",
      "emailAddress": "teammate@example.com",
      "sendNotificationEmail": true
    }
    ```

    [Google Help: how sharing works](https://support.google.com/drive/answer/7166529) · [`permissions.create`](https://developers.google.com/drive/api/v3/reference/permissions/create)
  </Accordion>

  <Accordion title="Copy file">
    Creates a copy of a file in your Drive (or another supported location).

    **Inputs:**

    * **fileId** (string) — Source file ID.
    * **name** (optional, string) — Name for the copy.
    * **folderId** (optional, string) — Destination folder.

    **Example:**

    ```json theme={null}
    {
      "fileId": "1XyZarchivoID",
      "name": "report-copy.pdf",
      "folderId": "1A2B3CcarpetaID"
    }
    ```

    [Google documentation: `files.copy`](https://developers.google.com/drive/api/v3/reference/files/copy)
  </Accordion>

  <Accordion title="Create new file from template">
    Creates a **Google Doc** from a template. You can define **placeholders** in the template that the action replaces with values.

    **Inputs:**

    * **templateFileId** (string) — Template document ID.
    * **name** (optional, string) — Title of the new document.
    * **folderId** (optional, string) — Destination folder.
    * **placeholders** / **replacements** (optional, object) — Key-value map (exact field names per Brain Studio).

    <Note>
      Placeholder replacement often follows **mustache**-style conventions; check the integration package for the exact placeholder format.
    </Note>

    **Example:**

    ```json theme={null}
    {
      "templateFileId": "1TplAbC123",
      "name": "Contract - Client X",
      "folderId": "1A2B3CcarpetaID",
      "placeholders": {
        "{{name}}": "Jane",
        "{{date}}": "2025-03-23"
      }
    }
    ```

    [Google: `files` / Docs](https://developers.google.com/drive/api/v3/reference/files/create) · [google-docs-mustaches (placeholders)](https://www.npmjs.com/package/google-docs-mustaches)
  </Accordion>

  <Accordion title="Create new file from text">
    Creates a new file with **plain text** content (e.g. `.txt` or indicated MIME type).

    **Inputs:**

    * **name** (string) — File name.
    * **content** (string) — Plain text body.
    * **mimeType** (optional, string) — Often defaults to `text/plain`.
    * **folderId** (optional, string) — Parent folder.

    **Example:**

    ```json theme={null}
    {
      "name": "notes.txt",
      "content": "Line 1\\nLine 2",
      "mimeType": "text/plain",
      "folderId": "1A2B3CcarpetaID"
    }
    ```

    [Google documentation: `files.create`](https://developers.google.com/drive/api/v3/reference/files/create)
  </Accordion>

  <Accordion title="Create folder">
    Creates an empty folder at the given location.

    **Inputs:**

    * **name** (string) — Folder name.
    * **parentFolderId** (optional, string) — Parent folder.
    * **description** (optional, string) — Description.

    **Example:**

    ```json theme={null}
    {
      "name": "Documents 2025",
      "parentFolderId": "0B1XyZpadreID",
      "description": "Documents for 2025"
    }
    ```

    [Google documentation: `files.create`](https://developers.google.com/drive/api/v3/reference/files/create) (folder type)
  </Accordion>

  <Accordion title="Create shared drive">
    Creates a new **shared drive** (Team Drive).

    **Inputs:**

    * **name** (string) — Shared drive name.
    * **requestId** (optional, string) — Idempotent request ID if required by the API.

    **Example:**

    ```json theme={null}
    {
      "name": "Project Alpha"
    }
    ```

    [Google documentation: `drives.create`](https://developers.google.com/drive/api/v3/reference/drives/create)
  </Accordion>

  <Accordion title="Delete comment">
    Deletes a comment by ID (you must own the comment or have file permissions).

    **Inputs:**

    * **fileId** (string) — File ID.
    * **commentId** (string) — Comment ID.

    **Example:**

    ```json theme={null}
    {
      "fileId": "1XyZdocId",
      "commentId": "AAA-BbCcDd"
    }
    ```

    [Google documentation: `comments.delete`](https://developers.google.com/workspace/drive/api/reference/rest/v3/comments/delete)
  </Accordion>

  <Accordion title="Delete file">
    **Permanently** deletes a file or folder; it does **not** move it to trash.

    **Inputs:**

    * **fileId** (string) — Resource ID.

    <Warning>
      This maps to API `files.delete` and is **destructive**. To trash an item, use **Move file to trash** instead.
    </Warning>

    **Example:**

    ```json theme={null}
    {
      "fileId": "1XyZarchivoID"
    }
    ```

    [Google documentation: `files.delete`](https://developers.google.com/drive/api/v3/reference/files/delete)
  </Accordion>

  <Accordion title="Delete reply">
    Deletes a specific reply to a comment.

    **Inputs:**

    * **fileId** (string) — File ID.
    * **commentId** (string) — Comment ID.
    * **replyId** (string) — Reply ID.

    **Example:**

    ```json theme={null}
    {
      "fileId": "1XyZdocId",
      "commentId": "AAA-BbCcDd",
      "replyId": "reply-id-123"
    }
    ```

    [Google documentation: `replies.delete`](https://developers.google.com/workspace/drive/api/reference/rest/v3/replies/delete)
  </Accordion>

  <Accordion title="Delete shared drive">
    Deletes a shared drive **only when it is empty** (no content).

    **Inputs:**

    * **driveId** (string) — Shared drive ID.

    <Warning>
      The API typically requires the drive to contain no files or folders. Empty the drive first or use other tools to move or delete content.
    </Warning>

    **Example:**

    ```json theme={null}
    {
      "driveId": "0AJxyZunidadID"
    }
    ```

    [Google documentation: `drives.delete`](https://developers.google.com/drive/api/v3/reference/drives/delete)
  </Accordion>

  <Accordion title="Download file">
    Downloads file content. The connector may return **base64** for small files or a **download URL** for large files.

    **Inputs:**

    * **fileId** (string) — File ID.

    **Example:**

    ```json theme={null}
    {
      "fileId": "1XyZarchivoID"
    }
    ```

    [Google documentation: downloads](https://developers.google.com/drive/api/v3/manage-downloads)
  </Accordion>

  <Accordion title="Find file">
    Searches for files using supported criteria (e.g. name or `q` query).

    **Inputs:**

    * **name** (optional, string) — Name or fragment.
    * **query** (optional, string) — Files search query.
    * **pageSize** (optional, number) — Result limit.

    **Example:**

    ```json theme={null}
    {
      "name": "report",
      "pageSize": 20
    }
    ```

    [Google documentation: search files and folders](https://developers.google.com/drive/api/v3/search-files)
  </Accordion>

  <Accordion title="Find folder">
    Searches for folders by name or other supported query.

    **Inputs:**

    * **name** (optional, string) — Folder name.
    * **query** (optional, string) — Query (e.g. `mimeType = 'application/vnd.google-apps.folder'`).

    **Example:**

    ```json theme={null}
    {
      "name": "Billing",
      "query": "mimeType = 'application/vnd.google-apps.folder' and name contains 'Billing'"
    }
    ```

    [Google documentation: search files and folders](https://developers.google.com/drive/api/v3/search-files)
  </Accordion>

  <Accordion title="Find forms">
    Lists or searches **Google Forms** by name (Forms MIME type).

    **Inputs:**

    * **name** (optional, string) — Form name.
    * **query** (optional, string) — Custom query.

    **Example:**

    ```json theme={null}
    {
      "name": "Satisfaction survey",
      "query": "mimeType = 'application/vnd.google-apps.form'"
    }
    ```

    [Google documentation: search files and folders](https://developers.google.com/drive/api/v3/search-files)
  </Accordion>

  <Accordion title="Find spreadsheets">
    Searches for **Google Sheets** by name.

    **Inputs:**

    * **name** (optional, string) — Spreadsheet name.
    * **query** (optional, string) — Query (e.g. `mimeType = 'application/vnd.google-apps.spreadsheet'`).

    **Example:**

    ```json theme={null}
    {
      "name": "Sales Q1",
      "query": "mimeType = 'application/vnd.google-apps.spreadsheet' and name contains 'Sales'"
    }
    ```

    [Google documentation: search files and folders](https://developers.google.com/drive/api/v3/search-files)
  </Accordion>

  <Accordion title="Get comment by ID">
    Gets a specific comment by **commentId** on a file.

    **Inputs:**

    * **fileId** (string) — File ID.
    * **commentId** (string) — Comment ID.

    **Example:**

    ```json theme={null}
    {
      "fileId": "1XyZdocId",
      "commentId": "AAA-BbCcDd"
    }
    ```

    [Google documentation: `comments.get`](https://developers.google.com/workspace/drive/api/reference/rest/v3/comments/get)
  </Accordion>

  <Accordion title="Get current user">
    Returns authenticated account information via **`about.get`**: name, email, storage used, quota, etc.

    **Inputs:**

    * **fields** (optional, string) — Fields to return per API.

    **Example:**

    ```json theme={null}
    {
      "fields": "user,storageQuota"
    }
    ```

    [Google documentation: `about.get`](https://developers.google.com/drive/api/v3/reference/about/get)
  </Accordion>

  <Accordion title="Get file by ID">
    Gets file or folder metadata by **fileId**.

    **Inputs:**

    * **fileId** (string) — File ID.
    * **fields** (optional, string) — Fields to include.

    **Example:**

    ```json theme={null}
    {
      "fileId": "1XyZarchivoID",
      "fields": "id,name,mimeType,parents,webViewLink"
    }
    ```

    [Google documentation: `files.get`](https://developers.google.com/drive/api/reference/rest/v3/files/get)
  </Accordion>

  <Accordion title="Get folder ID for path">
    Resolves the **folderId** for the last segment of a path (e.g. `Folder1/Folder2`), optionally creating missing folders.

    **Inputs:**

    * **path** (string) — Path with separators (format shown in Brain Studio).
    * **rootFolderId** (optional, string) — Root folder if not default “My Drive”.
    * **createMissing** (optional, boolean) — Create missing folders.

    **Example:**

    ```json theme={null}
    {
      "path": "Clients/2025/Contracts",
      "createMissing": true
    }
    ```

    [Google documentation: search files and folders](https://developers.google.com/drive/api/v3/search-files)
  </Accordion>

  <Accordion title="Get reply by ID">
    Gets a specific reply on a comment.

    **Inputs:**

    * **fileId** (string) — File ID.
    * **commentId** (string) — Comment ID.
    * **replyId** (string) — Reply ID.

    **Example:**

    ```json theme={null}
    {
      "fileId": "1XyZdocId",
      "commentId": "AAA-BbCcDd",
      "replyId": "reply-id-123"
    }
    ```

    [Google documentation: `replies.get`](https://developers.google.com/workspace/drive/api/reference/rest/v3/replies/get)
  </Accordion>

  <Accordion title="Get shared drive">
    Gets metadata for **one** shared drive by ID or, depending on parameters, accessible drives.

    **Inputs:**

    * **driveId** (optional, string) — Shared drive ID; if omitted, behavior depends on the tool (e.g. list all).

    **Example:**

    ```json theme={null}
    {
      "driveId": "0AJxyZunidadID"
    }
    ```

    [Google documentation: `drives.get`](https://developers.google.com/drive/api/v3/reference/drives/get)
  </Accordion>

  <Accordion title="List access proposals">
    Lists **access proposals** for a file or folder (Drive access request flows).

    **Inputs:**

    * **fileId** (string) — File or folder ID.

    **Example:**

    ```json theme={null}
    {
      "fileId": "1XyZarchivoID"
    }
    ```

    [Google documentation: `accessProposals.list`](https://developers.google.com/workspace/drive/api/reference/rest/v3/accessproposals/list)
  </Accordion>

  <Accordion title="List comments">
    Lists all comments on a file.

    **Inputs:**

    * **fileId** (string) — File ID.
    * **pageSize** (optional, number) — Page size.
    * **pageToken** (optional, string) — Pagination.

    **Example:**

    ```json theme={null}
    {
      "fileId": "1XyZdocId",
      "pageSize": 50
    }
    ```

    [Google documentation: `comments.list`](https://developers.google.com/workspace/drive/api/reference/rest/v3/comments/list)
  </Accordion>

  <Accordion title="List files">
    Lists files in a **folder** or using other supported criteria (`files.list`).

    **Inputs:**

    * **folderId** (optional, string) — Parent folder.
    * **pageSize** (optional, number) — Page size (often max 100).
    * **pageToken** (optional, string) — Next page token.
    * **query** (optional, string) — Additional filter.
    * **orderBy** (optional, string) — Sort order (e.g. `modifiedTime desc`).

    **Example:**

    ```json theme={null}
    {
      "pageSize": 25,
      "pageToken": "CAoQAA",
      "folderId": "1A2B3CcarpetaID",
      "query": "mimeType != 'application/vnd.google-apps.folder'",
      "orderBy": "modifiedTime desc"
    }
    ```

    [Google documentation: `files.list`](https://developers.google.com/drive/api/v3/reference/files/list)
  </Accordion>

  <Accordion title="List replies">
    Lists replies for a specific comment.

    **Inputs:**

    * **fileId** (string) — File ID.
    * **commentId** (string) — Comment ID.

    **Example:**

    ```json theme={null}
    {
      "fileId": "1XyZdocId",
      "commentId": "AAA-BbCcDd"
    }
    ```

    [Google documentation: `replies.list`](https://developers.google.com/workspace/drive/api/reference/rest/v3/replies/list)
  </Accordion>

  <Accordion title="Move file">
    Moves a file or folder by updating **parents** to the destination folder.

    **Inputs:**

    * **fileId** (string) — Item to move.
    * **targetFolderId** (string) — Destination folder ID.

    **Example:**

    ```json theme={null}
    {
      "fileId": "1XyZarchivoID",
      "targetFolderId": "1A2B3CnuevaCarpetaID"
    }
    ```

    [Google documentation: `files.update` (parents)](https://developers.google.com/drive/api/v3/reference/files/update)
  </Accordion>

  <Accordion title="Move file to trash">
    Marks the file or folder as **trashed** without permanent deletion.

    **Inputs:**

    * **fileId** (string) — Resource ID.

    **Example:**

    ```json theme={null}
    {
      "fileId": "1XyZarchivoID"
    }
    ```

    [Google documentation: `files.update`](https://developers.google.com/drive/api/v3/reference/files/update)
  </Accordion>

  <Accordion title="Reply to comment">
    Adds a **reply** to an existing comment.

    **Inputs:**

    * **fileId** (string) — File ID.
    * **commentId** (string) — Comment ID.
    * **content** (string) — Reply text.

    **Example:**

    ```json theme={null}
    {
      "fileId": "1XyZdocId",
      "commentId": "AAA-BbCcDd",
      "content": "Done — section 3 reviewed."
    }
    ```

    [Google documentation: `replies.create`](https://developers.google.com/workspace/drive/api/reference/rest/v3/replies/create)
  </Accordion>

  <Accordion title="Resolve access proposals">
    **Accepts** or **denies** an access proposal for a file or folder.

    **Inputs:**

    * **fileId** (string) — Resource ID.
    * **proposalId** (string) — Proposal ID.
    * **action** (enum) — API-supported value (e.g. accept / deny).

    **Example:**

    ```json theme={null}
    {
      "fileId": "1XyZarchivoID",
      "proposalId": "prop-abc-123",
      "action": "accept"
    }
    ```

    [Google documentation: `accessProposals.resolve`](https://developers.google.com/workspace/drive/api/reference/rest/v3/accessproposals/resolve)
  </Accordion>

  <Accordion title="Resolve comment">
    Marks a comment as **resolved** (closes the review thread in Docs UI).

    **Inputs:**

    * **fileId** (string) — File ID.
    * **commentId** (string) — Comment ID.
    * **resolved** (optional, boolean) — Usually `true` to resolve.

    **Example:**

    ```json theme={null}
    {
      "fileId": "1XyZdocId",
      "commentId": "AAA-BbCcDd",
      "resolved": true
    }
    ```

    [Google documentation: `comments.update`](https://developers.google.com/workspace/drive/api/reference/rest/v3/comments/update)
  </Accordion>

  <Accordion title="Search shared drives">
    Searches shared drives with a **query** (`q`) and pagination options.

    **Inputs:**

    * **query** (optional, string) — Search criteria.
    * **pageSize** (optional, number)
    * **pageToken** (optional, string)

    **Example:**

    ```json theme={null}
    {
      "query": "name contains 'Marketing'",
      "pageSize": 10
    }
    ```

    [Google documentation: search shared drives](https://developers.google.com/drive/api/v3/search-shareddrives)
  </Accordion>

  <Accordion title="Update comment">
    Updates **content** of an existing comment.

    **Inputs:**

    * **fileId** (string) — File ID.
    * **commentId** (string) — Comment ID.
    * **content** (string) — New text.

    **Example:**

    ```json theme={null}
    {
      "fileId": "1XyZdocId",
      "commentId": "AAA-BbCcDd",
      "content": "Updated comment text."
    }
    ```

    [Google documentation: `comments.update`](https://developers.google.com/workspace/drive/api/reference/rest/v3/comments/update)
  </Accordion>

  <Accordion title="Update file">
    Updates **metadata** (name, description, parents) and/or **content** depending on file type.

    **Inputs:**

    * **fileId** (string) — File ID.
    * **name** (optional, string) — New name.
    * **description** (optional, string) — Description.
    * **content** (optional, string) — Base64 content for manageable binary files.
    * **mimeType** (optional, string) — Required when updating content.

    **Example:**

    ```json theme={null}
    {
      "fileId": "1XyZarchivoID",
      "name": "report-updated.pdf",
      "description": "Corrected version",
      "content": "JVBERi0xLjQKJcTl8uXrp/Og0MTGCg==",
      "mimeType": "application/pdf"
    }
    ```

    [Google documentation: `files.update`](https://developers.google.com/drive/api/v3/reference/files/update)
  </Accordion>

  <Accordion title="Update reply">
    Edits the text of a **reply** to a comment.

    **Inputs:**

    * **fileId** (string) — File ID.
    * **commentId** (string) — Comment ID.
    * **replyId** (string) — Reply ID.
    * **content** (string) — New content.

    **Example:**

    ```json theme={null}
    {
      "fileId": "1XyZdocId",
      "commentId": "AAA-BbCcDd",
      "replyId": "reply-id-123",
      "content": "Update: now published."
    }
    ```

    [Google documentation: `replies.update`](https://developers.google.com/workspace/drive/api/reference/rest/v3/replies/update)
  </Accordion>

  <Accordion title="Update shared drive">
    Updates shared drive metadata (e.g. name, restrictions per API).

    **Inputs:**

    * **driveId** (string) — Shared drive ID.
    * **name** (optional, string) — New name.
    * Other fields per Brain Studio form.

    **Example:**

    ```json theme={null}
    {
      "driveId": "0AJxyZunidadID",
      "name": "Project Alpha (archived)"
    }
    ```

    [Google documentation: `drives.update`](https://developers.google.com/drive/api/v3/reference/drives/update)
  </Accordion>

  <Accordion title="Upload file">
    Uploads a new file to Drive from a **URL** or **base64** content, with optional folder and description.

    **Inputs:**

    * **name** (string) — File name.
    * **mimeType** (string) — MIME type.
    * **source** (enum: `url` | `base64`) — Content source.
    * **content** (string) — URL or encoded data.
    * **folderId** (optional, string) — Destination folder.
    * **description** (optional, string) — Description.

    **Example:**

    ```json theme={null}
    {
      "name": "report.pdf",
      "mimeType": "application/pdf",
      "source": "url",
      "content": "https://example.com/files/report.pdf",
      "folderId": "1A2B3CcarpetaID",
      "description": "Monthly sales report"
    }
    ```

    [Google documentation: uploads](https://developers.google.com/drive/api/v3/manage-uploads)
  </Accordion>
</AccordionGroup>

***

## How to use in Brain

Once connected, you can use **Google Drive** in two surfaces:

### In AI Agent

Ideal when users want to search, upload, share, or comment on files in natural language.

<Steps>
  <Step title="Open the AI Agent node">
    In Canvas, select or add the **AI Agent** node.
  </Step>

  <Step title="Open Tools">
    In the right panel, open the **Tools** tab.
  </Step>

  <Step title="Add Google Drive">
    Use **Add tool**, search for **Google Drive**, and enable it.
  </Step>

  <Step title="Configure tools">
    Choose the full integration or enable only the actions you need. Adjust the prompt to confirm file, folder, or **fileId** before sharing or deleting, and to ask for clarification when intent is ambiguous.

    <Check>
      **Google Drive** appears in the agent tools list and you can open its settings using the gear icon.
    </Check>
  </Step>
</Steps>

The agent will automatically decide when to search, upload, or share files based on the conversation.

### In Canvas

Ideal when you need full flow control (for example: upload file → adjust permissions → notify).

<Steps>
  <Step title="Drag Google Drive into Canvas">
    In the side panel, open **Marketplace** and drag **Google Drive** into the flow.
  </Step>

  <Step title="Select the tool">
    With the node selected, in **Tools** choose the action (for example **Upload file**).
  </Step>

  <Step title="Configure request body and memory">
    Fill in the request body JSON and, if needed, **Save response** to a memory variable.
  </Step>

  <Step title="Connect the flow">
    Link the **Task completed** and **An error occurred** outputs to the next nodes.

    <Check>
      The node is ready to run in the order defined by your flow.
    </Check>
  </Step>
</Steps>

**Configuration example:**

The node editor shows a JSON body aligned with the upload or management tool you choose (this example is for uploading a file from URL). Adjust `mimeType`, `source`, and `content` according to the tool form.

```json theme={null}
{
  "name": "{{$memory.file_name}}",
  "mimeType": "application/pdf",
  "source": "url",
  "content": "{{$memory.file_url}}",
  "folderId": "{{$memory.folder_id}}"
}
```

<Info>
  If you build with **Jelou Agent**, the system automatically decides how to use the integration: it can configure it inside an **AI Agent** or as a **Canvas** node, depending on the process type.
</Info>

***

## Use cases

<AccordionGroup>
  <Accordion title="Delivering documents to customers through WhatsApp">
    The customer asks for an invoice, contract, or certificate via chat. Instead of searching manually in shared folders, the flow locates it in Drive, adjusts permissions, and delivers the link in the same conversation.

    **Specific example:** a financial services company receives certificate requests on WhatsApp. The customer asks for "my 2024 withholding certificate." The flow finds the file in the customer folder, grants read access, and replies with the direct link. The customer downloads it in seconds without human intervention.

    **Ideal for:** utilities, fintech, education, and services with recurring documents customers request frequently.
  </Accordion>

  <Accordion title="Receiving and classifying user attachments">
    Files sent by users in chat are saved to the correct Drive folder with consistent naming, instead of ending up scattered in personal inboxes.

    **Specific example:** a KYC onboarding process. The customer sends a photo of their identity document via WhatsApp. The flow identifies the customer, resolves the case folder in Drive, uploads the file with a standardized name (e.g. "ID-name-date.jpg"), and confirms receipt. The compliance team finds everything organized when reviewing the case.

    **Ideal for:** KYC onboarding, evidence-based support, document operations, and compliance.
  </Accordion>

  <Accordion title="Automatic file structure by customer or project">
    Every new customer or opportunity gets folder structure, copied templates, and assigned permissions before work starts.

    **Specific example:** a B2B consultancy closes a new project. The flow creates the project folder in Drive, copies standard templates (proposal, contract, meeting notes), shares the folder with the assigned team, and logs the link in the CRM. On day one, everything is ready without manual folder setup.

    **Ideal for:** B2B sales, implementation, and account-based projects that need homogeneous structure.
  </Accordion>
</AccordionGroup>

***

## Integrations that combine well with Google Drive

<AccordionGroup>
  <Accordion title="Gmail">
    After generating or locating a file in Drive, the flow can send it as a link in an email from the connected Gmail account, with permissions already set.

    **Combined flow:** file generated in Drive → email via Gmail with shared link to recipient.

    [Gmail documentation](/en/guides/integraciones/productividad/gmail)
  </Accordion>

  <Accordion title="Google Sheets">
    Each uploaded or generated file can be logged as a row in a control sheet: customer, document type, date, link, and status. Useful for audits or operations tracking.

    **Combined flow:** file uploaded to Drive → new row in Sheets with metadata and link.

    [Google Sheets documentation](/en/guides/integraciones/productividad/google-sheets)
  </Accordion>

  <Accordion title="HubSpot">
    When the commercial process generates documents (proposals, contracts), the flow can create the file in Drive and log the link in the corresponding HubSpot deal or contact.

    **Combined flow:** proposal generated in Drive → link logged in HubSpot deal.

    [HubSpot documentation](/en/guides/integraciones/crm/hubspot)
  </Accordion>

  <Accordion title="Google Calendar">
    When scheduling a meeting, the flow can create the materials folder in Drive and attach the link to the event, so attendees have access before the call.

    **Combined flow:** event created in Google Calendar → materials folder created in Drive → link attached to event.

    [Google Calendar documentation](/en/guides/integraciones/agendamiento/google-calendar)
  </Accordion>
</AccordionGroup>

***

## Related articles

<CardGroup cols={2}>
  <Card title="Integrations" href="/en/guides/integraciones/integraciones" icon="grid">
    Catalog of integrations available in Marketplace.
  </Card>

  <Card title="How to use integrations in Brain" href="/en/guides/integraciones/como-usar-integraciones-en-brain" icon="book-open">
    General flow for installing and using integrations in Brain Studio.
  </Card>
</CardGroup>
