> ## 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 Sheets

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

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

## Access levels

Each Google Sheets 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**                 | "Read your spreadsheets. Cannot edit or create."   | 18 of 56               |
| **Read + create**             | "Read existing sheets and create new ones."        | 47 of 56               |
| **Full access** (recommended) | "Read, edit, create, and delete any Google Sheet." | 56 of 56               |

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

The Google Sheets 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 Sheets account?" The agent can search the Google Sheets actions for you.</Tip>

Each action shows its name, a one-line description where the Google Sheets 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 18 of the 56 Google Sheets actions at this level:

    * View cell values
    * View and search spreadsheets
    * View rules
    * View and search tables
    * View charts
    * View columns
    * View rows
    * View schemas
    * Search worksheets

    All 18 actions at this level:

    | Works on          | Action                                       | What it does                                                                                                                                                                              | Slug                                                        |
    | ----------------- | -------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------- |
    | **Cell values**   | Get batch values                             | DEPRECATED: Use GOOGLESHEETS\_BATCH\_GET instead.                                                                                                                                         | `GOOGLESHEETS_GET_BATCH_VALUES`                             |
    |                   | Spreadsheets values batch get by data filter | Return one or more ranges of values from a spreadsheet that match the specified data filters.                                                                                             | `GOOGLESHEETS_SPREADSHEETS_VALUES_BATCH_GET_BY_DATA_FILTER` |
    |                   | Values get                                   | Returns a range of values from a spreadsheet.                                                                                                                                             | `GOOGLESHEETS_VALUES_GET`                                   |
    | **Charts**        | List charts                                  | Lists all charts in a Google Sheets spreadsheet across all sheets, returning chart\_id, sheet metadata, chart type, title, and position.                                                  | `GOOGLESHEETS_LIST_CHARTS`                                  |
    | **Columns**       | Aggregate column data                        | Searches for rows where a specific column matches a value and performs mathematical operations on data from another column.                                                               | `GOOGLESHEETS_AGGREGATE_COLUMN_DATA`                        |
    | **Rows**          | Lookup spreadsheet row                       | Finds the first row in a Google Spreadsheet where a cell's entire content exactly matches the query string, searching within a specified A1 notation range or the first sheet by default. | `GOOGLESHEETS_LOOKUP_SPREADSHEET_ROW`                       |
    | **Rules**         | Get conditional format rules                 | List conditional formatting rules for each sheet (or a selected sheet) in a normalized, easy-to-edit form.                                                                                | `GOOGLESHEETS_GET_CONDITIONAL_FORMAT_RULES`                 |
    |                   | Get data validation rules                    | Extract data validation rules from a Google Sheets spreadsheet.                                                                                                                           | `GOOGLESHEETS_GET_DATA_VALIDATION_RULES`                    |
    | **Schemas**       | Get table schema                             | DEPRECATED: Use GOOGLESHEETS\_GET\_SHEET\_NAMES and GOOGLESHEETS\_GET\_SPREADSHEET\_INFO for sheet structure metadata, and GOOGLESHEETS\_VALUES\_GET for direct range inspection.         | `GOOGLESHEETS_GET_TABLE_SCHEMA`                             |
    | **Sheets**        | Get sheet names                              | Lists all worksheet names from a specified Google Spreadsheet (which must exist), useful for discovering sheets before further operations.                                                | `GOOGLESHEETS_GET_SHEET_NAMES`                              |
    | **Spreadsheets**  | Get spreadsheet by data filter               | Returns the spreadsheet at the given ID, filtered by the specified data filters.                                                                                                          | `GOOGLESHEETS_GET_SPREADSHEET_BY_DATA_FILTER`               |
    |                   | Get spreadsheet info                         | Retrieves metadata for a Google Spreadsheet using its ID.                                                                                                                                 | `GOOGLESHEETS_GET_SPREADSHEET_INFO`                         |
    |                   | Search spreadsheets                          | Search for Google Spreadsheets using various filters including name, content, date ranges, and more.                                                                                      | `GOOGLESHEETS_SEARCH_SPREADSHEETS`                          |
    | **Tables**        | List tables                                  | DEPRECATED: Use GOOGLESHEETS\_GET\_SHEET\_NAMES for tab discovery and GOOGLESHEETS\_GET\_SPREADSHEET\_INFO for full sheet metadata.                                                       | `GOOGLESHEETS_LIST_TABLES`                                  |
    |                   | Query table                                  | DEPRECATED: Use GOOGLESHEETS\_VALUES\_GET / GOOGLESHEETS\_BATCH\_GET for table reads and GOOGLESHEETS\_LOOKUP\_SPREADSHEET\_ROW for row lookup/filter workflows.                          | `GOOGLESHEETS_QUERY_TABLE`                                  |
    | **Worksheets**    | Find worksheet by title                      | DEPRECATED: Use GetSpreadsheetInfo instead.                                                                                                                                               | `GOOGLESHEETS_FIND_WORKSHEET_BY_TITLE`                      |
    | **Other actions** | Batch get                                    | Retrieves data from specified cell ranges in a Google Spreadsheet.                                                                                                                        | `GOOGLESHEETS_BATCH_GET`                                    |
    |                   | Search developer metadata                    | Search for developer metadata in a spreadsheet.                                                                                                                                           | `GOOGLESHEETS_SEARCH_DEVELOPER_METADATA`                    |
  </Accordion>

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

    * Update cell values
    * View, create, and manage sheets
    * Create and update charts
    * Create, update, and manage dimensions
    * Update properties
    * View files
    * Update and delete filters
    * Create rows
    * View change history
    * Create columns
    * Update rules

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

    | Works on           | Action                             | What it does                                                                                                                                                                       | Slug                                              |
    | ------------------ | ---------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------- |
    | **Cell values**    | Batch update values by data filter | Update values in ranges matching data filters.                                                                                                                                     | `GOOGLESHEETS_BATCH_UPDATE_VALUES_BY_DATA_FILTER` |
    |                    | Format cell                        | Applies text and background cell formatting to a specified range in a Google Sheets worksheet.                                                                                     | `GOOGLESHEETS_FORMAT_CELL`                        |
    |                    | Spreadsheets values append         | Append values to a spreadsheet.                                                                                                                                                    | `GOOGLESHEETS_SPREADSHEETS_VALUES_APPEND`         |
    |                    | Update values batch                | Set values in one or more ranges of a spreadsheet.                                                                                                                                 | `GOOGLESHEETS_UPDATE_VALUES_BATCH`                |
    |                    | Values update                      | Set values in a range of a Google Spreadsheet.                                                                                                                                     | `GOOGLESHEETS_VALUES_UPDATE`                      |
    | **Change history** | List drive changes                 |                                                                                                                                                                                    | `GOOGLESHEETS_LIST_DRIVE_CHANGES`                 |
    | **Charts**         | Create chart                       | Create a chart in a Google Sheets spreadsheet using the specified data range and chart type.                                                                                       | `GOOGLESHEETS_CREATE_CHART`                       |
    |                    | Move chart                         | Move or resize an existing chart on a Google Sheets spreadsheet.                                                                                                                   | `GOOGLESHEETS_MOVE_CHART`                         |
    |                    | Update chart                       | Update the specification of an existing chart in a Google Sheets spreadsheet.                                                                                                      | `GOOGLESHEETS_UPDATE_CHART`                       |
    | **Columns**        | Create spreadsheet column          | Creates a new column in a Google Spreadsheet.                                                                                                                                      | `GOOGLESHEETS_CREATE_SPREADSHEET_COLUMN`          |
    | **Dimensions**     | Append dimension                   | Append new rows or columns to a sheet, increasing its size.                                                                                                                        | `GOOGLESHEETS_APPEND_DIMENSION`                   |
    |                    | Auto resize dimensions             | Auto-fit column widths or row heights for a dimension range using batchUpdate.autoResizeDimensions.                                                                                | `GOOGLESHEETS_AUTO_RESIZE_DIMENSIONS`             |
    |                    | Insert dimension                   | Insert new rows or columns into a sheet at a specified location.                                                                                                                   | `GOOGLESHEETS_INSERT_DIMENSION`                   |
    | **Files**          | Export drive file                  |                                                                                                                                                                                    | `GOOGLESHEETS_EXPORT_DRIVE_FILE`                  |
    |                    | Get drive file metadata            |                                                                                                                                                                                    | `GOOGLESHEETS_GET_DRIVE_FILE_METADATA`            |
    | **Filters**        | Clear basic filter                 | Clear the basic filter from a sheet.                                                                                                                                               | `GOOGLESHEETS_CLEAR_BASIC_FILTER`                 |
    |                    | Set basic filter                   | Set a basic filter on a sheet in a Google Spreadsheet.                                                                                                                             | `GOOGLESHEETS_SET_BASIC_FILTER`                   |
    | **Properties**     | Update dimension properties        | Hide/unhide rows or columns and set row heights or column widths.                                                                                                                  | `GOOGLESHEETS_UPDATE_DIMENSION_PROPERTIES`        |
    |                    | Update sheet properties            | Update properties of a sheet (worksheet) within a Google Spreadsheet, such as its title, index, visibility, tab color, or grid properties.                                         | `GOOGLESHEETS_UPDATE_SHEET_PROPERTIES`            |
    |                    | Update spreadsheet properties      | Update SPREADSHEET-LEVEL properties such as the spreadsheet's title, locale, time zone, or auto-recalculation settings.                                                            | `GOOGLESHEETS_UPDATE_SPREADSHEET_PROPERTIES`      |
    | **Rows**           | Create spreadsheet row             | Inserts a new, empty row into a specified sheet of a Google Spreadsheet at a given index, optionally inheriting formatting from the row above.                                     | `GOOGLESHEETS_CREATE_SPREADSHEET_ROW`             |
    |                    | Upsert rows                        | Automatically handles column mapping and partial updates.                                                                                                                          | `GOOGLESHEETS_UPSERT_ROWS`                        |
    | **Rules**          | Set data validation rule           | Set or clear data validation rules (including dropdowns) on a range in Google Sheets.                                                                                              | `GOOGLESHEETS_SET_DATA_VALIDATION_RULE`           |
    | **Sheets**         | Add sheet                          | Adds a new sheet to a spreadsheet.                                                                                                                                                 | `GOOGLESHEETS_ADD_SHEET`                          |
    |                    | Create Google sheet1               | Creates a new Google Spreadsheet in Google Drive.                                                                                                                                  | `GOOGLESHEETS_CREATE_GOOGLE_SHEET1`               |
    |                    | Export sheet as PDF                |                                                                                                                                                                                    | `GOOGLESHEETS_EXPORT_SHEET_AS_PDF`                |
    |                    | Sheet from JSON                    | DEPRECATED: Use GOOGLESHEETS\_CREATE\_GOOGLE\_SHEET1 + GOOGLESHEETS\_UPDATE\_VALUES\_BATCH (or GOOGLESHEETS\_VALUES\_UPDATE / GOOGLESHEETS\_SPREADSHEETS\_VALUES\_APPEND) instead. | `GOOGLESHEETS_SHEET_FROM_JSON`                    |
    |                    | Spreadsheets sheets copy to        | Copy a single sheet from a spreadsheet to another spreadsheet.                                                                                                                     | `GOOGLESHEETS_SPREADSHEETS_SHEETS_COPY_TO`        |
    | **Other actions**  | Find replace                       | Find and replace text in a Google Spreadsheet.                                                                                                                                     | `GOOGLESHEETS_FIND_REPLACE`                       |
  </Accordion>

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

    * Delete cell values
    * Delete charts
    * Delete dimensions
    * Delete sheets

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

    | Works on          | Action                            | What it does                                                                                                      | Slug                                             |
    | ----------------- | --------------------------------- | ----------------------------------------------------------------------------------------------------------------- | ------------------------------------------------ |
    | **Cell values**   | Batch clear values by data filter | Clears one or more ranges of values from a spreadsheet using data filters.                                        | `GOOGLESHEETS_BATCH_CLEAR_VALUES_BY_DATA_FILTER` |
    |                   | Clear values                      | Clears cell content (preserving formatting and notes) from a specified A1 notation range in a Google Spreadsheet. | `GOOGLESHEETS_CLEAR_VALUES`                      |
    |                   | Spreadsheets values batch clear   | Clear one or more ranges of values from a spreadsheet.                                                            | `GOOGLESHEETS_SPREADSHEETS_VALUES_BATCH_CLEAR`   |
    | **Charts**        | Delete chart                      | Delete an existing chart from a Google Sheets spreadsheet.                                                        | `GOOGLESHEETS_DELETE_CHART`                      |
    | **Dimensions**    | Delete dimension                  | Delete specified rows or columns from a sheet in a Google Spreadsheet.                                            | `GOOGLESHEETS_DELETE_DIMENSION`                  |
    | **Rules**         | Mutate conditional format rules   | Add, update, delete, or reorder conditional format rules on a Google Sheet.                                       | `GOOGLESHEETS_MUTATE_CONDITIONAL_FORMAT_RULES`   |
    | **Sheets**        | Delete sheet                      | Delete a sheet (worksheet) from a spreadsheet.                                                                    | `GOOGLESHEETS_DELETE_SHEET`                      |
    | **Other actions** | Batch update                      | DEPRECATED: Use GOOGLESHEETS\_VALUES\_UPDATE instead.                                                             | `GOOGLESHEETS_BATCH_UPDATE`                      |
    |                   | Execute SQL                       | DEPRECATED: Use direct Google Sheets actions instead.                                                             | `GOOGLESHEETS_EXECUTE_SQL`                       |
  </Accordion>
</AccordionGroup>

## Connect Google Sheets

Before you start:

* You need a Google Sheets 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 Sheets">
    Find **Google Sheets** 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 Sheets">
    Click **Connect Google Sheets**. The Google Sheets sign-in page opens in a new tab.
  </Step>

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

Check that it works: Google Sheets 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 Sheets 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 Sheets 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 Sheets account

Click **+ Account** on the Google Sheets 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 Sheets side:

1. Open the account menu (⋯) and click **Reconnect**.
2. Click **Reauthorize on Google Sheets**.
3. Sign in to Google Sheets 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 Sheets 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 Sheets account becomes primary.</Warning>

## Costs

Google Sheets 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 Sheets, 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 Sheets 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 Sheets?">
    Each Google Sheets 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 Sheets account?">
    Click **+ Account** on the Google Sheets 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 Sheets?">
    Open the account menu (⋯) on the Google Sheets 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>
