For the complete documentation index, see llms.txt. This page is also available as Markdown.

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.

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.