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

# Google Sheets

> Read, append, update, clear, search rows, and manage sheets in Google Sheets spreadsheets.

# Google Sheets

Read and write data in Google Sheets — use it as a simple database, a reporting output, or a data source. Supports batch updates, row search, and sheet metadata retrieval.

## Authentication

**Auth type:** OAuth 2.0

Enable the **Google Sheets API** in [Google Cloud Console](https://console.cloud.google.com/). Generate an OAuth 2.0 token with `https://www.googleapis.com/auth/spreadsheets` scope.

| Credential       | Description                              |
| ---------------- | ---------------------------------------- |
| **Access Token** | OAuth 2.0 access token with Sheets scope |

## Triggers

| Trigger           | When it fires                            |
| ----------------- | ---------------------------------------- |
| **New Row Added** | A new row is appended to a tracked sheet |
| **Row Updated**   | An existing row's content is changed     |

<Note>
  Google Sheets triggers use polling. Changes are detected on a configurable interval (minimum: 1 minute). For real-time response, combine a Google Forms submission webhook with a Sheets read action instead.
</Note>

## Actions

| Action                   | Key inputs                                       | Key outputs                              |
| ------------------------ | ------------------------------------------------ | ---------------------------------------- |
| **Get Row(s)**           | `spreadsheetId`, `range` (A1 notation)           | values\[]\[], count                      |
| **Append Row**           | `spreadsheetId`, `sheetName`, `values[]`         | updatedRange, updatedRows                |
| **Update Row**           | `spreadsheetId`, `range`, `values[][]`           | updatedRange, updatedCells               |
| **Clear Range**          | `spreadsheetId`, `range`                         | clearedRange                             |
| **Find Row**             | `spreadsheetId`, `sheetName`, `column`, `value`  | row{}, rowNumber, found                  |
| **Batch Update**         | `spreadsheetId`, `data[]` (range + values pairs) | totalUpdatedCells                        |
| **List Sheets**          | `spreadsheetId`                                  | sheets\[] — sheetId, title, index        |
| **Create Sheet**         | `spreadsheetId`, `title`                         | sheetId, title                           |
| **Get Spreadsheet Info** | `spreadsheetId`                                  | title, locale, sheets\[], spreadsheetUrl |

<Tip>
  Use A1 notation for ranges: `Sheet1!A1:D10`. Omit the sheet name to target the first sheet. Use `Sheet1!A:A` to target an entire column.
</Tip>
