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

# Google Docs

> What agents can do in Google Docs at each access level, and how to connect, limit, and disconnect Google Docs.

Connect Google Docs so your agents can work in your Google Docs account. You choose an access level for each account, and Squad refuses any agent action outside that level.

## Access levels

Each Google Docs account has an access level: **Read-only**, **Read + create**, and **Full access**. Squad refuses any agent action outside that level. You can also narrow or block single agents under **Per-agent access**.

| Level                         | The connect window describes this level as               | Actions agents can use |
| ----------------------------- | -------------------------------------------------------- | ---------------------- |
| **Read-only**                 | "Open and read your Google Docs. Cannot create or edit." | 3 of 42                |
| **Read + create**             | "Read existing docs and create new ones."                | 34 of 42               |
| **Full access** (recommended) | "Read, create, edit, and delete any Google Doc."         | 42 of 42               |

**Full access** is the recommended level. The connect window selects it for you, and you can choose another level.

The Google Docs sign-in page asks you to approve full access to your account. This is expected. Squad does not narrow the sign-in. It checks every agent action against the level you chose, and it refuses actions outside that level.

## What agents can do at each level

Each level opens with a short summary in plain tasks, then lists every action it adds, grouped by what the action works on. You do not need to name actions. Ask in plain words, and the agent searches for the matching action.

<Tip>**Find an action.** Open a level and use your browser's find (Ctrl+F, or Cmd+F on a Mac) with a word from the task or part of a slug. Or ask your agent in plain words, for example "What can you do in my Google Docs account?" The agent can search the Google Docs actions for you.</Tip>

Each action shows its name, a one-line description where the Google Docs action catalog has one, and its slug. The slug is the ID that agents use when they call the action.

<AccordionGroup>
  <Accordion title="Read-only">
    Agents can use 3 of the 42 Google Docs actions at this level:

    * View and search documents
    * View charts

    All 3 actions at this level:

    | Works on      | Action                  | What it does                                                                                      | Slug                                 |
    | ------------- | ----------------------- | ------------------------------------------------------------------------------------------------- | ------------------------------------ |
    | **Charts**    | List spreadsheet charts | Retrieve a list of all charts from a specified Google Sheets spreadsheet.                         | `GOOGLEDOCS_LIST_SPREADSHEET_CHARTS` |
    | **Documents** | Export document as PDF  | Export a Google Docs file as PDF using the Google Drive API.                                      | `GOOGLEDOCS_EXPORT_DOCUMENT_AS_PDF`  |
    |               | Search documents        | Search for Google Documents using various filters including name, content, date ranges, and more. | `GOOGLEDOCS_SEARCH_DOCUMENTS`        |
  </Accordion>

  <Accordion title="Read + create">
    Agents can use 34 of the 42 Google Docs actions at this level: everything in **Read-only**, plus:

    * Create and update documents
    * Create and update images
    * Create and update cells and ranges
    * Update styles
    * Create columns
    * Create rows
    * Create tabs

    The 31 actions that this level adds to **Read-only**:

    <AccordionGroup>
      <Accordion title="Cells and ranges (3)">
        | Action                    | What it does                                   | Slug                                   |
        | ------------------------- | ---------------------------------------------- | -------------------------------------- |
        | Create named range        | Create a new named range in a Google Document. | `GOOGLEDOCS_CREATE_NAMED_RANGE`        |
        | Insert text in table cell |                                                | `GOOGLEDOCS_INSERT_TEXT_IN_TABLE_CELL` |
        | Unmerge table cells       | Unmerge previously merged cells in a table.    | `GOOGLEDOCS_UNMERGE_TABLE_CELLS`       |
      </Accordion>

      <Accordion title="Columns (1)">
        | Action              | What it does                                           | Slug                             |
        | ------------------- | ------------------------------------------------------ | -------------------------------- |
        | Insert table column | Insert a new column into a table in a Google Document. | `GOOGLEDOCS_INSERT_TABLE_COLUMN` |
      </Accordion>

      <Accordion title="Documents (9)">
        | Action                   | What it does                                                                                                                                                                                           | Slug                                  |
        | ------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------- |
        | Copy document            | Create a copy of an existing Google Document.                                                                                                                                                          | `GOOGLEDOCS_COPY_DOCUMENT`            |
        | Create document          | Creates a new Google Docs document using the provided title as filename and inserts the initial text at the beginning if non-empty, returning the document's ID and metadata (excluding body content). | `GOOGLEDOCS_CREATE_DOCUMENT`          |
        | Create document markdown | Creates a new Google Docs document, optionally initializing it with a title and content provided as Markdown text.                                                                                     | `GOOGLEDOCS_CREATE_DOCUMENT_MARKDOWN` |
        | Create document2         | DEPRECATED: Use GOOGLEDOCS\_CREATE\_DOCUMENT instead.                                                                                                                                                  | `GOOGLEDOCS_CREATE_DOCUMENT2`         |
        | Get document by ID       | Retrieves an existing Google Document by its ID.                                                                                                                                                       | `GOOGLEDOCS_GET_DOCUMENT_BY_ID`       |
        | Get document end index   |                                                                                                                                                                                                        | `GOOGLEDOCS_GET_DOCUMENT_END_INDEX`   |
        | Get document plaintext   | Retrieve a Google Doc by ID and return a best-effort plain-text rendering.                                                                                                                             | `GOOGLEDOCS_GET_DOCUMENT_PLAINTEXT`   |
        | Update document batch    | DEPRECATED: Use UpdateExistingDocument instead.                                                                                                                                                        | `GOOGLEDOCS_UPDATE_DOCUMENT_BATCH`    |
        | Update document markdown | Replaces the entire content of an existing Google Docs document with new Markdown text.                                                                                                                | `GOOGLEDOCS_UPDATE_DOCUMENT_MARKDOWN` |
      </Accordion>

      <Accordion title="Images (3)">
        | Action                     | What it does                                                                                      | Slug                                    |
        | -------------------------- | ------------------------------------------------------------------------------------------------- | --------------------------------------- |
        | Insert image in table cell |                                                                                                   | `GOOGLEDOCS_INSERT_IMAGE_IN_TABLE_CELL` |
        | Insert inline image        | Insert an image from a given URI at a specified location in a Google Document as an inline image. | `GOOGLEDOCS_INSERT_INLINE_IMAGE`        |
        | Replace image              | Replace a specific image in a document with a new image from a URI.                               | `GOOGLEDOCS_REPLACE_IMAGE`              |
      </Accordion>

      <Accordion title="Pages (1)">
        | Action            | What it does                                | Slug                           |
        | ----------------- | ------------------------------------------- | ------------------------------ |
        | Insert page break | Insert a page break into a Google Document. | `GOOGLEDOCS_INSERT_PAGE_BREAK` |
      </Accordion>

      <Accordion title="Rows (1)">
        | Action           | What it does | Slug                          |
        | ---------------- | ------------ | ----------------------------- |
        | Insert table row |              | `GOOGLEDOCS_INSERT_TABLE_ROW` |
      </Accordion>

      <Accordion title="Sections (1)">
        | Action                           | What it does                                                                 | Slug                                          |
        | -------------------------------- | ---------------------------------------------------------------------------- | --------------------------------------------- |
        | Update document section markdown | Insert or replace a section of a Google Docs document with Markdown content. | `GOOGLEDOCS_UPDATE_DOCUMENT_SECTION_MARKDOWN` |
      </Accordion>

      <Accordion title="Styles (2)">
        | Action                 | What it does                                                                               | Slug                                |
        | ---------------------- | ------------------------------------------------------------------------------------------ | ----------------------------------- |
        | Update document style  | Update the overall document style, such as page size, margins, and default text direction. | `GOOGLEDOCS_UPDATE_DOCUMENT_STYLE`  |
        | Update table row style | Update the style of a table row in a Google Document.                                      | `GOOGLEDOCS_UPDATE_TABLE_ROW_STYLE` |
      </Accordion>

      <Accordion title="Tables (2)">
        | Action                    | What it does                           | Slug                                   |
        | ------------------------- | -------------------------------------- | -------------------------------------- |
        | Create and populate table |                                        | `GOOGLEDOCS_CREATE_AND_POPULATE_TABLE` |
        | Insert table action       | Insert a table into a Google Document. | `GOOGLEDOCS_INSERT_TABLE_ACTION`       |
      </Accordion>

      <Accordion title="Tabs (1)">
        | Action     | What it does | Slug                    |
        | ---------- | ------------ | ----------------------- |
        | Create tab |              | `GOOGLEDOCS_CREATE_TAB` |
      </Accordion>

      <Accordion title="Other actions (7)">
        | Action                   | What it does                                                                                              | Slug                                  |
        | ------------------------ | --------------------------------------------------------------------------------------------------------- | ------------------------------------- |
        | Create footer            | Create a new footer in a Google Document.                                                                 | `GOOGLEDOCS_CREATE_FOOTER`            |
        | Create footnote          | Create a new footnote in a Google Document.                                                               | `GOOGLEDOCS_CREATE_FOOTNOTE`          |
        | Create header            | Create a new header in a Google Document, optionally with text content.                                   | `GOOGLEDOCS_CREATE_HEADER`            |
        | Create paragraph bullets | Add bullets to paragraphs within a specified range in a Google Document.                                  | `GOOGLEDOCS_CREATE_PARAGRAPH_BULLETS` |
        | Delete paragraph bullets | Remove bullets from paragraphs within a specified range in a Google Document.                             | `GOOGLEDOCS_DELETE_PARAGRAPH_BULLETS` |
        | Insert text action       | Insert a string of text at a specified location within a Google Document.                                 | `GOOGLEDOCS_INSERT_TEXT_ACTION`       |
        | Replace all text         | Replace all occurrences of a specified text string with another text string throughout a Google Document. | `GOOGLEDOCS_REPLACE_ALL_TEXT`         |
      </Accordion>
    </AccordionGroup>
  </Accordion>

  <Accordion title="Full access (recommended)">
    Agents can use 42 of the 42 Google Docs actions at this level: everything in **Read + create**, plus:

    * Delete cells and ranges
    * Delete columns
    * Delete rows
    * Delete tabs

    The 8 actions that this level adds to **Read + create**:

    | Works on             | Action                   | What it does                                                                                                                             | Slug                                  |
    | -------------------- | ------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------- |
    | **Cells and ranges** | Delete content range     | Delete a range of content from a Google Document.                                                                                        | `GOOGLEDOCS_DELETE_CONTENT_RANGE`     |
    |                      | Delete named range       | Delete a named range from a Google Document.                                                                                             | `GOOGLEDOCS_DELETE_NAMED_RANGE`       |
    | **Columns**          | Delete table column      | Delete a column from a table in a Google Document.                                                                                       | `GOOGLEDOCS_DELETE_TABLE_COLUMN`      |
    | **Documents**        | Update existing document | Applies programmatic edits, such as text insertion, deletion, or formatting, to a specified Google Doc using the batchUpdate API method. | `GOOGLEDOCS_UPDATE_EXISTING_DOCUMENT` |
    | **Rows**             | Delete table row         | Delete a row from a table in a Google Document.                                                                                          | `GOOGLEDOCS_DELETE_TABLE_ROW`         |
    | **Tabs**             | Delete tab               |                                                                                                                                          | `GOOGLEDOCS_DELETE_TAB`               |
    | **Other actions**    | Delete footer            | Delete a footer from a Google Document.                                                                                                  | `GOOGLEDOCS_DELETE_FOOTER`            |
    |                      | Delete header            | Deletes the header from the specified section or the default header if no section is specified.                                          | `GOOGLEDOCS_DELETE_HEADER`            |
  </Accordion>
</AccordionGroup>

<Tip>At **Read-only**, agents can search your documents and export a document as a PDF. Opening a document by its ID needs **Read + create** or **Full access**.</Tip>

## Connect Google Docs

Before you start:

* You need a Google Docs account that you can sign in to.
* Your Squad subscription must be active. Squad does not connect apps while the subscription is not active.

<Steps>
  <Step title="Open Integrations">
    Open **Settings** > **Integrations**.
  </Step>

  <Step title="Add an integration">
    On the **Connected apps** tab, click **+ Add integration**.
  </Step>

  <Step title="Find Google Docs">
    Find **Google Docs** in the catalog and click it. You can type the name in **Search the catalog…**.
  </Step>

  <Step title="Choose an access level">
    Under **Default scope**, choose an access level. This level applies to every agent.
  </Step>

  <Step title="Click Connect Google Docs">
    Click **Connect Google Docs**. The Google Docs sign-in page opens in a new tab.
  </Step>

  <Step title="Sign in to Google Docs">
    Sign in to Google Docs and approve the request.
  </Step>
</Steps>

Check that it works: Google Docs shows under **YOUR CONNECTIONS**, with a row for the account and its access level.

## Change the access level

1. Under **YOUR CONNECTIONS**, find the Google Docs account.
2. Open the account menu (⋯) and click **Manage scope**.
3. Under **Default scope**, choose the new level.
4. Click **Save access**.

The change does not need a new sign-in. Agents get the new level from their next call.

## Set access for one agent

Every agent uses the account's level unless you set something else for it. You can narrow one agent to a lower level, or block it.

1. Under **YOUR CONNECTIONS**, open the account menu (⋯) on the Google Docs account.
2. Click **Manage scope**.
3. Under **Per-agent access**, find the agent.
4. Choose the **Default** option to follow the account's level, choose a lower level, or choose **No access**.
5. Click **Save access**.

An agent never gets more than the account's level, even if you choose a higher level for it. Changes apply from the agent's next call. An agent with **No access** does not see the account.

## Use more than one Google Docs account

Click **+ Account** on the Google Docs card to connect another account. Agents use the primary account unless they are asked to use a specific one.

* After you click **+ Account**, follow the connect steps above.
* Each account has its own access level.
* The first account you connect becomes the primary account. It shows **★ PRIMARY**.
* To change the primary account, open the account menu (⋯) and click **Make primary**.
* To tell accounts apart, open the account menu (⋯) and click **Rename**.

## Reconnect or disconnect

Reconnect when the connection has expired, or when you need to change what the account can reach on the Google Docs side:

1. Open the account menu (⋯) and click **Reconnect**.
2. Click **Reauthorize on Google Docs**.
3. Sign in to Google Docs and approve the request.

Reconnect signs in to the same account again. It does not add a second connection.

Open the account menu (⋯) on the Google Docs account and click **Disconnect**. Agents lose access to that account at once.

<Warning>**Disconnect** acts at once, with no confirmation step. If it was the primary account, another connected Google Docs account becomes primary.</Warning>

## Costs

Google Docs actions do not use Squad credits. Connected apps never use credits. For what does use credits, see [What Squad costs](/docs/costs).

## Troubleshooting

An agent reports that an action is not allowed on this account.

* Cause: the action is outside the account's access level, or outside the level you set for that agent.
* Fix: choose a higher level in **Manage scope**, or change the agent's row under **Per-agent access**.

An agent says it has no access to Google Docs, or it does not see the account.

* Cause: the agent is set to **No access** under **Per-agent access**, or the account is not connected.
* Fix: open **Manage scope** and change the agent's row. If the account is missing, connect it again.

Connecting or saving fails with "Your subscription isn't active."

* Cause: your Squad subscription is not active.
* Fix: resubscribe. See [Manage your subscription](/docs/billing).

An agent says the Google Docs connection has expired.

* Cause: the sign-in for that account is no longer valid.
* Fix: use **Reconnect** on the account.

## Common questions

<AccordionGroup>
  <Accordion title="Can I limit what agents can do in Google Docs?">
    Each Google Docs account has an access level: **Read-only**, **Read + create**, and **Full access**. Squad refuses any agent action outside that level. You can also narrow or block single agents under **Per-agent access**.
  </Accordion>

  <Accordion title="Can I connect more than one Google Docs account?">
    Click **+ Account** on the Google Docs card to connect another account. Agents use the primary account unless they are asked to use a specific one.
  </Accordion>

  <Accordion title="How do I disconnect Google Docs?">
    Open the account menu (⋯) on the Google Docs account and click **Disconnect**. Agents lose access to that account at once.
  </Accordion>
</AccordionGroup>

## Related pages

<CardGroup cols={2}>
  <Card title="Connect apps" icon="plug" href="/docs/integrations" />

  <Card title="Add an MCP server or an API key" icon="server" href="/docs/custom-integrations">
    Use this when an action you need is not in this app.
  </Card>
</CardGroup>
