# Google Sheets

Your Toolhouse AI Worker can connect to Googlesheets using 50 specialized tools.

## Auth Connection

This service requires an auth connection to use its tools. You can set this up in your Toolhouse dashboard under [Auth Connections](https://toolhouse.app/auth-connections?authkit_slugs=googlesheets).

## Tools (50)

### `Googlesheets Add Sheet`

Integration name: **GOOGLESHEETS\_ADD\_SHEET**

Adds a new sheet to a spreadsheet. Supports three sheet types: GRID, OBJECT, and DATA\_SOURCE.

**SHEET TYPES:**

* **GRID** (default): Standard spreadsheet with rows/columns. Use properties to set dimensions, tab color, etc.
* **OBJECT**: Sheet containing a chart. Requires `objectSheetConfig` with `chartSpec` (basicChart or pieChart).
* **DATA\_SOURCE**: Sheet connected to BigQuery. Requires `dataSourceConfig` with bigQuery spec and `bigquery.readonly` OAuth scope.

**OTHER NOTES:**

* Sheet names must be unique; use `forceUnique=true` to auto-append suffix (`_2`, `_3`) if name exists
* For tab colors, use EITHER `rgbColor` OR `themeColor`, not both
* Avoid `index` when creating sheets in parallel (causes errors)
* OBJECT sheets are created via `addChart` with `position.newSheet=true`
* DATA\_SOURCE sheets require `bigquery.readonly` OAuth scope

Use cases: Add standard grid sheet, create chart on dedicated sheet, connect to BigQuery data source.

#### Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

| Parameter             | Type    | Required | Example                                          | Description                                                                                                                                                                                                                                                                                                              |
| --------------------- | ------- | :------: | ------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `title`               | string  |          | —                                                | The name for the new sheet tab. Must be unique within the spreadsheet. Example: "Q3 Report", "Sales Data 2025". This is a convenience parameter - alternatively, you can set this via properties.title. Note: sheet\_name is also accepted as an alias for title.                                                        |
| `properties`          | object  |          | —                                                | Advanced sheet properties (grid dimensions, tab color, position, etc.). For simple cases, just use the 'title' parameter directly. Use this for additional customization.                                                                                                                                                |
| `force_unique`        | boolean |          | —                                                | When True (default), automatically ensures the sheet name is unique by appending a numeric suffix (e.g., '\_2', '\_3') if the requested name already exists. This makes the action resilient to retries and parallel workflows. When False, the action fails with an error if a sheet with the same name already exists. |
| `spreadsheet_id`      | string  |     ✅    | `"1BxiMVs0XRA5nFMdKvBdBZjgmUUqptlbs74OgvE2upms"` | REQUIRED. Cannot be empty. The ID of the target spreadsheet where the new sheet will be added. This is the long alphanumeric string in the Google Sheet URL (e.g., '1BxiMVs0XRA5nFMdKvBdBZjgmUUqptlbs74OgvE2upms'). Use 'Search Spreadsheets' action to find the spreadsheet ID by name if you don't have it.            |
| `data_source_config`  | object  |          | —                                                | Configuration for creating a DATA\_SOURCE sheet. DATA\_SOURCE sheets connect to external data sources like BigQuery. The API uses addDataSource request which automatically creates the associated sheet. IMPORTANT: Requires additional OAuth scope: bigquery.readonly                                                  |
| `object_sheet_config` | object  |          | —                                                | Configuration for creating an OBJECT sheet (a sheet containing a chart). To create an OBJECT sheet, you must provide chart configuration. The API uses addChart with position.newSheet=true to create the chart on its own sheet.                                                                                        |

***

### `Googlesheets Aggregate Column Data`

Integration name: **GOOGLESHEETS\_AGGREGATE\_COLUMN\_DATA**

Searches for rows where a specific column matches a value and performs mathematical operations on data from another column.

#### Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

| Parameter            | Type    | Required | Example                                          | Description                                                                                                                                                                                                                                                                                                                |
| -------------------- | ------- | :------: | ------------------------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `operation`          | string  |     ✅    | `"sum"`                                          | The mathematical operation to perform on the target column values.                                                                                                                                                                                                                                                         |
| `sheet_name`         | string  |     ✅    | `"Sheet1"`                                       | The name of the specific sheet within the spreadsheet. Matching is case-insensitive. If no exact match is found, partial matches will be attempted (e.g., 'overview' will match 'Overview 2025').                                                                                                                          |
| `search_value`       | string  |          | `"HSR"`                                          | The exact value to search for in the search column. Case-sensitive by default. If not provided (or if search\_column is not provided), all rows in the target column will be aggregated without filtering.                                                                                                                 |
| `search_column`      | string  |          | `"A"`                                            | The column to search in for filtering rows. Can be a letter (e.g., 'A', 'B') or column name from header row (e.g., 'Region', 'Department'). If not provided, all rows in the target column will be aggregated without filtering.                                                                                           |
| `target_column`      | string  |     ✅    | `"D"`                                            | The column to aggregate data from. Can be a letter (e.g., 'C', 'D') or column name from header row (e.g., 'Sales', 'Revenue').                                                                                                                                                                                             |
| `case_sensitive`     | boolean |          | `true`                                           | Whether the search should be case-sensitive.                                                                                                                                                                                                                                                                               |
| `has_header_row`     | boolean |          | `true`                                           | Whether the first row contains column headers. If True, column names can be used for `search_column` and `target_column`.                                                                                                                                                                                                  |
| `spreadsheet_id`     | string  |     ✅    | `"1BxiMVs0XRA5nFMdKvBdBZjgmUUqptlbs74OgvE2upms"` | The unique identifier of the Google Sheets spreadsheet.                                                                                                                                                                                                                                                                    |
| `percentage_total`   | number  |          | `10000`                                          | For percentage operation, the total value to calculate percentage against. If not provided, uses sum of all values in target column.                                                                                                                                                                                       |
| `additional_filters` | array   |          | —                                                | Extra column=value conditions applied with AND logic on top of `search_column`/`search_value`. Use this to filter on multiple columns simultaneously. Example: `[{"column": "Region", "value": "APAC"}]` combined with `search_column=Product/search_value=Beacon` returns only rows where Product=Beacon AND Region=APAC. |

***

### `Googlesheets Append Dimension`

Integration name: **GOOGLESHEETS\_APPEND\_DIMENSION**

Tool to append new rows or columns to a sheet, increasing its size. Use when you need to add empty rows or columns to an existing sheet.

#### Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

| Parameter                         | Type    | Required | Example                  | Description                                                                                                                                                                                                                             |
| --------------------------------- | ------- | :------: | ------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `length`                          | integer |     ✅    | `10`                     | The number of rows or columns to append.                                                                                                                                                                                                |
| `sheet_id`                        | integer |     ✅    | `0`                      | The numeric ID of the sheet (not the sheet name). This is a non-negative integer found in the sheet's URL as the `gid` parameter (e.g., gid=0) or in the sheet properties. The first sheet in a spreadsheet typically has `sheet_id=0`. |
| `dimension`                       | string  |     ✅    | `"ROWS"`                 | Specifies whether to append rows or columns.                                                                                                                                                                                            |
| `spreadsheet_id`                  | string  |     ✅    | `"1q2w3e4r5t6y7u8i9o0p"` | The ID of the spreadsheet.                                                                                                                                                                                                              |
| `response_ranges`                 | array   |          | —                        | Limits the ranges of the spreadsheet to include in the response.                                                                                                                                                                        |
| `response_include_grid_data`      | boolean |          | —                        | True if grid data should be included in the response (if `includeSpreadsheetInResponse` is true).                                                                                                                                       |
| `include_spreadsheet_in_response` | boolean |          | —                        | True if the updated spreadsheet should be included in the response.                                                                                                                                                                     |

***

### `Googlesheets Auto Resize Dimensions`

Integration name: **GOOGLESHEETS\_AUTO\_RESIZE\_DIMENSIONS**

Auto-fit column widths or row heights for a dimension range using `batchUpdate.autoResizeDimensions`. Use when you need to automatically adjust row heights or column widths to fit content after writing data.

#### Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

| Parameter        | Type    | Required | Example                                          | Description                                                                                                                                                                                                                     |
| ---------------- | ------- | :------: | ------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `sheet_id`       | integer |          | `0`                                              | The numeric ID of the sheet to resize. Either `sheet_id` or `sheet_name` must be provided. If both are provided, `sheet_name` takes precedence and will be resolved to `sheet_id`.                                              |
| `dimension`      | string  |     ✅    | `"COLUMNS"`                                      | The dimension to auto-resize. Use `ROWS` to auto-fit row heights or `COLUMNS` to auto-fit column widths.                                                                                                                        |
| `end_index`      | integer |     ✅    | `3`                                              | The zero-based end index of the dimension range to resize (exclusive). Must be greater than `start_index`. For example, to resize columns A-C, use `start_index=0` and `end_index=3`.                                           |
| `sheet_name`     | string  |          | `"Sheet1"`                                       | The name of the sheet to resize. Either `sheet_id` or `sheet_name` must be provided. Using `sheet_name` is recommended as it's more intuitive. If both `sheet_id` and `sheet_name` are provided, `sheet_name` takes precedence. |
| `start_index`    | integer |     ✅    | `0`                                              | The zero-based start index of the dimension range to resize (inclusive). For columns, 0 = column A. For rows, 0 = row 1.                                                                                                        |
| `spreadsheet_id` | string  |     ✅    | `"1BxiMVs0XRA5nFMdKvBdBZjgmUUqptlbs74OgvE2upms"` | The ID of the spreadsheet containing the sheet to resize.                                                                                                                                                                       |

***

### `Googlesheets Batch Clear Values By Data Filter`

Integration name: **GOOGLESHEETS\_BATCH\_CLEAR\_VALUES\_BY\_DATA\_FILTER**

Clears one or more ranges of values from a spreadsheet using data filters. The caller must specify the spreadsheet ID and one or more DataFilters. Ranges matching any of the specified data filters will be cleared. Only values are cleared -- all other properties of the cell (such as formatting, data validation, etc..) are kept.

#### Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

| Parameter       | Type   | Required | Example | Description                                              |
| --------------- | ------ | :------: | ------- | -------------------------------------------------------- |
| `dataFilters`   | array  |     ✅    | —       | The DataFilters used to determine which ranges to clear. |
| `spreadsheetId` | string |     ✅    | —       | The ID of the spreadsheet to update.                     |

***

### `Googlesheets Batch Get`

Integration name: **GOOGLESHEETS\_BATCH\_GET**

Retrieves data from specified cell ranges in a Google Spreadsheet.

#### Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

| Parameter                | Type    | Required | Example                                          | Description                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
| ------------------------ | ------- | :------: | ------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `ranges`                 | array   |          | `"Sheet1"`                                       | A list of cell ranges in A1 notation from which to retrieve data. If this list is omitted, empty, or contains only empty strings, all data from the first sheet of the spreadsheet will be fetched. Empty strings in the list are automatically filtered out. Supported formats: (1) Bare sheet name like `Sheet1` to get all data from that sheet, (2) Sheet with range like `Sheet1!A1:B2`, (3) Just cell reference like `A1:B2` (uses first sheet). For sheet names with spaces or special characters, enclose in single quotes (e.g., `"'My Sheet'"` or `"'My Sheet'!A1:B2"`). IMPORTANT: For large sheets, always use bounded ranges with explicit row limits (e.g., `Sheet1!A1:Z10000` instead of `Sheet1!A:Z`). Unbounded column ranges like `A:Z` on sheets with >10,000 rows may cause timeouts or errors. If you need all data from a large sheet, fetch in chunks of 10,000 rows at a time. |
| `majorDimension`         | string  |          | —                                                | The major dimension for organizing data in results.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
| `spreadsheet_id`         | string  |     ✅    | `"1BxiMVs0XRA5nFMdKvBdBZjgmUUqptlbs74OgvE2upms"` | The unique identifier of the Google Spreadsheet from which data will be retrieved. This is the ID found in the spreadsheet URL after `/d/`. You can provide either the spreadsheet ID directly or a full Google Sheets URL (the ID will be extracted automatically).                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| `valueRenderOption`      | string  |          | —                                                | How values should be rendered in the output. FORMATTED\_VALUE: Values are calculated and formatted (default). UNFORMATTED\_VALUE: Values are calculated but not formatted. FORMULA: Values are not calculated; the formula is returned instead.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| `dateTimeRenderOption`   | string  |          | —                                                | How dates and times should be rendered in the output. SERIAL\_NUMBER: Dates are returned as serial numbers (default). FORMATTED\_STRING: Dates returned as formatted strings.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| `empty_strings_filtered` | boolean |          | —                                                | Indicates whether empty strings were filtered from the response.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |

***

### `Googlesheets Batch Update`

Integration name: **GOOGLESHEETS\_BATCH\_UPDATE**

DEPRECATED: Use `GOOGLESHEETS_VALUES_UPDATE` instead.

Write values to ONE range in a Google Sheet, or append as new rows if no start cell is given.

**IMPORTANT:** This tool does NOT accept the Google Sheets API's native batch format:

* WRONG: `{"data": [{"range": "...", "values": [[...]]}], ...}`
* CORRECT: `{"sheet_name": "...", "values": [[...]], "first_cell_location": "...", ...}`

To update MULTIPLE ranges, make SEPARATE CALLS to this tool for each range.

Features:

* Auto-expands grid for large datasets (prevents range errors)
* Set `first_cell_location` to write at a specific position (e.g., `"A1"`, `"B5"`)
* Omit `first_cell_location` to append values as new rows at the end

Requirements: Target sheet must exist and spreadsheet must contain at least one worksheet.

#### Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

| Parameter                    | Type    | Required | Example                                                                                                                                    | Description                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
| ---------------------------- | ------- | :------: | ------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `values`                     | array   |     ✅    | `[["Item","Cost","Stocked","Ship Date"],["Wheel",20.5,true,"2020-06-01"],["Screw",0.5,true,"2020-06-03"],["Nut",0.25,false,"2020-06-02"]]` | A 2D array of cell values where each inner array represents a row. Values can be strings, numbers, booleans, or None/null for empty cells. Ensure columns are properly aligned across rows.                                                                                                                                                                                                                                                                                                                                    |
| `sheet_name`                 | string  |     ✅    | `"Sheet1"`                                                                                                                                 | The name of the specific sheet (tab) within the spreadsheet to update (required, separate from cell reference). Case-insensitive matching is supported (e.g., 'sheet1' will match 'Sheet1'). Note: Default sheet names are locale-dependent (e.g., 'Sheet1' in English, 'Foglio1' in Italian, 'Hoja 1' in Spanish, '시트1' in Korean, 'Feuille 1' in French). If you specify a common default name like 'Sheet1' and it doesn't exist, the action will automatically use the first sheet in the spreadsheet.                     |
| `spreadsheet_id`             | string  |     ✅    | `"1BxiMVs0XRA5nFMdKvBdBZjgmUUqptlbs74OgvE2upms"`                                                                                           | The unique identifier of the Google Sheets spreadsheet to be updated. Must be an alphanumeric string (with hyphens and underscores allowed) typically 44 characters long. Can be found in the spreadsheet URL between `/d/` and `/edit`. Example: `https://docs.google.com/spreadsheets/d/1BxiMVs0XRA5nFMdKvBdBZjgmUUqptlbs74OgvE2upms/edit` has ID `1BxiMVs0XRA5nFMdKvBdBZjgmUUqptlbs74OgvE2upms`.                                                                                                                            |
| `value_input_option`         | string  |          | `"USER_ENTERED"`                                                                                                                           | How input data should be interpreted. `USER_ENTERED`: Values are parsed as if typed by a user (e.g., strings may become numbers/dates, formulas are calculated). `RAW`: Values are stored exactly as provided without parsing (e.g., `'123'` stays as string, `' =SUM(A1:B1)'` is not calculated).                                                                                                                                                                                                                             |
| `first_cell_location`        | string  |          | `"A1"`                                                                                                                                     | The starting cell for the update range, specified as a single cell in A1 notation WITHOUT sheet prefix (e.g., `'A1'`, `'B2'`, `'AA931'`). The update will extend from this cell to the right and down based on the provided values. Sheet name must be provided separately in the `sheet_name` field. If omitted or set to null, values are appended as new rows to the sheet. Note: Use only a single cell reference (e.g., `'AA931'`), NOT a range (e.g., `'AA931:AF931'`) or sheet-prefixed notation (e.g., `'Sheet1!A1'`). |
| `include_values_in_response` | boolean |          | `true`                                                                                                                                     | If set to True, the response will include the updated values in the `spreadsheet.responses[].updatedData` field. The updatedData object contains `range` (A1 notation), `majorDimension` (ROWS), and `values` (2D array of the actual cell values after the update).                                                                                                                                                                                                                                                           |

***

### `Googlesheets Batch Update Values By Data Filter`

Integration name: **GOOGLESHEETS\_BATCH\_UPDATE\_VALUES\_BY\_DATA\_FILTER**

Tool to update values in ranges matching data filters. Use when you need to update specific data in a Google Sheet based on criteria rather than fixed cell ranges.

#### Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

| Parameter                      | Type    | Required | Example | Description                                                                                                                                                                                                                                                                                                             |
| ------------------------------ | ------- | :------: | ------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `data`                         | array   |     ✅    | —       | The new values to apply to the spreadsheet. If more than one range is matched by the specified DataFilter the specified values are applied to all of those ranges. Can be provided as a JSON string or as a list of DataFilterValueRange objects.                                                                       |
| `spreadsheetId`                | string  |     ✅    | —       | The ID of the spreadsheet to update.                                                                                                                                                                                                                                                                                    |
| `valueInputOption`             | string  |     ✅    | —       | How the input data should be interpreted. `RAW`: Values are stored exactly as entered, without parsing. `USER_ENTERED`: Values are parsed as if typed by a user (numbers stay numbers, strings prefixed with `=` become formulas, etc.). `INPUT_VALUE_OPTION_UNSPECIFIED`: Default input value option is not specified. |
| `includeValuesInResponse`      | boolean |          | —       | Determines if the update response should include the values of the cells that were updated. By default, responses do not include the updated values.                                                                                                                                                                    |
| `responseValueRenderOption`    | string  |          | —       | Determines how values in the response should be rendered. The default render option is `FORMATTED_VALUE`.                                                                                                                                                                                                               |
| `responseDateTimeRenderOption` | string  |          | —       | Determines how dates, times, and durations in the response should be rendered. This is ignored if `responseValueRenderOption` is `FORMATTED_VALUE`. The default dateTime render option is `SERIAL_NUMBER`.                                                                                                              |

***

### `Googlesheets Clear Basic Filter`

Integration name: **GOOGLESHEETS\_CLEAR\_BASIC\_FILTER**

Tool to clear the basic filter from a sheet. Use when you need to remove an existing basic filter from a specific sheet within a Google Spreadsheet.

#### Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

| Parameter                         | Type    | Required | Example          | Description                                                                                                             |
| --------------------------------- | ------- | :------: | ---------------- | ----------------------------------------------------------------------------------------------------------------------- |
| `sheet_id`                        | integer |     ✅    | `0`              | The ID of the sheet on which the basic filter should be cleared.                                                        |
| `spreadsheet_id`                  | string  |     ✅    | `"abc123xyz789"` | The ID of the spreadsheet.                                                                                              |
| `response_ranges`                 | array   |          | —                | Limits the ranges included in the response spreadsheet. Only applicable when `include_spreadsheet_in_response` is true. |
| `response_include_grid_data`      | boolean |          | —                | True if grid data should be returned in the response. Only applicable when `include_spreadsheet_in_response` is true.   |
| `include_spreadsheet_in_response` | boolean |          | —                | Determines if the update response should include the spreadsheet resource.                                              |

***

### `Googlesheets Clear Values`

Integration name: **GOOGLESHEETS\_CLEAR\_VALUES**

Clears cell content (preserving formatting and notes) from a specified A1 notation range in a Google Spreadsheet; the range must correspond to an existing sheet and cells.

#### Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

| Parameter        | Type   | Required | Example                                          | Description                                                                                                                                                                                                  |
| ---------------- | ------ | :------: | ------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `range`          | string |     ✅    | `"Sheet1!A1:B10"`                                | The A1 notation of the range to clear values from (e.g., `'Sheet1!A1:B2'`, `'MySheet!C:C'`, or `'A1:D5'`). If the sheet name is omitted (e.g., `'A1:B2'`), the operation applies to the first visible sheet. |
| `spreadsheet_id` | string |     ✅    | `"1qZ_g6N0g3Z0s5hJ2xQ8vP9r7T_u6X3iY2o0kE_l5N7M"` | The unique identifier of the Google Spreadsheet from which to clear values. This ID can be found in the URL of the spreadsheet.                                                                              |

***

### `Googlesheets Create Chart`

Integration name: **GOOGLESHEETS\_CREATE\_CHART**

Create a chart in a Google Sheets spreadsheet using the specified data range and chart type.

**Conditional requirements:**

* Provide either a simple chart via `chart_type` + `data_range` (`basicChart`), OR supply a full `chart_spec` supporting all chart types. Exactly one approach should be used.
* When using `chart_spec`, set exactly one of the union fields (`basicChart | pieChart | bubbleChart | candlestickChart | histogramChart | waterfallChart | treemapChart | orgChart | scorecardChart`).

#### Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

| Parameter          | Type    | Required | Example                                                                                                                                                                                                                                                                                                        | Description                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
| ------------------ | ------- | :------: | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `title`            | string  |          | `"Sales Data"`                                                                                                                                                                                                                                                                                                 | Optional title for the chart.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| `sheet_id`         | integer |     ✅    | `0`                                                                                                                                                                                                                                                                                                            | The numeric `sheetId` (not the sheet name/title) of the worksheet where the chart will be created. This is a unique integer identifier for the sheet within the spreadsheet. The first/default sheet typically has `sheetId=0`. IMPORTANT: Use 'Get Spreadsheet Info' action to retrieve valid sheetIds - look for `sheets[].properties.sheetId` in the response. The `sheetId` must exist in the target spreadsheet; using an ID from a different spreadsheet will fail.                                                                              |
| `subtitle`         | string  |          | `"Q1 2024"`                                                                                                                                                                                                                                                                                                    | Optional subtitle for the chart.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| `chart_spec`       | object  |          | `{"pieChart":{"domain":{"sourceRange":{"sources":[{"sheetId":0,"endRowIndex":5,"startRowIndex":0,"endColumnIndex":1,"startColumnIndex":0}]}},"series":{"sourceRange":{"sources":[{"sheetId":0,"endRowIndex":5,"startRowIndex":0,"endColumnIndex":2,"startColumnIndex":1}]}},"legendPosition":"RIGHT_LEGEND"}}` | Optional full ChartSpec object to send to the Google Sheets API. Use this to support ALL chart types and advanced options. Must set exactly one of: basicChart, pieChart, bubbleChart, candlestickChart, histogramChart, treemapChart, waterfallChart, orgChart, scorecardChart. See <https://developers.google.com/workspace/sheets/api/reference/rest/v4/spreadsheets/charts#ChartSpec>.                                                                                                                                                             |
| `chart_type`       | string  |     ✅    | `"COLUMN"`                                                                                                                                                                                                                                                                                                     | The type of chart to create. Case-insensitive. Supported types: BAR, LINE, AREA, COLUMN, SCATTER, COMBO, STEPPED\_AREA (basic charts with axes), PIE (pie/donut charts), HISTOGRAM, BUBBLE, CANDLESTICK (requires 4+ data columns for low/open/close/high), TREEMAP, WATERFALL, ORG (organizational charts), SCORECARD. Each chart type uses its appropriate Google Sheets API spec structure. For advanced customization, provide `chart_spec` instead.                                                                                               |
| `data_range`       | string  |     ✅    | `"A1:C10"`                                                                                                                                                                                                                                                                                                     | A single contiguous range of data for the chart in A1 notation (e.g., `'A1:C10'` or `'Sheet1!B2:D20'`). Must be a single continuous range - comma-separated multi-ranges (e.g., `'A1:A10,C1:C10'`) are not supported. When `chart_spec` is not provided, the first column is used as the domain/labels and the remaining columns as series. IMPORTANT: PIE charts require at least 2 columns - the first column for category labels (domain) and the second column for numeric values (series). Single-column ranges are not supported for PIE charts. |
| `x_axis_title`     | string  |          | `"Time Period"`                                                                                                                                                                                                                                                                                                | Optional title for the X-axis.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| `y_axis_title`     | string  |          | `"Revenue ($)"`                                                                                                                                                                                                                                                                                                | Optional title for the Y-axis.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| `background_red`   | number  |          | `0`                                                                                                                                                                                                                                                                                                            | Red component of chart background color (0.0-1.0). If not specified, uses default.                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| `spreadsheet_id`   | string  |     ✅    | `"1BxiMVs0XRA5nFMdKvBdBZjgmUUqptlbs74OgvE2upms"`                                                                                                                                                                                                                                                               | The unique identifier of the Google Sheets spreadsheet where the chart will be created. Must be the actual spreadsheet ID from the URL (e.g., `'1BxiMVs0XRA5nFMdKvBdBZjgmUUqptlbs74OgvE2upms'`), NOT the spreadsheet name or title. Find it in the URL: <https://docs.google.com/spreadsheets/d/SPREADSHEET\\_ID/edit>                                                                                                                                                                                                                                 |
| `background_blue`  | number  |          | `0`                                                                                                                                                                                                                                                                                                            | Blue component of chart background color (0.0-1.0). If not specified, uses default.                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
| `legend_position`  | string  |          | `"BOTTOM_LEGEND"`                                                                                                                                                                                                                                                                                              | Position of the chart legend. Options: BOTTOM\_LEGEND, TOP\_LEGEND, LEFT\_LEGEND, RIGHT\_LEGEND, NO\_LEGEND.                                                                                                                                                                                                                                                                                                                                                                                                                                           |
| `background_green` | number  |          | `0`                                                                                                                                                                                                                                                                                                            | Green component of chart background color (0.0-1.0). If not specified, uses default.                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |

***

### `Googlesheets Create Google Sheet1`

Integration name: **GOOGLESHEETS\_CREATE\_GOOGLE\_SHEET1**

Creates a new Google Spreadsheet in Google Drive. If a title is provided, the spreadsheet will be created with that name. If no title is provided, Google will create a spreadsheet with a default name like 'Untitled spreadsheet'.

Optionally create the spreadsheet in a specific folder by providing either:

* `folder_id`: The Google Drive folder ID (preferred, unambiguous)
* `folder_name`: The folder name (searches for exact match; if multiple folders match, returns choices)

If neither `folder_id` nor `folder_name` is provided, the spreadsheet is created in the root Drive folder.

#### Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

| Parameter     | Type   | Required | Example                  | Description                                                                                                                                                                                                                                                                           |
| ------------- | ------ | :------: | ------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `title`       | string |          | `"Q4 Financial Report"`  | The title for the new Google Sheet. If omitted, Google will create a spreadsheet with a default name like 'Untitled spreadsheet'.                                                                                                                                                     |
| `folder_id`   | string |          | `"1a2b3c4d5e6f7g8h9i0j"` | Google Drive folder ID where the spreadsheet should be created. If provided, the spreadsheet will be moved to this folder after creation. Takes precedence over `folder_name`.                                                                                                        |
| `folder_name` | string |          | `"Marketing Materials"`  | Google Drive folder name where the spreadsheet should be created. If provided and `folder_id` is not provided, the action will search for a folder with this exact name. If multiple folders match, you'll receive a list to choose from. If no folder matches, an error is returned. |

***

### `Googlesheets Create Spreadsheet Column`

Integration name: **GOOGLESHEETS\_CREATE\_SPREADSHEET\_COLUMN**

Creates a new column in a Google Spreadsheet. Specify the target sheet using `sheet_id` (numeric) or `sheet_name` (text). If neither is provided, defaults to the first sheet (`sheet_id=0`).

#### Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

| Parameter                         | Type    | Required | Example                                         | Description                                                                                                                                                                                                                                                                                                       |
| --------------------------------- | ------- | :------: | ----------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `sheet_id`                        | integer |          | `0`                                             | The numeric identifier of the specific sheet (tab) within the spreadsheet. Defaults to 0 (the first sheet) if neither `sheet_id` nor `sheet_name` is provided. Use `GOOGLESHEETS_GET_SHEET_NAMES` or `GOOGLESHEETS_FIND_WORKSHEET_BY_TITLE` to obtain the `sheet_id` from a sheet name.                           |
| `sheet_name`                      | string  |          | `"Sheet1"`                                      | The name (title) of the sheet/tab where the column will be added. If provided, the action will look up the `sheet_id` automatically. If both `sheet_id` and `sheet_name` are provided, `sheet_id` takes precedence.                                                                                               |
| `insert_index`                    | integer |          | `0`                                             | The 0-based index at which the new column will be inserted. For example, an index of 0 inserts the column before the current first column (A), and an index of 1 inserts it between the current columns A and B.                                                                                                  |
| `spreadsheet_id`                  | string  |     ✅    | `"1qZysYd_N2cZ9gkZ8sR7M0rP8sX5vW2bA9gV3rF1cE0"` | The unique identifier of the Google Spreadsheet where the column will be created.                                                                                                                                                                                                                                 |
| `response_ranges`                 | array   |          | `["Sheet1!A1:D10"]`                             | Limits the ranges of the spreadsheet to include in the response. Only used if `includeSpreadsheetInResponse` is true.                                                                                                                                                                                             |
| `inherit_from_before`             | boolean |          | `true`                                          | If true, the new column inherits properties (e.g., formatting, width) from the column immediately to its left (the preceding column). If false (default), it inherits from the column immediately to its right (the succeeding column). This is ignored if there is no respective preceding or succeeding column. |
| `response_include_grid_data`      | boolean |          | `true`                                          | If true, grid data will be included in the response (only used if `includeSpreadsheetInResponse` is true).                                                                                                                                                                                                        |
| `include_spreadsheet_in_response` | boolean |          | `true`                                          | If true, the updated spreadsheet will be included in the response. Defaults to true if not specified.                                                                                                                                                                                                             |

***

### `Googlesheets Create Spreadsheet Row`

Integration name: **GOOGLESHEETS\_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.

#### Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

| Parameter                         | Type    | Required | Example                                         | Description                                                                                                                                                                                                                                    |
| --------------------------------- | ------- | :------: | ----------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `sheet_id`                        | integer |          | `0`                                             | The numeric identifier of the sheet (tab) within the spreadsheet where the row will be inserted. This ID (`gid`) is found in the URL of the spreadsheet (e.g., `'0'` for the first sheet). Either `sheet_id` or `sheet_name` must be provided. |
| `sheet_name`                      | string  |          | `"Sheet1"`                                      | The human-readable name of the sheet (tab) within the spreadsheet where the row will be inserted (e.g., `'Sheet1'`). Either `sheet_id` or `sheet_name` must be provided. If both are provided, `sheet_id` takes precedence.                    |
| `insert_index`                    | integer |          | `0`                                             | The 0-based index at which the new row should be inserted. For example, an index of 0 inserts the row at the beginning of the sheet. If the index is greater than the current number of rows, the row is appended.                             |
| `spreadsheet_id`                  | string  |     ✅    | `"1qpyC0XzHc_-_d824s2VfopkHh7D0jW4aXCS1D_AlGA"` | The unique identifier of the Google Spreadsheet. Can be provided as the ID (e.g., `'1qpyC0XzHc_-_d824s2VfopkHh7D0jW4aXCS1D_AlGA'`) or as a full URL (the ID will be extracted automatically).                                                  |
| `response_ranges`                 | array   |          | `["Sheet1!A1:D10"]`                             | Limits the ranges included in the response spreadsheet. Only meaningful when `include_spreadsheet_in_response` is True. Use A1 notation (e.g., `['Sheet1!A1:D10']`).                                                                           |
| `inherit_from_before`             | boolean |          | `true`                                          | If True, the newly inserted row will inherit formatting and properties from the row immediately preceding its insertion point. If False, it will have default formatting.                                                                      |
| `response_include_grid_data`      | boolean |          | `true`                                          | If True, grid data will be included in the response spreadsheet. Only meaningful when `include_spreadsheet_in_response` is True. Default is False.                                                                                             |
| `include_spreadsheet_in_response` | boolean |          | `true`                                          | If True, the response will include the full updated Spreadsheet resource. Default behavior includes the spreadsheet when this parameter is not specified.                                                                                      |

***

### `Googlesheets Delete Chart`

Integration name: **GOOGLESHEETS\_DELETE\_CHART**

Delete an existing chart from a Google Sheets spreadsheet. Use this action when you need to remove a chart that is no longer needed or needs to be replaced. This action is irreversible — once a chart is deleted, it cannot be recovered. The chart data source (the cells containing the data) remains unchanged; only the chart visualization is removed.

#### Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

| Parameter        | Type    | Required | Example                                          | Description                                                                                                                                                                                                                                                                                                                                                |
| ---------------- | ------- | :------: | ------------------------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `chart_id`       | integer |     ✅    | `707876808`                                      | The unique numeric identifier of the chart to delete (also known as objectId or chartId). This is the chart's ID within the spreadsheet, not the sheet ID. You can retrieve chart IDs using the 'Get Spreadsheet Info' action - look for `sheets[].charts[].chartId` in the response. Each chart has a unique ID that persists until the chart is deleted. |
| `spreadsheet_id` | string  |     ✅    | `"1BxiMVs0XRA5nFMdKvBdBZjgmUUqptlbs74OgvE2upms"` | The unique identifier of the Google Sheets spreadsheet containing the chart to delete. Must be the actual spreadsheet ID from the URL (e.g., `'1BxiMVs0XRA5nFMdKvBdBZjgmUUqptlbs74OgvE2upms'`), NOT the spreadsheet name or title. Find it in the URL: <https://docs.google.com/spreadsheets/d/SPREADSHEET\\_ID/edit>                                      |

***

### `Googlesheets Delete Dimension`

Integration name: **GOOGLESHEETS\_DELETE\_DIMENSION**

Tool to delete specified rows or columns from a sheet in a Google Spreadsheet. Use when you need to remove a range of rows or columns.

#### Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

| Parameter                         | Type    | Required | Example                         | Description                                                                                                                                                                                                                                                                                     |
| --------------------------------- | ------- | :------: | ------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `sheet_id`                        | integer |          | `0`                             | The unique numeric ID of the sheet (not the index/position). This ID is assigned by Google Sheets and does not change when sheets are reordered. Use `GOOGLESHEETS_GET_SPREADSHEET_INFO` to find the sheet ID, or use `sheet_name` instead. Either `sheet_id` or `sheet_name` must be provided. |
| `dimension`                       | string  |          | `"ROWS"`                        | The dimension to delete (ROWS or COLUMNS).                                                                                                                                                                                                                                                      |
| `end_index`                       | integer |          | `1`                             | The zero-based end index of the range to delete, exclusive. Must be greater than `start_index` and at most equal to the sheet's current row/column count. Note: Cannot delete all rows or columns from a sheet - at least one row and one column must remain.                                   |
| `sheet_name`                      | string  |          | `"Sheet1"`                      | The name/title of the sheet from which to delete the dimension. Using `sheet_name` is recommended as it's more intuitive than `sheet_id`. Either `sheet_id` or `sheet_name` must be provided.                                                                                                   |
| `start_index`                     | integer |          | `0`                             | The zero-based start index of the range to delete, inclusive. Must be less than `end_index` and within the sheet's current row/column count. Note: Cannot delete all rows or columns from a sheet - at least one row and one column must remain.                                                |
| `spreadsheet_id`                  | string  |     ✅    | `"abc123xyz789"`                | The ID of the spreadsheet.                                                                                                                                                                                                                                                                      |
| `response_ranges`                 | array   |          | `["Sheet1!A1:B2","Sheet2!C:C"]` | Limits the ranges of cells included in the response spreadsheet.                                                                                                                                                                                                                                |
| `delete_dimension_request`        | object  |          | —                               | The details for the delete dimension request object.                                                                                                                                                                                                                                            |
| `response_include_grid_data`      | boolean |          | `true`                          | True if grid data should be returned. This parameter is ignored if a field mask was set in the request.                                                                                                                                                                                         |
| `include_spreadsheet_in_response` | boolean |          | `true`                          | Determines if the update response should include the spreadsheet resource.                                                                                                                                                                                                                      |

***

### `Googlesheets Delete Sheet`

Integration name: **GOOGLESHEETS\_DELETE\_SHEET**

Tool to delete a sheet (worksheet) from a spreadsheet. Use when you need to remove a specific sheet from a Google Sheet document.

#### Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

| Parameter                      | Type    | Required | Example                             | Description                                                                                                                                                                                                         |
| ------------------------------ | ------- | :------: | ----------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `sheetId`                      | integer |     ✅    | `123456789`                         | The ID of the sheet to delete. Note: A spreadsheet must contain at least one sheet, so you cannot delete the last remaining sheet. If the sheet is of DATA\_SOURCE type, the associated DataSource is also deleted. |
| `spreadsheetId`                | string  |     ✅    | `"abc123xyz789"`                    | The ID of the spreadsheet from which to delete the sheet.                                                                                                                                                           |
| `responseRanges`               | array   |          | `["Sheet1!A1:B10","Sheet2!C1:D20"]` | Limits which ranges are returned when `includeSpreadsheetInResponse` is true. Only meaningful if `includeSpreadsheetInResponse` is set to true. Ranges should be in A1 notation (e.g., `'Sheet1!A1:B10'`).          |
| `responseIncludeGridData`      | boolean |          | —                                   | True if grid data should be returned in the response spreadsheet. Only meaningful when `includeSpreadsheetInResponse` is true and no field mask is set on the request.                                              |
| `includeSpreadsheetInResponse` | boolean |          | —                                   | Determines if the spreadsheet resource should be returned in the response. If true, the response includes the updated spreadsheet resource with all its sheets, properties, and metadata.                           |

***

### `Googlesheets Execute Sql`

Integration name: **GOOGLESHEETS\_EXECUTE\_SQL**

DEPRECATED: Use direct Google Sheets actions instead:

* `GOOGLESHEETS_VALUES_GET` / `GOOGLESHEETS_BATCH_GET` for reads
* `GOOGLESHEETS_VALUES_UPDATE` / `GOOGLESHEETS_UPDATE_VALUES_BATCH` / `GOOGLESHEETS_SPREADSHEETS_VALUES_APPEND` for writes

Execute SQL queries against Google Sheets tables. Supports `SELECT`, `INSERT`, `UPDATE`, `DELETE` operations and `WITH` clauses (CTEs) with familiar SQL syntax. Tables are automatically detected and mapped from the spreadsheet structure.

#### Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

| Parameter        | Type    | Required | Example                                          | Description                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| ---------------- | ------- | :------: | ------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `sql`            | string  |     ✅    | `"SELECT * FROM \"Sales_Data\" LIMIT 10"`        | Complete SQL query to execute. Must begin with SELECT, INSERT, UPDATE, DELETE, or WITH. Supports Common Table Expressions (CTEs) using WITH clause for complex queries. Note: WITH clauses require the sqlglot library for full support; simple SELECT/INSERT/UPDATE/DELETE operations work without it. Use table names (sheet names) in FROM/INTO clauses, not A1 range notation. The query must include proper SQL clauses (e.g., SELECT columns FROM table, not just a column name or condition). Example: `SELECT * FROM "Sheet1" WHERE A = 'value'` (correct) instead of just `A = 'value'` (incorrect). |
| `dry_run`        | boolean |          | —                                                | Preview changes without applying them (for write operations)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
| `delete_method`  | string  |          | —                                                | For DELETE operations: `'clear'` preserves row structure, `'remove_rows'` shifts data up                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
| `spreadsheet_id` | string  |     ✅    | `"1BxiMVs0XRA5nFMdKvBdBZjgmUUqptlbs74OgvE2upms"` | The unique alphanumeric ID of the Google Spreadsheet extracted from the URL. Format: A long string of letters, numbers, hyphens, and underscores (typically 44 characters). Find it in the URL: <https://docs.google.com/spreadsheets/d/{SPREADSHEET\\_ID}/edit>. Must be a valid ID - values like `'auto'` are NOT valid and will fail.                                                                                                                                                                                                                                                                      |

***

### `Googlesheets Find Replace`

Integration name: **GOOGLESHEETS\_FIND\_REPLACE**

Tool to find and replace text in a Google Spreadsheet. Use when you need to fix formula errors, update values, or perform bulk text replacements across cells.

Common use cases:

* Fix `#ERROR!` cells by replacing with empty string or correct formula
* Update old values with new ones across multiple cells
* Fix formula references or patterns
* Clean up data formatting issues

#### Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

| Parameter          | Type    | Required | Example                                          | Description                                                                                                                                                                                                                                                                                                                                                                                                          |
| ------------------ | ------- | :------: | ------------------------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `find`             | string  |     ✅    | `"#ERROR!"`                                      | The text to find. Can be a literal string or a regular expression pattern.                                                                                                                                                                                                                                                                                                                                           |
| `range`            | string  |          | `"A1:B10"`                                       | A1 notation range string to search within (e.g., `'A1:B10'`, `'Sheet1!A1:B10'`). When using A1 notation with a sheet name, you must also provide `range_sheet_id` to specify the numeric sheet ID (the API requires numeric IDs). Alternatively, use the GridRange parameters (`range_sheet_id` with optional row/column indices) for explicit numeric control. Mutually exclusive with `sheet_id` and `all_sheets`. |
| `replace`          | string  |     ✅    | `""`                                             | The text to replace the found instances with.                                                                                                                                                                                                                                                                                                                                                                        |
| `sheetId`          | integer |          | `0`                                              | The numeric ID of the sheet to search the entire sheet (e.g., 0 for the first sheet). Mutually exclusive with `sheet_name`, `range/range_sheet_id` parameters, and `all_sheets`. You must specify exactly one scope: either `sheet_id` (entire sheet), `sheet_name`, `range/range_sheet_id` (specific range), or `all_sheets`.                                                                                       |
| `allSheets`        | boolean |          | `true`                                           | Whether to search across all sheets in the spreadsheet. Mutually exclusive with `sheet_id` and `range` parameters.                                                                                                                                                                                                                                                                                                   |
| `matchCase`        | boolean |          | `true`                                           | Whether the search should be case-sensitive.                                                                                                                                                                                                                                                                                                                                                                         |
| `sheetName`        | string  |          | `"Sheet1"`                                       | The name/title of the sheet (tab) to search within (e.g., `'Sheet1'`, `'Sales Data'`). The sheet name will be resolved to its numeric sheet ID. Mutually exclusive with `sheet_id`, `range/range_sheet_id` parameters, and `all_sheets`.                                                                                                                                                                             |
| `endRowIndex`      | integer |          | `10`                                             | The end row (0-indexed, exclusive) of the range. Only used when `range_sheet_id` is provided without a `range` parameter.                                                                                                                                                                                                                                                                                            |
| `rangeSheetId`     | integer |          | `0`                                              | The numeric sheet ID for a GridRange-based search. Required when using the `range` parameter with A1 notation. Can also be used alone or with row/column index parameters to define a specific range. Mutually exclusive with `sheet_id` and `all_sheets`.                                                                                                                                                           |
| `searchByRegex`    | boolean |          | `true`                                           | Whether to treat the find text as a regular expression.                                                                                                                                                                                                                                                                                                                                                              |
| `spreadsheetId`    | string  |     ✅    | `"1BxiMVs0XRA5nFMdKvBdBZjgmUUqptlbs74OgvE2upms"` | The ID of the spreadsheet to update.                                                                                                                                                                                                                                                                                                                                                                                 |
| `startRowIndex`    | integer |          | `0`                                              | The start row (0-indexed, inclusive) of the range. Only used when `range_sheet_id` is provided without a `range` parameter.                                                                                                                                                                                                                                                                                          |
| `endColumnIndex`   | integer |          | `3`                                              | The end column (0-indexed, exclusive) of the range. Column A = 0, B = 1, etc. Only used when `range_sheet_id` is provided without a `range` parameter.                                                                                                                                                                                                                                                               |
| `includeFormulas`  | boolean |          | `true`                                           | Whether to include cells with formulas in the search. If true, formulas are searched and can be replaced. If false, only cell values (not formulas) are searched. If not specified, the default API behavior applies (both formulas and values are searched).                                                                                                                                                        |
| `matchEntireCell`  | boolean |          | `true`                                           | Whether to match only cells that contain the entire search term.                                                                                                                                                                                                                                                                                                                                                     |
| `startColumnIndex` | integer |          | `0`                                              | The start column (0-indexed, inclusive) of the range. Column A = 0, B = 1, etc. Only used when `range_sheet_id` is provided without a `range` parameter.                                                                                                                                                                                                                                                             |

***

### `Googlesheets Find Worksheet By Title`

Integration name: **GOOGLESHEETS\_FIND\_WORKSHEET\_BY\_TITLE**

DEPRECATED: Use `GetSpreadsheetInfo` instead.

Finds a worksheet by its exact, case-sensitive title within a Google Spreadsheet; returns a boolean indicating if found and the matched worksheet's metadata when found, or None when not found.

#### Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

| Parameter         | Type   | Required | Example                                         | Description                                                                                                                                                                                                                                                                                                                                |
| ----------------- | ------ | :------: | ----------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `spreadsheet_id`  | string |     ✅    | `"1aBcDeFgHiJkLmNoPqRsTuVwXyZ0123456789_drivE"` | The unique identifier of the Google Spreadsheet from the URL (e.g., `https://docs.google.com/spreadsheets/d/{spreadsheet_id}/edit`). Important: This is NOT the spreadsheet's display name/title. It is the long alphanumeric string (typically 40-45 characters) from the URL containing only letters, numbers, hyphens, and underscores. |
| `worksheet_title` | string |     ✅    | `"Sheet1"`                                      | The exact, case-sensitive title of the worksheet (tab name) to find.                                                                                                                                                                                                                                                                       |

***

### `Googlesheets Format Cell`

Integration name: **GOOGLESHEETS\_FORMAT\_CELL**

Applies text and background cell formatting to a specified range in a Google Sheets worksheet.

#### Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

| Parameter            | Type    | Required | Example                                          | Description                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
| -------------------- | ------- | :------: | ------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `red`                | number  |          | `"0.0"`                                          | Red component of the background color (0.0-1.0).                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| `blue`               | number  |          | `"0.0"`                                          | Blue component of the background color (0.0-1.0).                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
| `bold`               | boolean |          | `"true"`                                         | Apply bold formatting.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
| `green`              | number  |          | `"0.0"`                                          | Green component of the background color (0.0-1.0).                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| `range`              | string  |          | `"A1"`                                           | OPTION 1: Cell range in A1 notation (RECOMMENDED). Supports: single cells (`'A1'`, `'F9'`), cell ranges (`'A1:B5'`), entire columns (`'A'`, `'I:J'`), entire rows (`'1'`, `'1:5'`). Also accepts sheet-prefixed ranges (`'Sheet1!A1'`, `'Instagram Calendar!A1:E1'`) for convenience - if provided, the sheet prefix is stripped and ignored. The actual sheet used is determined by the `sheet_name` or `worksheet_id` parameter. Provide EITHER this field OR all four index fields below, not both. |
| `italic`             | boolean |          | `"true"`                                         | Apply italic formatting.                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
| `fontSize`           | integer |          | `"10"`                                           | Font size in points.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| `underline`          | boolean |          | `"true"`                                         | Apply underline formatting.                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
| `sheet_name`         | string  |          | `"Sheet1"`                                       | The worksheet name/title (e.g., `'Sheet1'`, `'Q3 Report'`). Provide either this field OR `worksheet_id`, not both. If both are provided, `sheet_name` takes precedence and will be resolved to `worksheet_id`.                                                                                                                                                                                                                                                                                         |
| `worksheet_id`       | integer |          | `0`                                              | The worksheet identifier. Accepts EITHER: (1) The `sheetId` from the Google Sheets API (a large number like `1534097477`, obtainable via `GOOGLESHEETS_GET_SPREADSHEET_INFO`), OR (2) The 0-based positional index of the worksheet (0 for first sheet, 1 for second, etc.). The action will first try to match by `sheetId`, then fall back to matching by index. Defaults to 0 (first sheet). Provide either this field OR `sheet_name`, not both.                                                   |
| `end_row_index`      | integer |          | `1`                                              | OPTION 2: 0-based index of the row AFTER the last row (exclusive). Required if `range` is not provided. Must provide ALL four index fields together.                                                                                                                                                                                                                                                                                                                                                   |
| `strikethrough`      | boolean |          | `"true"`                                         | Apply strikethrough formatting.                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| `wrap_strategy`      | string  |          | `"WRAP"`                                         | How text wraps within cells.                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
| `spreadsheet_id`     | string  |     ✅    | `"1BxiMVs0XRA5nFMdKvBdBZjgmUUqptlbs74OgvE2upms"` | Identifier of the Google Sheets spreadsheet.                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
| `start_row_index`    | integer |          | `0`                                              | OPTION 2: 0-based row index (row 1 = index 0, row 9 = index 8). Required if `range` is not provided. Must provide ALL four index fields together.                                                                                                                                                                                                                                                                                                                                                      |
| `end_column_index`   | integer |          | `1`                                              | OPTION 2: 0-based index of the column AFTER the last column (exclusive). Required if `range` is not provided. Must provide ALL four index fields together.                                                                                                                                                                                                                                                                                                                                             |
| `start_column_index` | integer |          | `0`                                              | OPTION 2: 0-based column index (A = 0, B = 1, F = 5). Required if `range` is not provided. Must provide ALL four index fields together.                                                                                                                                                                                                                                                                                                                                                                |

***

### `Googlesheets Get Batch Values`

Integration name: **GOOGLESHEETS\_GET\_BATCH\_VALUES**

DEPRECATED: Use `GOOGLESHEETS_BATCH_GET` instead.

Tool to return one or more ranges of values from a spreadsheet. Use when you need to retrieve data from multiple ranges in a single request.

#### Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

| Parameter                 | Type   | Required | Example                                          | Description                                                                                                                                                                                                                                             |
| ------------------------- | ------ | :------: | ------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `ranges`                  | array  |     ✅    | `["Sheet1!A1:B10"]`                              | The A1 notation or R1C1 notation of the ranges to retrieve values from. Specify one or more ranges (e.g., `['Sheet1!A1:B10', 'Sheet2!C1:D5']`). For sheet names with spaces or special characters, wrap in single quotes (e.g., `"'My Sheet'!A1:B10"`). |
| `spreadsheet_id`          | string |     ✅    | `"1BxiMVs0XRA5nFMdKvBdBZjgmUUqptlbs74OgvE2upms"` | The ID of the spreadsheet to retrieve data from. This is the unique identifier found in the spreadsheet URL between `/d/` and `/edit` (e.g., `'1BxiMVs0XRA5nFMdKvBdBZjgmUUqptlbs74OgvE2upms'`).                                                         |
| `major_dimension`         | string |          | —                                                | The major dimension for results.                                                                                                                                                                                                                        |
| `value_render_option`     | string |          | —                                                | How values should be rendered in the output.                                                                                                                                                                                                            |
| `date_time_render_option` | string |          | —                                                | How dates, times, and durations should be represented in the output.                                                                                                                                                                                    |

***

### `Googlesheets Get Conditional Format Rules`

Integration name: **GOOGLESHEETS\_GET\_CONDITIONAL\_FORMAT\_RULES**

List conditional formatting rules for each sheet (or a selected sheet) in a normalized, easy-to-edit form. Use when you need to view, audit, or prepare to modify conditional format rules.

#### Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

| Parameter                         | Type    | Required | Example                                        | Description                                                                                                                                                                                                        |
| --------------------------------- | ------- | :------: | ---------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `sheet_id`                        | integer |          | `0`                                            | Optional filter: return rules only for the sheet with this exact numeric `sheetId`. If not provided, returns rules for all sheets. If both `sheet_title` and `sheet_id` are provided, `sheet_id` takes precedence. |
| `sheet_title`                     | string  |          | `"Sheet1"`                                     | Optional filter: return rules only for the sheet with this exact title. If not provided, returns rules for all sheets.                                                                                             |
| `spreadsheet_id`                  | string  |     ✅    | `"12345abcdefGHIJKLMNOPqrstuvwxyz67890UVWXYZ"` | Unique identifier of the Google Spreadsheet, typically found in its URL.                                                                                                                                           |
| `exclude_tables_in_banded_ranges` | boolean |          | —                                              | True if tables should be excluded in the banded ranges. False if not set.                                                                                                                                          |

***

### `Googlesheets Get Data Validation Rules`

Integration name: **GOOGLESHEETS\_GET\_DATA\_VALIDATION\_RULES**

Tool to extract data validation rules from a Google Sheets spreadsheet. Use when you need to understand dropdown lists, allowed values, custom formulas, or other validation constraints for cells.

#### Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

| Parameter       | Type    | Required | Example                 | Description                                                                                                                             |
| --------------- | ------- | :------: | ----------------------- | --------------------------------------------------------------------------------------------------------------------------------------- |
| `ranges`        | array   |          | `["A1:A100","B1:B100"]` | Optional list of A1 ranges to scan. If omitted, the entire sheet(s) will be scanned. WARNING: Scanning entire large sheets may be slow. |
| `sheetId`       | integer |          | `0`                     | Optional sheet ID to filter by. If omitted, all sheets will be scanned.                                                                 |
| `sheetTitle`    | string  |          | `"Sheet1"`              | Optional sheet title to filter by. If omitted, all sheets will be scanned.                                                              |
| `includeEmpty`  | boolean |          | —                       | If true, include cells without validation rules in the output. Default is false.                                                        |
| `spreadsheetId` | string  |     ✅    | `"abc123xyz789"`        | The ID of the spreadsheet to request.                                                                                                   |

***

### `Googlesheets Get Sheet Names`

Integration name: **GOOGLESHEETS\_GET\_SHEET\_NAMES**

Lists all worksheet names from a specified Google Spreadsheet (which must exist), useful for discovering sheets before further operations.

#### Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

| Parameter        | Type    | Required | Example                                        | Description                                                                                                                                                                                                                                                                                                                                                                                        |
| ---------------- | ------- | :------: | ---------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `exclude_hidden` | boolean |          | —                                              | When True, hidden sheets will be excluded from the results. When False (default), all sheets including hidden ones are returned. Hidden sheets are sheets that have been hidden via the 'Hide sheet' option in Google Sheets UI.                                                                                                                                                                   |
| `spreadsheet_id` | string  |     ✅    | `"1qpyC0XzvTcKT6EISywY_7H7D7No1tpxEXAMPLE_ID"` | The unique identifier of the Google Spreadsheet (alphanumeric string, typically 44 characters). Extract only the ID portion from URLs - do not include leading/trailing slashes, `/edit` suffixes, query parameters, or URL fragments. From `https://docs.google.com/spreadsheets/d/1qpyC0XzvTcKT6EISywY_7H7D7No1tpxEXAMPLE_ID/edit#gid=0`, use only `1qpyC0XzvTcKT6EISywY_7H7D7No1tpxEXAMPLE_ID`. |

***

### `Googlesheets Get Spreadsheet By Data Filter`

Integration name: **GOOGLESHEETS\_GET\_SPREADSHEET\_BY\_DATA\_FILTER**

Returns the spreadsheet at the given ID, filtered by the specified data filters. Use this tool when you need to retrieve specific subsets of data from a Google Sheet based on criteria like A1 notation, developer metadata, or grid ranges. Important: This action is designed for filtered data retrieval. While it accepts empty filters and returns full metadata in that case, `GOOGLESHEETS_GET_SPREADSHEET_INFO` is the recommended action for unfiltered spreadsheet retrieval.

#### Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

| Parameter                     | Type    | Required | Example          | Description                                                                                                                                                                                                                                                                                                                                     |
| ----------------------------- | ------- | :------: | ---------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `dataFilters`                 | array   |          | —                | The DataFilters used to select which ranges to retrieve. Supports A1 notation (e.g., `'Sheet1!A1:B2'`), developer metadata lookup, or grid range filters. If empty or omitted, returns full spreadsheet metadata. Recommended: Use `GOOGLESHEETS_GET_SPREADSHEET_INFO` for unfiltered retrieval as it is the dedicated action for that purpose. |
| `spreadsheetId`               | string  |     ✅    | `"abc123xyz789"` | The ID of the spreadsheet to request.                                                                                                                                                                                                                                                                                                           |
| `includeGridData`             | boolean |          | `true`           | True if grid data should be returned. Ignored if a field mask is set.                                                                                                                                                                                                                                                                           |
| `excludeTablesInBandedRanges` | boolean |          | `false`          | True if tables should be excluded in the banded ranges. False if not set.                                                                                                                                                                                                                                                                       |

***

### `Googlesheets Get Spreadsheet Info`

Integration name: **GOOGLESHEETS\_GET\_SPREADSHEET\_INFO**

Retrieves metadata for a Google Spreadsheet using its ID. By default, returns essential information (ID, title, sheet properties) to avoid payload size issues. Use the `fields` parameter for comprehensive metadata or specific fields.

#### Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

| Parameter                         | Type    | Required | Example                                          | Description                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| --------------------------------- | ------- | :------: | ------------------------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `fields`                          | string  |          | `"sheets.properties(sheetId,title)"`             | Optional. Field mask specifying which fields to return. Uses Google's field mask syntax (comma-separated, dot-notation for nested fields). If not specified, a default mask returning common fields (spreadsheet ID, title, sheet properties) is applied to avoid payload size issues. For full metadata, use `*` (not recommended for large spreadsheets). When set, `includeGridData` is ignored. Examples: `'sheets.properties(sheetId,title)'`, `'properties.title,sheets.properties.sheetId'`. |
| `ranges`                          | array   |          | `["Sheet1!A1:D5"]`                               | Optional. The ranges to retrieve from the spreadsheet, specified using A1 notation (e.g., `'Sheet1!A1:D5'`, `'Sheet2!A1:C4'`). Multiple ranges can be requested simultaneously. If not specified, metadata for the entire spreadsheet is returned without grid data.                                                                                                                                                                                                                                |
| `spreadsheet_id`                  | string  |          | `"1BxiMVs0XRA5nFMdKvBdBZjgmUUqptlbs74OgvE2upms"` | Required. The Google Sheets spreadsheet ID or full URL. Accepts either the ID alone (e.g., `'1BxiMVs0XRA5nFMdKvBdBZjgmUUqptlbs74OgvE2upms'`) or a full Google Sheets URL (e.g., `'https://docs.google.com/spreadsheets/d/1BxiMVs0XRA5nFMdKvBdBZjgmUUqptlbs74OgvE2upms/edit'`). The ID will be automatically extracted from URLs. Note: Published/embedded URLs (containing `/d/e/2PACX-...`) are not supported.                                                                                     |
| `include_grid_data`               | boolean |          | `true`                                           | Optional. If true, grid data will be returned. This parameter is ignored if a field mask was set in the request. When false or not specified, only metadata is returned without cell values.                                                                                                                                                                                                                                                                                                        |
| `exclude_tables_in_banded_ranges` | boolean |          | `true`                                           | Optional. If true, tables within banded ranges will be omitted from the response. Default is false when not specified.                                                                                                                                                                                                                                                                                                                                                                              |

***

### `Googlesheets Get Table Schema`

Integration name: **GOOGLESHEETS\_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.

This action is used to get the schema of a table in a Google Spreadsheet. Call this action to get the schema of a table in a spreadsheet BEFORE YOU QUERY THE TABLE. Analyze table structure and infer column names, types, and constraints. Uses statistical analysis of sample data to determine the most likely data type for each column. Call this action after calling the LIST\_TABLES action to get the schema of a table in a spreadsheet.

#### Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

| Parameter        | Type    | Required | Example                                          | Description                                                                                                                                                                                                                                                                          |
| ---------------- | ------- | :------: | ------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `sheet_name`     | string  |          | —                                                | Sheet/tab name if `table_name` is ambiguous across multiple sheets                                                                                                                                                                                                                   |
| `table_name`     | string  |     ✅    | `"Sales Data"`                                   | Table name from LIST\_TABLES response OR the visible Google Sheets tab name (e.g., `'Sales Data'`, `'Projections'`). Use `'auto'` to analyze the largest/most prominent table.                                                                                                       |
| `sample_size`    | integer |          | —                                                | Number of rows to sample for type inference                                                                                                                                                                                                                                          |
| `spreadsheet_id` | string  |     ✅    | `"1BxiMVs0XRA5nFMdKvBdBZjgmUUqptlbs74OgvE2upms"` | The unique identifier of the Google Spreadsheet. Must be a valid Google Sheets ID (typically a 44-character alphanumeric string). Do NOT use `'auto'` - only `table_name` supports auto-detection. You can get this ID from the spreadsheet URL or from SEARCH\_SPREADSHEETS action. |

***

### `Googlesheets Insert Dimension`

Integration name: **GOOGLESHEETS\_INSERT\_DIMENSION**

Tool to insert new rows or columns into a sheet at a specified location. Use when you need to add empty rows or columns within an existing Google Sheet.

#### Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

| Parameter                         | Type    | Required | Example                 | Description                                                                                       |
| --------------------------------- | ------- | :------: | ----------------------- | ------------------------------------------------------------------------------------------------- |
| `spreadsheet_id`                  | string  |     ✅    | `"abc123spreadsheetId"` | The ID of the spreadsheet to update.                                                              |
| `response_ranges`                 | array   |          | —                       | Limits the ranges of the spreadsheet to include in the response.                                  |
| `insert_dimension`                | object  |     ✅    | —                       | The details for the insert dimension request.                                                     |
| `response_include_grid_data`      | boolean |          | —                       | True if grid data should be included in the response (if `includeSpreadsheetInResponse` is true). |
| `include_spreadsheet_in_response` | boolean |          | —                       | True if the updated spreadsheet should be included in the response.                               |

***

### `Googlesheets List Tables`

Integration name: **GOOGLESHEETS\_LIST\_TABLES**

DEPRECATED: Use `GOOGLESHEETS_GET_SHEET_NAMES` for tab discovery and `GOOGLESHEETS_GET_SPREADSHEET_INFO` for full sheet metadata.

This action is used to list all tables in a Google Spreadsheet. Call this action to get the list of tables in a spreadsheet. Discover all tables in a Google Spreadsheet by analyzing sheet structure and detecting data patterns. Uses heuristic analysis to find header rows, data boundaries, and table structures.

#### Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

| Parameter        | Type    | Required | Example                                          | Description                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| ---------------- | ------- | :------: | ------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `min_rows`       | integer |          | —                                                | Minimum number of data rows to consider a valid table                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| `min_columns`    | integer |          | —                                                | Minimum number of columns to consider a valid table                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
| `min_confidence` | number  |          | —                                                | Minimum confidence score (0.0-1.0) to consider a valid table                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
| `spreadsheet_id` | string  |     ✅    | `"1BxiMVs0XRA5nFMdKvBdBZjgmUUqptlbs74OgvE2upms"` | The actual Google Spreadsheet ID (not a placeholder or spreadsheet name). Find it in the spreadsheet URL: <https://docs.google.com/spreadsheets/d/{SPREADSHEET\\_ID}/edit>. It is the alphanumeric string between `/d/` and `/edit` (e.g., `'1BxiMVs0XRA5nFMdKvBdBZjgmUUqptlbs74OgvE2upms'`). IMPORTANT: Do NOT pass the spreadsheet name - only pass the alphanumeric ID from the URL. Do NOT pass template placeholders like `'{{spreadsheet_id}}'`, `'<spreadsheet_id>'`, or `'your-spreadsheet-id-here'`. |

***

### `Googlesheets Lookup Spreadsheet Row`

Integration name: **GOOGLESHEETS\_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.

#### Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

| Parameter                 | Type    | Required | Example                              | Description                                                                                                                                                                                                                                                                                                                                                                                            |
| ------------------------- | ------- | :------: | ------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `query`                   | string  |     ✅    | `"John"`                             | Exact text value to find; matches the entire content of a cell in a row.                                                                                                                                                                                                                                                                                                                               |
| `range`                   | string  |          | `"Sheet1!A1:D5"`                     | A1 notation range to search within. Supports cell ranges (e.g., `'Sheet1!A1:D5'`), column-only ranges (e.g., `'Sheet1!A:Z'`), and row-only ranges (e.g., `'Sheet1!1:1'`). Defaults to the first sheet if omitted. IMPORTANT: Sheet names with spaces must be single-quoted (e.g., `"'My Sheet'!A1:Z"`). Bare sheet names without ranges (e.g., `'Sheet1'`) are not supported - always specify a range. |
| `case_sensitive`          | boolean |          | —                                    | If True, the query string search is case-sensitive.                                                                                                                                                                                                                                                                                                                                                    |
| `spreadsheet_id`          | string  |     ✅    | `"1BiexwqQYjfC_BXy6zDQYJqb6zxzRyP9"` | Identifier of the Google Spreadsheet to search.                                                                                                                                                                                                                                                                                                                                                        |
| `value_render_option`     | string  |          | —                                    | How cell values are rendered in the returned row data. `unformatted`: raw values without display formatting — dates appear as serial numbers, e.g. `46009.47` (default, keeps consistency with UPSERT). `formatted`: display-formatted values — dates appear as strings, e.g. `'2025-12-18'`. `formula`: raw formulas instead of computed values.                                                      |
| `normalize_whitespace`    | boolean |          | —                                    | If True, strips leading and trailing whitespace from cell values before matching. This helps match cells like `' TOTAL '` or `'TOTAL '` when searching for `'TOTAL'`.                                                                                                                                                                                                                                  |
| `date_time_render_option` | string  |          | —                                    | How dates and times are represented. `FORMATTED_STRING`: human-readable strings (e.g. `'2025-12-18 11:17'`). `SERIAL_NUMBER`: Excel-style serial numbers. Works with all `value_render_option` settings.                                                                                                                                                                                               |

***

### `Googlesheets Mutate Conditional Format Rules`

Integration name: **GOOGLESHEETS\_MUTATE\_CONDITIONAL\_FORMAT\_RULES**

Add, update, delete, or reorder conditional format rules on a Google Sheet. Use when you need to create, modify, or remove conditional formatting without manually building batchUpdate requests. Supports four operations: ADD (create new rule), UPDATE (replace existing rule), DELETE (remove rule), MOVE (reorder rules by changing index).

#### Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

| Parameter        | Type    | Required | Example                                          | Description                                                                                                                                                                                                                                                                                                                                                                                                                                                |
| ---------------- | ------- | :------: | ------------------------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `rule`           | object  |          | —                                                | Conditional format rule specification.                                                                                                                                                                                                                                                                                                                                                                                                                     |
| `index`          | integer |          | `0`                                              | Zero-based index for the operation. Required for UPDATE, DELETE, MOVE. Optional for ADD (defaults to end of list).                                                                                                                                                                                                                                                                                                                                         |
| `sheet_id`       | integer |     ✅    | `1534097477`                                     | The unique numeric identifier of the sheet/tab to modify (NOT a zero-based index). This is a specific ID assigned by Google Sheets when the sheet is created, not the position of the sheet. You MUST first call `GOOGLESHEETS_GET_SPREADSHEET_INFO` to retrieve the actual `sheetId` values from the `sheets` array in the response. Common mistake: Do not assume `sheet_id=0` exists - while some spreadsheets may have a sheet with ID 0, many do not. |
| `new_index`      | integer |          | `0`                                              | Destination index for MOVE operation. Required when operation is MOVE.                                                                                                                                                                                                                                                                                                                                                                                     |
| `operation`      | string  |     ✅    | `"ADD"`                                          | Operation type: ADD (add new rule), UPDATE (replace rule), DELETE (remove rule), MOVE (change rule order/index).                                                                                                                                                                                                                                                                                                                                           |
| `spreadsheet_id` | string  |     ✅    | `"1BxiMVs0XRA5nFMdKvBdBZjgmUUqptlbs74OgvE2upms"` | The ID of the spreadsheet containing the sheet to modify. Found in the Google Sheets URL between `/d/` and `/edit`.                                                                                                                                                                                                                                                                                                                                        |

***

### `Googlesheets Query Table`

Integration name: **GOOGLESHEETS\_QUERY\_TABLE**

DEPRECATED: Use `GOOGLESHEETS_VALUES_GET` / `GOOGLESHEETS_BATCH_GET` for table reads and `GOOGLESHEETS_LOOKUP_SPREADSHEET_ROW` for row lookup/filter workflows.

Execute SQL-like `SELECT` queries against Google Spreadsheet tables. Table names correspond to sheet/tab names visible at the bottom of the spreadsheet. Use `GOOGLESHEETS_LIST_TABLES` first to discover available table names if unknown. Supports `WHERE` conditions, `ORDER BY`, `LIMIT` clauses.

#### Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

| Parameter          | Type    | Required | Example                                          | Description                                                                                                                                                                                                                                                                                                                                                                                                                                  |
| ------------------ | ------- | :------: | ------------------------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `sql`              | string  |     ✅    | `"SELECT * FROM \"Sheet1\" LIMIT 10"`            | SQL SELECT query. The table name is the Google Sheets tab/sheet name (visible at the bottom of the spreadsheet). Use `GOOGLESHEETS_LIST_TABLES` to discover available table names if unknown. Supported: `SELECT cols FROM table WHERE conditions ORDER BY col LIMIT n`. Table names must be quoted with double quotes if they contain spaces or are numeric-only (e.g., `SELECT * FROM "My Sheet"` or `SELECT * FROM "415"`).               |
| `spreadsheet_id`   | string  |     ✅    | `"1BxiMVs0XRA5nFMdKvBdBZjgmUUqptlbs74OgvE2upms"` | The unique identifier of a native Google Sheets file. Found in the spreadsheet URL after `/d/` (e.g., `'1BxiMVs0XRA5nFMdKvBdBZjgmUUqptlbs74OgvE2upms'`). Only native Google Sheets files (MIME type: application/vnd.google-apps.spreadsheet) are supported. Files uploaded to Google Drive that are not native Google Sheets (such as Excel `.xlsx` files, PDFs, or Google Docs) will not work even if they can be viewed in Google Sheets. |
| `include_formulas` | boolean |          | —                                                | Whether to return formula text instead of calculated values for formula columns                                                                                                                                                                                                                                                                                                                                                              |

***

### `Googlesheets Search Developer Metadata`

Integration name: **GOOGLESHEETS\_SEARCH\_DEVELOPER\_METADATA**

Tool to search for developer metadata in a spreadsheet. Use when you need to find specific metadata entries based on filters.

#### Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

| Parameter       | Type   | Required | Example                  | Description                                                                                           |
| --------------- | ------ | :------: | ------------------------ | ----------------------------------------------------------------------------------------------------- |
| `dataFilters`   | array  |     ✅    | —                        | The data filters describing the criteria used to determine which DeveloperMetadata entries to return. |
| `spreadsheetId` | string |     ✅    | `"1q2w3e4r5t6y7u8i9o0p"` | The ID of the spreadsheet to retrieve metadata from.                                                  |

***

### `Googlesheets Search Spreadsheets`

Integration name: **GOOGLESHEETS\_SEARCH\_SPREADSHEETS**

Search for Google Spreadsheets using various filters including name, content, date ranges, and more.

#### Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

| Parameter               | Type    | Required | Example                  | Description                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| ----------------------- | ------- | :------: | ------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `query`                 | string  |          | `"Budget Report"`        | Search query to filter spreadsheets. Behavior depends on the `search_type` parameter. For advanced searches, use Google Drive query syntax with fields like `name contains`, `fullText contains`, or boolean filters like `sharedWithMe = true`. DO NOT use spreadsheet IDs as search terms. Leave empty to get all spreadsheets.                                                                                                                                                             |
| `order_by`              | string  |          | —                        | Sort order (comma-separated list for multi-field sorting). Valid fields: createdTime, folder, modifiedByMeTime, modifiedTime, name, name\_natural, quotaBytesUsed, recency, sharedWithMeTime, starred, viewedByMeTime. Append `desc` for descending order (default is ascending). Examples: `modifiedTime desc`, `folder,name`, `starred,modifiedTime desc`.                                                                                                                                  |
| `page_token`            | string  |          | —                        | Token for retrieving the next page of results. Use the `next_page_token` value from a previous response to get subsequent pages. Leave empty to get the first page.                                                                                                                                                                                                                                                                                                                           |
| `max_results`           | integer |          | —                        | Maximum number of spreadsheets to return (1-1000). Defaults to 10.                                                                                                                                                                                                                                                                                                                                                                                                                            |
| `search_type`           | string  |          | —                        | How to search: `name` searches filenames only (prefix matching from the START of filenames), `content` uses fullText search which searches file content, name, description, and metadata (Google Drive API limitation: cannot search content exclusively without also matching filenames), `both` explicitly searches both name OR content with an OR condition. Note: `name` search only matches from the START of filenames (e.g., `'Budget'` finds `'Budget 2024'` but NOT `'Q1 Budget'`). |
| `starred_only`          | boolean |          | —                        | Whether to return only starred spreadsheets. Defaults to False.                                                                                                                                                                                                                                                                                                                                                                                                                               |
| `created_after`         | string  |          | `"2024-01-01T00:00:00Z"` | Return spreadsheets created after this date. Use RFC 3339 format like `'2024-01-01T00:00:00Z'`.                                                                                                                                                                                                                                                                                                                                                                                               |
| `modified_after`        | string  |          | `"2024-01-01T00:00:00Z"` | Return spreadsheets modified after this date. Use RFC 3339 format like `'2024-01-01T00:00:00Z'`.                                                                                                                                                                                                                                                                                                                                                                                              |
| `shared_with_me`        | boolean |          | —                        | Whether to return only spreadsheets shared with the current user. Defaults to False.                                                                                                                                                                                                                                                                                                                                                                                                          |
| `include_trashed`       | boolean |          | —                        | Whether to include spreadsheets in trash. Defaults to False.                                                                                                                                                                                                                                                                                                                                                                                                                                  |
| `include_shared_drives` | boolean |          | —                        | Whether to include spreadsheets from shared drives you have access to. Defaults to True.                                                                                                                                                                                                                                                                                                                                                                                                      |

***

### `Googlesheets Set Basic Filter`

Integration name: **GOOGLESHEETS\_SET\_BASIC\_FILTER**

Tool to set a basic filter on a sheet in a Google Spreadsheet. Use when you need to filter or sort data within a specific range on a sheet.

#### Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

| Parameter                      | Type    | Required | Example | Description                                                                                                                                      |
| ------------------------------ | ------- | :------: | ------- | ------------------------------------------------------------------------------------------------------------------------------------------------ |
| `filter`                       | object  |     ✅    | —       | The filter to set.                                                                                                                               |
| `spreadsheetId`                | string  |     ✅    | —       | The ID of the spreadsheet.                                                                                                                       |
| `responseRanges`               | array   |          | —       | Limits the ranges included in the response spreadsheet. Meaningful only if `includeSpreadsheetInResponse` is true.                               |
| `responseIncludeGridData`      | boolean |          | —       | True if grid data should be returned. Meaningful only if `includeSpreadsheetInResponse` is true. Ignored if a field mask was set in the request. |
| `includeSpreadsheetInResponse` | boolean |          | —       | Determines if the updated spreadsheet resource appears in the response. Default is false.                                                        |

***

### `Googlesheets Set Data Validation Rule`

Integration name: **GOOGLESHEETS\_SET\_DATA\_VALIDATION\_RULE**

Tool to set or clear data validation rules (including dropdowns) on a range in Google Sheets. Use when you need to apply dropdown lists, range-based dropdowns, or custom formula validation to cells.

#### Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

| Parameter                | Type    | Required | Example                                          | Description                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
| ------------------------ | ------- | :------: | ------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `mode`                   | string  |     ✅    | `"SET"`                                          | Operation mode: `'SET'` applies a validation rule to the range, `'CLEAR'` removes any existing validation from the range.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
| `strict`                 | boolean |          | `true`                                           | Whether to reject invalid data (true) or show a warning (false). Default is true.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| `values`                 | array   |          | `["Option 1","Option 2","Option 3"]`             | List of allowed values for dropdown. Required when validation\_type='ONE\_OF\_LIST'. Each item becomes a dropdown option.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
| `formula`                | string  |          | `"=A1>10"`                                       | Custom formula for validation. Required when validation\_type='CUSTOM\_FORMULA'. Formula should evaluate to TRUE/FALSE. Example: `=A1>10`.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
| `sheet_id`               | integer |     ✅    | `0`                                              | The unique sheet ID (numeric identifier) where the validation rule will be applied. The first sheet created in a spreadsheet typically has ID 0, while additional sheets get unique IDs (e.g., `1534097477`). If a sheet is deleted, its ID is never reused - so if the original first sheet (ID 0) was deleted, attempting to use 0 will fail. Always verify the actual sheet ID exists using `GOOGLESHEETS_GET_SPREADSHEET_INFO` action (check `sheets[].properties.sheetId` field).                                                                                                                                                                                                                                                                                                                                                                  |
| `end_row_index`          | integer |     ✅    | `1`                                              | Ending row index (0-based, exclusive) for the validation range. To apply to row 1 only, use `start_row_index=0` and `end_row_index=1`.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
| `input_message`          | string  |          | `"Please select a valid option"`                 | Optional message shown to the user when they select the cell. Helpful hint about what values are expected.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
| `show_custom_ui`         | boolean |          | `true`                                           | Whether to show a dropdown UI for list-based validation. Default is true. Set to true for dropdown lists.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
| `spreadsheet_id`         | string  |     ✅    | `"1BxiMVs0XRA5nFMdKvBdBZjgmUUqptlbs74OgvE2upms"` | The unique identifier of the Google Sheets spreadsheet. Can be found in the spreadsheet URL between `/d/` and `/edit`.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
| `source_range_a1`        | string  |          | `"Sheet1!A1:A10"`                                | Source range in A1 notation for dropdown values. Required when validation\_type='ONE\_OF\_RANGE'. Example: `'Sheet1!A1:A10'` or `'A1:A10'`.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
| `start_row_index`        | integer |     ✅    | `0`                                              | Starting row index (0-based, inclusive) for the validation range. Row 1 is index 0.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| `validation_type`        | string  |          | `"ONE_OF_LIST"`                                  | Type of validation rule to apply. Required when mode='SET'. Dropdown types: `'ONE_OF_LIST'` (dropdown from list), `'ONE_OF_RANGE'` (dropdown from range). Number validations: `'NUMBER_GREATER'`, `'NUMBER_GREATER_THAN_EQ'`, `'NUMBER_LESS'`, `'NUMBER_LESS_THAN_EQ'`, `'NUMBER_EQ'`, `'NUMBER_NOT_EQ'`, `'NUMBER_BETWEEN'`, `'NUMBER_NOT_BETWEEN'`. Text validations: `'TEXT_CONTAINS'`, `'TEXT_NOT_CONTAINS'`, `'TEXT_EQ'`, `'TEXT_NOT_EQ'`, `'TEXT_IS_EMAIL'`, `'TEXT_IS_URL'` (Note: `TEXT_STARTS_WITH` and `TEXT_ENDS_WITH` are only for conditional formatting, not data validation). Date validations: `'DATE_EQ'`, `'DATE_BEFORE'`, `'DATE_AFTER'`, `'DATE_ON_OR_BEFORE'`, `'DATE_ON_OR_AFTER'`, `'DATE_BETWEEN'`, `'DATE_NOT_BETWEEN'`, `'DATE_NOT_EQ'`, `'DATE_IS_VALID'`. Other: `'BLANK'`, `'NOT_BLANK'`, `'BOOLEAN'`, `'CUSTOM_FORMULA'`. |
| `condition_values`       | array   |          | `["100"]`                                        | Generic list of condition values for validation types that require specific values (e.g., `NUMBER_GREATER` requires one value, `NUMBER_BETWEEN` requires two values, `TEXT_CONTAINS` requires one value). For simple validations like `TEXT_IS_EMAIL`, `BLANK`, `NOT_BLANK`, `BOOLEAN`, `DATE_IS_VALID`, this can be omitted. Each value should be a string that will be parsed by Google Sheets.                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| `end_column_index`       | integer |     ✅    | `1`                                              | Ending column index (0-based, exclusive) for the validation range. To apply to column A only, use `start_column_index=0` and `end_column_index=1`.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
| `start_column_index`     | integer |     ✅    | `0`                                              | Starting column index (0-based, inclusive) for the validation range. Column A is index 0.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
| `filtered_rows_included` | boolean |          | `true`                                           | Whether to apply validation to rows hidden by filters. Default is false. Set to true to ensure validation applies to both visible and filtered rows.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |

***

### `Googlesheets Sheet From Json`

Integration name: **GOOGLESHEETS\_SHEET\_FROM\_JSON**

DEPRECATED: Use `GOOGLESHEETS_CREATE_GOOGLE_SHEET1` + `GOOGLESHEETS_UPDATE_VALUES_BATCH` (or `GOOGLESHEETS_VALUES_UPDATE` / `GOOGLESHEETS_SPREADSHEETS_VALUES_APPEND`) instead.

Creates a new Google Spreadsheet and populates its first worksheet from `sheet_json`. When data is provided, the first item's keys establish the headers. An empty list creates an empty worksheet.

#### Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

| Parameter    | Type   | Required | Example                                                                                                                  | Description                                                                                                                                                                                                                                                                                                     |
| ------------ | ------ | :------: | ------------------------------------------------------------------------------------------------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `title`      | string |     ✅    | `"Q3 Sales Report"`                                                                                                      | The desired title for the new Google Spreadsheet.                                                                                                                                                                                                                                                               |
| `sheet_json` | array  |     ✅    | `"[{\"Name\": \"Alice\", \"Age\": 30, \"City\": \"New York\"}, {\"Name\": \"Bob\", \"Age\": 24, \"City\": \"London\"}]"` | A list of dictionaries representing the rows of the sheet. Each dictionary must have the same set of keys, which will form the header row. Values can be strings, numbers, booleans, or null (represented as empty cells). An empty list `[]` is allowed and will create a spreadsheet with an empty worksheet. |
| `sheet_name` | string |     ✅    | `"Sheet1"`                                                                                                               | The name for the first worksheet within the newly created spreadsheet. This name will appear as a tab at the bottom of the sheet.                                                                                                                                                                               |

***

### `Googlesheets Spreadsheets Sheets Copy To`

Integration name: **GOOGLESHEETS\_SPREADSHEETS\_SHEETS\_COPY\_TO**

Tool to copy a single sheet from a spreadsheet to another spreadsheet. Use when you need to duplicate a sheet into a different spreadsheet.

#### Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

| Parameter                    | Type    | Required | Example     | Description                                             |
| ---------------------------- | ------- | :------: | ----------- | ------------------------------------------------------- |
| `sheet_id`                   | integer |     ✅    | `0`         | The ID of the sheet to copy.                            |
| `spreadsheet_id`             | string  |     ✅    | `"1qZ_..."` | The ID of the spreadsheet containing the sheet to copy. |
| `destination_spreadsheet_id` | string  |     ✅    | `"2rY_..."` | The ID of the spreadsheet to copy the sheet to.         |

***

### `Googlesheets Spreadsheets Values Append`

Integration name: **GOOGLESHEETS\_SPREADSHEETS\_VALUES\_APPEND**

Tool to append values to a spreadsheet. Use when you need to add new data to the end of an existing table in a Google Sheet.

#### Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

| Parameter                      | Type    | Required | Example                                          | Description                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
| ------------------------------ | ------- | :------: | ------------------------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `range`                        | string  |     ✅    | `"Sheet1"`                                       | A1 notation range used to locate a logical table. New rows are appended after the last row of that table within this range. Valid formats: sheet name only (e.g., `'Sheet1'`), column range (e.g., `'Sheet1!A:D'`), or cell range (e.g., `'Sheet1!A1:D100'`). Sheet names with spaces need single quotes (auto-added). The sheet name must exist in the spreadsheet; a non-existent sheet will cause an `'Unable to parse range'` error. IMPORTANT: The append may land in different columns than specified due to API table detection. For strict column placement, use `GOOGLESHEETS_SPREADSHEETS_VALUES_UPDATE` instead. Always check `updates.updatedRange` in the response to verify where data was actually written. |
| `values`                       | array   |     ✅    | `[["A1_val1","A1_val2"],["A2_val1","A2_val2"]]`  | 2D array of values to append. Typically, each inner list is a ROW (`majorDimension=ROWS`). Use null/None for empty cells.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
| `spreadsheetId`                | string  |     ✅    | `"1BxiMVs0XRA5nFMdKvBdBZjgmUUqptlbs74OgvE2upms"` | The spreadsheet ID (typically 44 characters containing letters, numbers, hyphens, and underscores). Found in the URL between `/d/` and `/edit`. NOT the sheet name (tab name) - that belongs in the `range` parameter.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| `majorDimension`               | string  |          | `"ROWS"`                                         | How to interpret the 2D values array. Use ROWS for row-wise data (most common for appends). Use COLUMNS for column-wise data. Example: if A1=1,B1=2,A2=3,B2=4 then `majorDimension=ROWS` yields `[[1,2],[3,4]]` and `majorDimension=COLUMNS` yields `[[1,3],[2,4]]`.                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| `insertDataOption`             | string  |          | `"INSERT_ROWS"`                                  | How the input data should be inserted.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| `valueInputOption`             | string  |     ✅    | `"USER_ENTERED"`                                 | How the input data should be interpreted.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
| `includeValuesInResponse`      | boolean |          | `true`                                           | Determines if the update response should include the values of the cells that were appended. By default, responses do not include the updated values.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
| `responseValueRenderOption`    | string  |          | `"FORMATTED_VALUE"`                              | Determines how values in the response should be rendered. The default render option is FORMATTED\_VALUE.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| `responseDateTimeRenderOption` | string  |          | `"SERIAL_NUMBER"`                                | Determines how dates, times, and durations in the response should be rendered. This is ignored if `responseValueRenderOption` is FORMATTED\_VALUE. The default dateTime render option is SERIAL\_NUMBER.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |

***

### `Googlesheets Spreadsheets Values Batch Clear`

Integration name: **GOOGLESHEETS\_SPREADSHEETS\_VALUES\_BATCH\_CLEAR**

Tool to clear one or more ranges of values from a spreadsheet. Use when you need to remove data from specific cells or ranges while keeping formatting and other properties intact.

#### Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

| Parameter        | Type   | Required | Example                           | Description                                                                                                                                                                                                                                                                          |
| ---------------- | ------ | :------: | --------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `ranges`         | array  |     ✅    | `["Sheet1!A1:B2","Sheet1!C3:D4"]` | The ranges to clear, in A1 notation (e.g., `'Sheet1!A1:B2'`) or R1C1 notation. Each range should be a clean string without surrounding brackets or extra quotes. Valid examples: `'Sheet1!A1:B2'`, `'A1:Z100'`, `'Sheet1'`. Invalid examples: `"['Sheet1!A1:B2']"`, `'[Sheet1!A1]'`. |
| `spreadsheet_id` | string |     ✅    | `"1q2w3e4r5t6y7u8i9o0p"`          | The ID of the spreadsheet to update. Can be either a spreadsheet ID or a full Google Sheets URL (the ID will be extracted automatically).                                                                                                                                            |

***

### `Googlesheets Spreadsheets Values Batch Get By Data Filter`

Integration name: **GOOGLESHEETS\_SPREADSHEETS\_VALUES\_BATCH\_GET\_BY\_DATA\_FILTER**

Tool to return one or more ranges of values from a spreadsheet that match the specified data filters. Use when you need to retrieve specific data sets based on filtering criteria rather than entire sheets or fixed ranges.

#### Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

| Parameter              | Type   | Required | Example                                          | Description                                                                                                                                                                                                                                                                                                                                              |
| ---------------------- | ------ | :------: | ------------------------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `dataFilters`          | array  |     ✅    | `[{"a1Range":"Sheet1!A1:B5"}]`                   | Required. An array of data filter objects used to match ranges of values to retrieve. Each filter can specify either `a1Range` (e.g., `'Sheet1!A1:B5'`) or `gridRange`. Must be provided as a list, e.g., `[{'a1Range': 'Sheet1!A1:B5'}]`. A single filter object will be automatically wrapped in a list.                                               |
| `spreadsheetId`        | string |     ✅    | `"1BxiMVs0XRA5nFMdKvBdBZjgmUUqptlbs74OgvE2upms"` | The ID of the spreadsheet to retrieve data from. This is the unique identifier found in the spreadsheet URL (e.g., in `'https://docs.google.com/spreadsheets/d/SPREADSHEET_ID/edit'`, the ID is the SPREADSHEET\_ID part). Typical Google Sheets IDs are approximately 44 characters long and contain alphanumeric characters, hyphens, and underscores. |
| `majorDimension`       | string |          | —                                                | The major dimension that results should use. For example, if the spreadsheet data is: A1=1,B1=2,A2=3,B2=4, then a request that selects that range and sets `majorDimension=ROWS` returns `[[1,2],[3,4]]`, whereas a request that sets `majorDimension=COLUMNS` returns `[[1,3],[2,4]]`.                                                                  |
| `valueRenderOption`    | string |          | —                                                | How values should be represented in the output. The default render option is FORMATTED\_VALUE.                                                                                                                                                                                                                                                           |
| `dateTimeRenderOption` | string |          | —                                                | How dates, times, and durations should be represented in the output. This is ignored if `valueRenderOption` is FORMATTED\_VALUE. The default dateTime render option is SERIAL\_NUMBER.                                                                                                                                                                   |

***

### `Googlesheets Update Chart`

Integration name: **GOOGLESHEETS\_UPDATE\_CHART**

Update the specification of an existing chart in a Google Sheets spreadsheet. Use this action when you need to modify an existing chart's properties such as its title, chart type, data ranges, colors, axes, or other visual settings. This action updates the chart's specification but does not change its position or size on the sheet.

#### Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

| Parameter        | Type    | Required | Example                                                                                                                                                                                                                                                                                                                                                                                          | Description                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
| ---------------- | ------- | :------: | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `chart_id`       | integer |     ✅    | `707876808`                                                                                                                                                                                                                                                                                                                                                                                      | The unique numeric identifier of the chart to update within the spreadsheet. This is the chartId value returned when the chart was created or can be retrieved using the 'Get Spreadsheet Info' action (look for `sheets[].charts[].chartId` in the response). The chart must already exist in the specified spreadsheet.                                                                                                                                                                                                    |
| `chart_spec`     | object  |     ✅    | `{"title":"Updated Sales Chart","basicChart":{"series":[{"series":{"sourceRange":{"sources":[{"sheetId":0,"endRowIndex":10,"startRowIndex":0,"endColumnIndex":2,"startColumnIndex":1}]}}}],"domains":[{"domain":{"sourceRange":{"sources":[{"sheetId":0,"endRowIndex":10,"startRowIndex":0,"endColumnIndex":1,"startColumnIndex":0}]}}}],"chartType":"COLUMN","legendPosition":"RIGHT_LEGEND"}}` | The complete ChartSpec object defining the updated chart specification. This replaces the chart's existing specification but does not move or resize the chart. Must set exactly one chart type field: basicChart, pieChart, bubbleChart, candlestickChart, histogramChart, treemapChart, waterfallChart, orgChart, or scorecardChart. To change chart position or size, use a separate UpdateEmbeddedObjectPosition request. See <https://developers.google.com/sheets/api/reference/rest/v4/spreadsheets/charts#ChartSpec> |
| `spreadsheet_id` | string  |     ✅    | `"1BxiMVs0XRA5nFMdKvBdBZjgmUUqptlbs74OgvE2upms"`                                                                                                                                                                                                                                                                                                                                                 | The unique identifier of the Google Sheets spreadsheet containing the chart to update. Must be the actual spreadsheet ID from the URL (e.g., `'1BxiMVs0XRA5nFMdKvBdBZjgmUUqptlbs74OgvE2upms'`), NOT the spreadsheet name or title. Find it in the URL: <https://docs.google.com/spreadsheets/d/SPREADSHEET\\_ID/edit>                                                                                                                                                                                                        |

***

### `Googlesheets Update Dimension Properties`

Integration name: **GOOGLESHEETS\_UPDATE\_DIMENSION\_PROPERTIES**

Tool to hide/unhide rows or columns and set row heights or column widths. Use when you need to change visibility or pixel sizing of dimensions in a Google Sheet.

#### Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

| Parameter                         | Type    | Required | Example                                          | Description                                                                                                                                                                              |
| --------------------------------- | ------- | :------: | ------------------------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `sheet_id`                        | integer |          | `0`                                              | The numeric ID of the sheet (tab). Either `sheet_id` or `sheet_name` must be provided. If both are provided, `sheet_name` will be resolved to `sheet_id` and override this value.        |
| `dimension`                       | string  |     ✅    | `"ROWS"`                                         | Whether to update rows or columns.                                                                                                                                                       |
| `end_index`                       | integer |     ✅    | `1`                                              | The zero-based end index (exclusive) of the dimension range to update. For example, to update rows 5-9, use `start_index=5` and `end_index=10`.                                          |
| `pixel_size`                      | integer |          | `100`                                            | The height (for rows) or width (for columns) in pixels. Must be a positive integer. At least one of `hidden_by_user` or `pixel_size` must be provided.                                   |
| `sheet_name`                      | string  |          | `"Sheet1"`                                       | The name of the sheet (tab). If provided, this will be resolved to the numeric `sheet_id` using `GOOGLESHEETS_GET_SPREADSHEET_INFO`. Either `sheet_id` or `sheet_name` must be provided. |
| `start_index`                     | integer |     ✅    | `0`                                              | The zero-based start index (inclusive) of the dimension range to update. For rows, 0 is the first row; for columns, 0 is column A.                                                       |
| `hidden_by_user`                  | boolean |          | `true`                                           | Whether to hide (true) or unhide (false) the specified rows/columns. At least one of `hidden_by_user` or `pixel_size` must be provided.                                                  |
| `spreadsheet_id`                  | string  |     ✅    | `"1BxiMVs0XRA5nFMdKvBdBZjgmUUqptlbs74OgvE2upms"` | The ID of the spreadsheet to update.                                                                                                                                                     |
| `response_ranges`                 | array   |          | `["Sheet1!A1:B10"]`                              | Limits the ranges included in the response spreadsheet (only if `includeSpreadsheetInResponse` is true).                                                                                 |
| `response_include_grid_data`      | boolean |          | `false`                                          | Whether to include grid data in the response (only if `includeSpreadsheetInResponse` is true).                                                                                           |
| `include_spreadsheet_in_response` | boolean |          | `false`                                          | Whether to include the updated spreadsheet in the response.                                                                                                                              |

***

### `Googlesheets Update Sheet Properties`

Integration name: **GOOGLESHEETS\_UPDATE\_SHEET\_PROPERTIES**

Tool to update properties of a sheet (worksheet) within a Google Spreadsheet, such as its title, index, visibility, tab color, or grid properties. Use this when you need to modify the metadata or appearance of a specific sheet.

#### Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

| Parameter                      | Type    | Required | Example | Description                                                                                                                                                                  |
| ------------------------------ | ------- | :------: | ------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `spreadsheetId`                | string  |     ✅    | —       | The ID of the spreadsheet containing the sheet to update.                                                                                                                    |
| `responseRanges`               | array   |          | —       | Limits the ranges included in the response spreadsheet. Meaningful only if `includeSpreadsheetInResponse` is true. Ranges should be in A1 notation (e.g., `'Sheet1!A1:B2'`). |
| `updateSheetProperties`        | object  |     ✅    | —       | The details of the sheet properties to update.                                                                                                                               |
| `responseIncludeGridData`      | boolean |          | —       | True if grid data should be returned. Meaningful only if `includeSpreadsheetInResponse` is true. When true, the response will include cell data for the specified ranges.    |
| `includeSpreadsheetInResponse` | boolean |          | —       | Determines if the update response should include the spreadsheet resource. When true, the response will include the full updated spreadsheet.                                |

***

### `Googlesheets Update Spreadsheet Properties`

Integration name: **GOOGLESHEETS\_UPDATE\_SPREADSHEET\_PROPERTIES**

Tool to update SPREADSHEET-LEVEL properties such as the spreadsheet's title, locale, time zone, or auto-recalculation settings. Use when you need to modify the overall configuration of a Google Spreadsheet. NOTE: To update individual SHEET properties (like renaming a specific sheet/tab), use `GOOGLESHEETS_UPDATE_SHEET_PROPERTIES` instead.

#### Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

| Parameter                      | Type    | Required | Example                             | Description                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| ------------------------------ | ------- | :------: | ----------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `fields`                       | string  |     ✅    | `"title"`                           | Field mask specifying which properties to update (comma-separated for multiple fields). Supports nested paths using dot notation (e.g., `'iterativeCalculationSettings.maxIterations'`) per Protocol Buffers FieldMask specification. The root `'properties'` is implied and must not be included. Special case: When updating `'spreadsheetTheme'`, use the field mask `'spreadsheetTheme'` (not nested paths like `'spreadsheetTheme.primaryFontFamily'`) and provide the complete theme object with all required fields. Wildcard `'*'` updates all properties. |
| `properties`                   | object  |     ✅    | —                                   | The spreadsheet-level properties to update (e.g., title, locale, timeZone, autoRecalc). At least one field within properties must be set. NOTE: To update individual sheet/tab properties (like renaming a specific sheet), use `GOOGLESHEETS_UPDATE_SHEET_PROPERTIES` instead.                                                                                                                                                                                                                                                                                    |
| `spreadsheetId`                | string  |     ✅    | `"abc123spreadsheetId"`             | The ID of the spreadsheet to update.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
| `responseRanges`               | array   |          | `["Sheet1!A1:B10","Sheet2!C1:D20"]` | Limits the ranges included in the response spreadsheet. Only meaningful if `includeSpreadsheetInResponse` is true. Ranges should be in A1 notation (e.g., `'Sheet1!A1:B2'`).                                                                                                                                                                                                                                                                                                                                                                                       |
| `responseIncludeGridData`      | boolean |          | —                                   | Determines if grid data (cell values) should be included in the response. Only meaningful if `includeSpreadsheetInResponse` is true. When true, the response will include cell data for the specified ranges or entire spreadsheet.                                                                                                                                                                                                                                                                                                                                |
| `includeSpreadsheetInResponse` | boolean |          | —                                   | Determines if the update response should include the full spreadsheet resource. When true, the response will include the entire updated spreadsheet with all sheets, properties, and metadata.                                                                                                                                                                                                                                                                                                                                                                     |

***

### `Googlesheets Update Values Batch`

Integration name: **GOOGLESHEETS\_UPDATE\_VALUES\_BATCH**

Tool to set values in one or more ranges of a spreadsheet. Use when you need to update multiple ranges in a single operation for better performance.

#### Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

| Parameter                      | Type    | Required | Example                                          | Description                                                                                                                                                                                                                                                                                                           |
| ------------------------------ | ------- | :------: | ------------------------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `data`                         | array   |     ✅    | —                                                | The new values to apply to the spreadsheet. Each ValueRange specifies a range and the values to write to that range. Multiple ranges can be updated in a single request.                                                                                                                                              |
| `spreadsheet_id`               | string  |     ✅    | `"16k0mZLTGKySpihrjTycQalUVQQwq4SuLSdD3r_T164A"` | The ID of the spreadsheet to update. This ID can be found in the URL of the spreadsheet (e.g., `https://docs.google.com/spreadsheets/d/{spreadsheet_id}/edit`). Must be a valid Google Sheets spreadsheet ID.                                                                                                         |
| `valueInputOption`             | string  |     ✅    | `"USER_ENTERED"`                                 | How the input data should be interpreted. RAW: Values are stored exactly as entered, without parsing. USER\_ENTERED: Values are parsed as if typed by a user (numbers stay numbers, strings prefixed with `=` become formulas, etc.). INPUT\_VALUE\_OPTION\_UNSPECIFIED: Default input value option is not specified. |
| `includeValuesInResponse`      | boolean |          | `false`                                          | Determines if the update response should include the values of the cells that were updated. By default, responses do not include the updated values.                                                                                                                                                                  |
| `responseValueRenderOption`    | string  |          | `"FORMATTED_VALUE"`                              | Determines how values in the response should be rendered. Only used if `includeValuesInResponse` is true. FORMATTED\_VALUE (default): Values are formatted as displayed in the UI. UNFORMATTED\_VALUE: Values are unformatted. FORMULA: Formulas are not evaluated.                                                   |
| `responseDateTimeRenderOption` | string  |          | `"SERIAL_NUMBER"`                                | Determines how dates, times, and durations in the response should be rendered. Only used if `includeValuesInResponse` is true. SERIAL\_NUMBER (default): Dates are returned as numbers. FORMATTED\_STRING: Dates are returned as formatted strings.                                                                   |

***

### `Googlesheets Upsert Rows`

Integration name: **GOOGLESHEETS\_UPSERT\_ROWS**

Upsert rows - update existing rows by key, append new ones. Automatically handles column mapping and partial updates. Use for: CRM syncs (match Lead ID), transaction imports (match Transaction ID), inventory updates (match SKU), calendar syncs (match Event ID).

Features:

* Auto-adds missing columns to sheet
* Partial column updates (only update Phone + Status, preserve other columns)
* Column order doesn't matter (auto-maps by header name)
* Prevents duplicates by matching key column

Example inputs:

* Contact update: `keyColumn='Email'`, `headers=['Email','Phone','Status']`, `data=[['john@ex.com','555-0101','Active']]`
* Inventory sync: `keyColumn='SKU'`, `headers=['SKU','Stock','Price']`, `data=[['WIDGET-001',50,9.99],['GADGET-002',30,19.99]]`
* CRM lead update: `keyColumn='Lead ID'`, `headers=['Lead ID','Score','Status']`, `data=[['L-12345',85,'Hot']]`
* Partial update: `keyColumn='Email'`, `headers=['Email','Phone']` (only updates Phone, preserves Name/Address/etc)

#### Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

| Parameter               | Type    | Required | Example                                                                                | Description                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
| ----------------------- | ------- | :------: | -------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `rows`                  | array   |     ✅    | `[["john@example.com","555-0101","Active"],["jane@example.com","555-0102","Pending"]]` | 2D array of data rows to upsert. IMPORTANT: If `headers` is NOT provided, the FIRST row is treated as column headers and remaining rows are data - so you need at least 2 rows (1 header + 1 data). If `headers` IS provided separately, then ALL rows in this array are treated as data rows. Each row should have the same number of values as headers. If a row has MORE values than headers: with `strict_mode=true` (default), an error is returned showing which rows are affected; with `strict_mode=false`, extra values are silently truncated. If a row has FEWER values than headers, an error is returned during execution. Cell values can be strings, numbers, booleans, or null. Example with headers provided: `headers=['Email','Status']`, `rows=[['john@ex.com','Active']]` (1 data row). Example without headers: `rows=[['Email','Status'],['john@ex.com','Active']]` (row 1 = headers, row 2 = data). |
| `headers`               | array   |          | `["Email","Phone","Status"]`                                                           | List of column names for the data. These will be matched against sheet headers. If a column doesn't exist in the sheet, it will be added automatically. Order doesn't need to match sheet order. Can be auto-derived from the first row in `rows` if not provided. Example inputs: `['Email', 'Phone', 'Status']` for contact updates, `['Lead ID', 'Name', 'Score']` for CRM, `['SKU', 'Stock', 'Price']` for inventory.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| `keyColumn`             | string  |          | `"Email"`                                                                              | The column NAME (header text) to use as unique identifier for matching rows. Must be an actual header name from the sheet (e.g., `'Email'`, `'Lead ID'`, `'SKU'`), NOT a column letter (e.g., `'A'`, `'B'`, `'C'`). If you provide a column letter like `'A'`, it will be automatically converted to the header name at that column position. If neither `key_column` nor `key_column_index` is provided, defaults to the first column (index 0).                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
| `sheetName`             | string  |     ✅    | `"Leads"`                                                                              | The name of the sheet/tab within the spreadsheet. Note: Google Sheets creates default sheets with localized names based on account language (e.g., `'Sheet1'` for English, `'工作表1'` for Chinese, `'Hoja1'` for Spanish, `'Feuille1'` for French, `'Planilha1'` for Portuguese, `'Лист1'` for Russian). If you specify a common default name and the sheet is not found, the action will automatically use the first sheet if only one exists.                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
| `strictMode`            | boolean |          | —                                                                                      | Controls how rows with mismatched column counts are handled. When True (default), an error is returned if any row has more values than headers - the error message shows exactly which rows are affected and what values would need to be removed. When False, extra values are silently truncated to match the header count. Set to False only if you explicitly want automatic truncation of extra values.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
| `tableStart`            | string  |          | `"A1"`                                                                                 | Cell where the table starts (where headers are located). Defaults to `'A1'`. Use this if your table is offset (e.g., `'C5'`, `'D10'`).                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
| `spreadsheetId`         | string  |     ✅    | `"1BxiMVs0XRA5nFMdKvBdBZjgmUUqptlbs74OgvE2upms"`                                       | The ID of the spreadsheet. Must be a non-empty string, typically a 44-character alphanumeric string found in the spreadsheet URL.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
| `key_column_index`      | —       |          | `0`                                                                                    | The 0-based column index to use as unique identifier for matching rows. Alternative to `key_column` - will be converted to column name using headers. If neither `key_column` nor `key_column_index` is provided, defaults to 0 (first column). Example: 0 for first column, 1 for second column.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
| `normalization_message` | string  |          | —                                                                                      | Internal field to track input normalization (e.g., row truncation). Not part of API.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |

***

### `Googlesheets Values Get`

Integration name: **GOOGLESHEETS\_VALUES\_GET**

Returns a range of values from a spreadsheet. Use when you need to read data from specific cells or ranges in a Google Sheet.

#### Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

| Parameter                 | Type    | Required | Example                                          | Description                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| ------------------------- | ------- | :------: | ------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `range`                   | string  |     ✅    | `"Sheet1!A1:B3"`                                 | The A1 notation or R1C1 notation of the range to retrieve values from. If the sheet name contains spaces or special characters, wrap the sheet name in single quotes (e.g., `"'My Sheet'!A1:B2"`). Without single quotes, the API will return a 400 error for sheet names with spaces. Examples: `'Sheet1!A1:B3'`, `"'Sheet With Spaces'!A1:D5"`, `'A1:D5'` (no sheet name uses first visible sheet), `'Sheet1!A:A'` (entire column), `'SheetName'` (entire sheet). |
| `end_row`                 | integer |          | —                                                | 1-based row number to stop reading at (inclusive). Use with `start_row` for pagination to avoid large response errors. Example: `start_row=501`, `end_row=1000` fetches rows 501-1000.                                                                                                                                                                                                                                                                              |
| `start_row`               | integer |          | —                                                | 1-based row number to start reading from (inclusive). Use with `end_row` for pagination to avoid large response errors. Example: `start_row=1`, `end_row=500` fetches the first 500 rows.                                                                                                                                                                                                                                                                           |
| `spreadsheet_id`          | string  |     ✅    | `"1BxiMVs0XRA5nFMdKvBdBZjgmUUqptlbs74OgvE2upms"` | The unique identifier of the Google Spreadsheet from which to retrieve values. This is the long alphanumeric string found in the spreadsheet URL between `/d/` and `/edit` (e.g., `'1BxiMVs0XRA5nFMdKvBdBZjgmUUqptlbs74OgvE2upms'`). WARNING: Do NOT use the spreadsheet name or title (e.g., `'My Sales Report'`); you must use the actual ID from the URL.                                                                                                        |
| `major_dimension`         | string  |          | —                                                | The major dimension for results.                                                                                                                                                                                                                                                                                                                                                                                                                                    |
| `value_render_option`     | string  |          | —                                                | How values should be rendered in the output. FORMATTED\_VALUE: Values are calculated and formatted (default). UNFORMATTED\_VALUE: Values are calculated but not formatted. FORMULA: Values are not calculated; the formula is returned instead.                                                                                                                                                                                                                     |
| `date_time_render_option` | string  |          | —                                                | How dates, times, and durations should be represented in the output. SERIAL\_NUMBER: Dates are returned as serial numbers (default). FORMATTED\_STRING: Dates returned as formatted strings.                                                                                                                                                                                                                                                                        |

***

### `Googlesheets Values Update`

Integration name: **GOOGLESHEETS\_VALUES\_UPDATE**

Tool to set values in a range of a Google Spreadsheet. Use when you need to update or overwrite existing cell values in a specific range.

#### Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

| Parameter                         | Type    | Required | Example                                                      | Description                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| --------------------------------- | ------- | :------: | ------------------------------------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `range`                           | string  |     ✅    | `"Sheet1!A1:C2"`                                             | The A1 notation of the range to update values in (e.g., `'Sheet1!A1:C2'`, `'MySheet!C:C'`, or `'A1:D5'`). Must be actual cell references, not placeholder values. If the sheet name is omitted (e.g., `'A1:B2'`), the operation applies to the first visible sheet. IMPORTANT: The range must not exceed the sheet's grid dimensions. By default, new sheets have 1000 rows and 26 columns (A-Z). If you need to write to columns beyond Z (e.g., AA, AB), first expand the sheet using `GOOGLESHEETS_APPEND_DIMENSION` or check the current dimensions using `GOOGLESHEETS_GET_SPREADSHEET_INFO`. |
| `values`                          | array   |     ✅    | `[["Name","Age","City"],["Test User","25","San Francisco"]]` | The data to write. This is an array of arrays, the outer array representing all the data and each inner array representing a major dimension. Each item in the inner array corresponds with one cell.                                                                                                                                                                                                                                                                                                                                                                                              |
| `spreadsheet_id`                  | string  |     ✅    | `"13I9BjRCKl1iy7VZ-_Ir29qr5Yu79iIyIkooVqApymS8"`             | The unique identifier of the Google Spreadsheet to update. This ID can be found in the URL of the spreadsheet (e.g., `https://docs.google.com/spreadsheets/d/{spreadsheet_id}/edit`). Must be a non-empty string.                                                                                                                                                                                                                                                                                                                                                                                  |
| `major_dimension`                 | string  |          | `"ROWS"`                                                     | The major dimension of the values. ROWS (default) means each inner array is a row of values. COLUMNS means each inner array is a column of values. Defaults to ROWS if unspecified.                                                                                                                                                                                                                                                                                                                                                                                                                |
| `auto_expand_sheet`               | boolean |          | `true`                                                       | If True (default), automatically expands the sheet's dimensions (adds columns/rows) when the target range exceeds the current grid limits. If False, the operation will fail with an error if the range exceeds grid limits.                                                                                                                                                                                                                                                                                                                                                                       |
| `value_input_option`              | string  |     ✅    | `"USER_ENTERED"`                                             | How the input data should be interpreted. RAW: Values are stored exactly as entered, without parsing (dates, formulas, etc. remain as strings). USER\_ENTERED: Values are parsed as if typed by a user (numbers stay numbers, strings prefixed with `=` become formulas, etc.).                                                                                                                                                                                                                                                                                                                    |
| `include_values_in_response`      | boolean |          | `false`                                                      | Determines if the update response should include the values of the cells that were updated. By default, responses do not include the updated values.                                                                                                                                                                                                                                                                                                                                                                                                                                               |
| `response_value_render_option`    | string  |          | `"FORMATTED_VALUE"`                                          | Determines how values in the response should be rendered. Only used if `includeValuesInResponse` is true. FORMATTED\_VALUE (default): Values are formatted as displayed in the UI. UNFORMATTED\_VALUE: Values are unformatted (numbers, booleans, formulas). FORMULA: Formulas are not evaluated and remain as text.                                                                                                                                                                                                                                                                               |
| `response_datetime_render_option` | string  |          | `"SERIAL_NUMBER"`                                            | Determines how dates, times, and durations in the response should be rendered. Only used if `includeValuesInResponse` is true. SERIAL\_NUMBER (default): Dates are returned as numbers. FORMATTED\_STRING: Dates are returned as strings formatted per the cell's locale.                                                                                                                                                                                                                                                                                                                          |

***


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.toolhouse.ai/toolhouse/integrations/google-sheets.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
