Skip to content

Google Sheets

Google Sheets

Google Sheets is a cloud-based spreadsheet tool enabling real-time collaboration, data analysis, and integration with other Google Workspace apps. With the integration in SquadOS, your agents can create and edit spreadsheets, read and write data, format cells, manage tabs, create charts, and automate complete data workflows — all programmatically.

This tool uses OAuth 2.0 (OAUTH2) to connect.

You need to authorize access to your Google account. The OAuth flow is managed by Composio — no manual credentials are required.

FieldRequiredDescription
Google AccountYesOAuth 2.0 authorization for Google Sheets access.
  1. Go to Tools in the side menu (/admin/tools).
  2. Open the Available tab and search for Google Sheets.
  3. Click the card to open the details modal and hit Connect.
  4. You’re taken to the secure connection page hosted by Composio, where you authorize access (OAuth) to your Google account.
  5. Once done, you’re sent back to SquadOS with the account connected and the tool available for agents. (Connection-flow details in Organization Tools.)

How do I set up custom Google OAuth credentials for Google Sheets?

Section titled “How do I set up custom Google OAuth credentials for Google Sheets?”

See the step-by-step guide at How to create OAuth2 credentials for Google Apps.

Why am I seeing “App is blocked” when connecting Google Sheets?

Section titled “Why am I seeing “App is blocked” when connecting Google Sheets?”

The OAuth client is requesting scopes that Google hasn’t verified for that client. Remove the additional scopes from your auth config, or create your own OAuth app and submit the scopes for verification. See How to create OAuth2 credentials for Google Apps.

Why am I getting “Google Sheets API has not been used in project” error?

Section titled “Why am I getting “Google Sheets API has not been used in project” error?”

When using custom OAuth credentials, the Google Sheets API must be enabled in the Google Cloud project that owns those credentials. Enable it in Google Cloud Console under APIs & Services, wait a few minutes, and retry.

Why am I getting “Error 400: invalid_scope”?

Section titled “Why am I getting “Error 400: invalid_scope”?”

The requested scopes are invalid or incorrectly formatted in the authorization URL. Verify your scope values against the Google OAuth scopes docs.

Section titled “Why does the OAuth consent screen show “Composio” instead of my app?”

By default, the consent screen uses Composio’s OAuth app. To show your own app name and logo, create your own OAuth app and set a custom redirect URL. See White-labeling authentication.

Why am I getting 401 errors on tool calls?

Section titled “Why am I getting 401 errors on tool calls?”

The user’s access token is no longer valid. Common causes: the user revoked access, changed their password or 2FA, a Workspace admin policy changed, or Google’s refresh token limit (~50 per account) was exceeded. Re-authenticating the user typically resolves this.

Why am I getting “Quota Exhausted” or “rate limit exhausted”?

Section titled “Why am I getting “Quota Exhausted” or “rate limit exhausted”?”

Google enforces per-minute and daily request quotas. If you’re using Composio’s default OAuth app, you share that quota with other users, which can cause limits to be hit faster. Use your own OAuth app credentials to get a dedicated quota, and add exponential backoff and retries to handle transient rate limits.

GOOGLESHEETS_ADD_SHEET

Adds a new sheet to a spreadsheet. Supports three sheet types: GRID, OBJECT, and DATA_SOURCE. GRID (default) is a standard spreadsheet with rows/columns; OBJECT contains a chart (requires objectSheetConfig with chartSpec); DATA_SOURCE connects to BigQuery (requires dataSourceConfig and bigquery.readonly OAuth scope). Sheet names must be unique; use force_unique=true to auto-append suffix if the name already exists.

NameTypeRequiredDescription
titlestringNoThe name for the new sheet tab. Must be unique within the spreadsheet. Alias: sheet_name.
propertiesobjectNoAdvanced sheet properties (grid dimensions, tab color, position, etc.).
force_uniquebooleanNoWhen True (default), automatically ensures the sheet name is unique by appending a numeric suffix (e.g., _2, _3) if the name already exists.
spreadsheet_idstringYesThe ID of the target spreadsheet. This is the long alphanumeric string in the Google Sheets URL.
data_source_configobjectNoConfiguration for creating a DATA_SOURCE sheet connected to BigQuery. Requires additional OAuth scope: bigquery.readonly.
object_sheet_configobjectNoConfiguration for creating an OBJECT sheet (a sheet containing a chart).
NameTypeRequiredDescription
datastringYesData from the action execution.
errorstringNoError if any occurred during the execution of the action.
successfulbooleanYesWhether or not the action execution was successful.

GOOGLESHEETS_AGGREGATE_COLUMN_DATA

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

NameTypeRequiredDescription
operationstring (“sum” | “average” | “count” | “min” | “max” | “percentage”)YesThe mathematical operation to perform on the target column values.
sheet_namestringYesThe name of the specific sheet within the spreadsheet. Matching is case-insensitive.
search_valuestringNoThe exact value to search for in the search column. If not provided, all rows in the target column will be aggregated.
search_columnstringNoThe column to search in for filtering rows. Can be a letter (e.g., ‘A’) or column name from header row.
target_columnstringYesThe column to aggregate data from. Can be a letter (e.g., ‘C’) or column name from header row.
case_sensitivebooleanNoWhether the search should be case-sensitive.
has_header_rowbooleanNoWhether the first row contains column headers.
spreadsheet_idstringYesThe unique identifier of the Google Sheets spreadsheet.
percentage_totalnumberNoFor percentage operation, the total value to calculate percentage against. If not provided, uses sum of all values.
additional_filtersarrayNoExtra column=value conditions applied with AND logic. Example: [{"column": "Region", "value": "APAC"}].
NameTypeRequiredDescription
datastringYesData from the action execution.
errorstringNoError if any occurred during the execution of the action.
successfulbooleanYesWhether or not the action execution was successful.

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.

NameTypeRequiredDescription
lengthintegerYesThe number of rows or columns to append.
sheet_idintegerYesThe numeric ID of the sheet (not the sheet name). Found in the URL as the ‘gid’ parameter.
dimensionstring (“ROWS” | “COLUMNS”)YesSpecifies whether to append rows or columns.
spreadsheet_idstringYesThe ID of the spreadsheet.
response_rangesarrayNoLimits the ranges of the spreadsheet to include in the response.
response_include_grid_databooleanNoTrue if grid data should be included in the response.
include_spreadsheet_in_responsebooleanNoTrue if the updated spreadsheet should be included in the response.
NameTypeRequiredDescription
datastringYesData from the action execution.
errorstringNoError if any occurred during the execution of the action.
successfulbooleanYesWhether or not the action execution was successful.

GOOGLESHEETS_AUTO_RESIZE_DIMENSIONS

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

NameTypeRequiredDescription
sheet_idintegerNoThe numeric ID of the sheet to resize. Either sheet_id or sheet_name must be provided.
dimensionstring (“ROWS” | “COLUMNS”)YesThe dimension to auto-resize.
end_indexintegerYesThe zero-based end index (exclusive) of the dimension range to resize.
sheet_namestringNoThe name of the sheet to resize. If both are provided, sheet_name takes precedence.
start_indexintegerYesThe zero-based start index (inclusive) of the dimension range to resize.
spreadsheet_idstringYesThe ID of the spreadsheet.
NameTypeRequiredDescription
datastringYesData from the action execution.
errorstringNoError if any occurred during the execution of the action.
successfulbooleanYesWhether or not the action execution was successful.

GOOGLESHEETS_BATCH_CLEAR_VALUES_BY_DATA_FILTER

Clears one or more ranges of values from a spreadsheet using data filters. Only values are cleared — all other properties of the cell (such as formatting, data validation, etc.) are kept.

NameTypeRequiredDescription
dataFiltersarrayYesThe DataFilters used to determine which ranges to clear.
spreadsheetIdstringYesThe ID of the spreadsheet to update.
NameTypeRequiredDescription
datastringYesData from the action execution.
errorstringNoError if any occurred during the execution of the action.
successfulbooleanYesWhether or not the action execution was successful.

GOOGLESHEETS_BATCH_GET

Retrieves data from specified cell ranges in a Google Spreadsheet.

NameTypeRequiredDescription
rangesarrayNoA list of cell ranges in A1 notation from which to retrieve data. If omitted, all data from the first sheet is fetched.
majorDimensionstring (“DIMENSION_UNSPECIFIED” | “ROWS” | “COLUMNS”)NoThe major dimension for organizing data in results.
spreadsheet_idstringYesThe unique identifier of the Google Spreadsheet. Accepts a spreadsheet ID or a full Google Sheets URL.
valueRenderOptionstring (“FORMATTED_VALUE” | “UNFORMATTED_VALUE” | “FORMULA”)NoHow values should be rendered in the output.
dateTimeRenderOptionstring (“SERIAL_NUMBER” | “FORMATTED_STRING”)NoHow dates and times should be rendered in the output.
empty_strings_filteredbooleanNoIndicates whether empty strings were filtered from the response.
NameTypeRequiredDescription
datastringYesData from the action execution.
errorstringNoError if any occurred during the execution of the action.
successfulbooleanYesWhether or not the action execution was successful.

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. To update MULTIPLE ranges, make SEPARATE CALLS for each range.

NameTypeRequiredDescription
valuesarrayYesA 2D array of cell values where each inner array represents a row.
sheet_namestringYesThe name of the specific sheet (tab) within the spreadsheet to update.
spreadsheet_idstringYesThe unique identifier of the Google Sheets spreadsheet.
value_input_optionstring (“RAW” | “USER_ENTERED”)NoHow input data should be interpreted.
first_cell_locationstringNoThe starting cell for the update range in A1 notation without sheet prefix (e.g., ‘A1’, ‘B5’). If omitted, values are appended as new rows.
include_values_in_responsebooleanNoIf True, the response will include the updated values.
NameTypeRequiredDescription
datastringYesData from the action execution.
errorstringNoError if any occurred during the execution of the action.
successfulbooleanYesWhether or not the action execution was successful.

GOOGLESHEETS_BATCH_UPDATE_VALUES_BY_DATA_FILTER

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

NameTypeRequiredDescription
dataarrayYesThe new values to apply to the spreadsheet. Can be provided as a JSON string or a list of DataFilterValueRange objects.
spreadsheetIdstringYesThe ID of the spreadsheet to update.
valueInputOptionstring (“INPUT_VALUE_OPTION_UNSPECIFIED” | “RAW” | “USER_ENTERED”)YesHow the input data should be interpreted.
includeValuesInResponsebooleanNoWhether the update response should include the values of the cells that were updated.
responseValueRenderOptionstring (“FORMATTED_VALUE” | “UNFORMATTED_VALUE” | “FORMULA”)NoHow values in the response should be rendered.
responseDateTimeRenderOptionstring (“SERIAL_NUMBER” | “FORMATTED_STRING”)NoHow dates and times in the response should be rendered.
NameTypeRequiredDescription
datastringYesData from the action execution.
errorstringNoError if any occurred during the execution of the action.
successfulbooleanYesWhether or not the action execution was successful.

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.

NameTypeRequiredDescription
sheet_idintegerYesThe ID of the sheet on which the basic filter should be cleared.
spreadsheet_idstringYesThe ID of the spreadsheet.
response_rangesarrayNoLimits the ranges included in the response spreadsheet.
response_include_grid_databooleanNoTrue if grid data should be returned in the response.
include_spreadsheet_in_responsebooleanNoDetermines if the update response should include the spreadsheet resource.
NameTypeRequiredDescription
datastringYesData from the action execution.
errorstringNoError if any occurred during the execution of the action.
successfulbooleanYesWhether or not the action execution was successful.

GOOGLESHEETS_CLEAR_VALUES

Clears cell content (preserving formatting and notes) from a specified A1 notation range in a Google Spreadsheet.

NameTypeRequiredDescription
rangestringYesThe A1 notation of the range to clear values from (e.g., ‘Sheet1!A1:B2’, ‘A1:D5’).
spreadsheet_idstringYesThe unique identifier of the Google Spreadsheet.
NameTypeRequiredDescription
datastringYesData from the action execution.
errorstringNoError if any occurred during the execution of the action.
successfulbooleanYesWhether or not the action execution was successful.

GOOGLESHEETS_CREATE_CHART

Create a chart in a Google Sheets spreadsheet using the specified data range and chart type. Use chart_type + data_range for a simple chart, or supply a full chart_spec for all chart types.

NameTypeRequiredDescription
titlestringNoOptional title for the chart.
sheet_idintegerYesThe numeric sheetId of the worksheet where the chart will be created. Use ‘Get Spreadsheet Info’ to retrieve valid sheetIds.
subtitlestringNoOptional subtitle for the chart.
chart_specobjectNoOptional full ChartSpec object to support all chart types and advanced options.
chart_typestring (“BAR” | “LINE” | “AREA” | “COLUMN” | “SCATTER” | “COMBO” | “STEPPED_AREA” | “PIE” | “HISTOGRAM” | “BUBBLE” | “CANDLESTICK” | “TREEMAP” | “WATERFALL” | “ORG” | “SCORECARD”)YesType of chart to create.
data_rangestringYesA single contiguous range of data for the chart in A1 notation (e.g., ‘A1:C10’).
x_axis_titlestringNoOptional title for the X-axis.
y_axis_titlestringNoOptional title for the Y-axis.
background_rednumberNoRed component of chart background color (0.0–1.0).
spreadsheet_idstringYesThe unique identifier of the Google Sheets spreadsheet where the chart will be created.
background_bluenumberNoBlue component of chart background color (0.0–1.0).
legend_positionstringNoPosition of the chart legend. Options: BOTTOM_LEGEND, TOP_LEGEND, LEFT_LEGEND, RIGHT_LEGEND, NO_LEGEND.
background_greennumberNoGreen component of chart background color (0.0–1.0).
NameTypeRequiredDescription
datastringYesData from the action execution.
errorstringNoError if any occurred during the execution of the action.
successfulbooleanYesWhether or not the action execution was successful.

GOOGLESHEETS_CREATE_GOOGLE_SHEET1

Creates a new Google Spreadsheet in Google Drive. Optionally create it in a specific folder by providing folder_id or folder_name.

NameTypeRequiredDescription
titlestringNoThe title for the new Google Sheet. If omitted, Google creates a spreadsheet with a default name.
folder_idstringNoGoogle Drive folder ID where the spreadsheet should be created. Takes precedence over folder_name.
folder_namestringNoGoogle Drive folder name. If multiple folders match, you’ll receive a list to choose from.
NameTypeRequiredDescription
datastringYesData from the action execution.
errorstringNoError if any occurred during the execution of the action.
successfulbooleanYesWhether or not the action execution was successful.

GOOGLESHEETS_CREATE_SPREADSHEET_COLUMN

Creates a new column in a Google Spreadsheet. Specify the target sheet using sheet_id (numeric) or sheet_name (text).

NameTypeRequiredDescription
sheet_idintegerNoThe numeric identifier of the sheet. Defaults to 0 (first sheet) if neither is provided.
sheet_namestringNoThe name of the sheet where the column will be added. If both are provided, sheet_id takes precedence.
insert_indexintegerNoThe 0-based index at which the new column will be inserted.
spreadsheet_idstringYesThe unique identifier of the Google Spreadsheet.
response_rangesarrayNoLimits the ranges of the spreadsheet to include in the response.
inherit_from_beforebooleanNoIf true, the new column inherits properties from the column immediately to its left.
response_include_grid_databooleanNoIf true, grid data will be included in the response.
include_spreadsheet_in_responsebooleanNoIf true, the updated spreadsheet will be included in the response.
NameTypeRequiredDescription
datastringYesData from the action execution.
errorstringNoError if any occurred during the execution of the action.
successfulbooleanYesWhether or not the action execution was successful.

GOOGLESHEETS_CREATE_SPREADSHEET_ROW

Inserts a new, empty row into a specified sheet at a given index, optionally inheriting formatting from the row above.

NameTypeRequiredDescription
sheet_idintegerNoThe numeric identifier of the sheet. Either sheet_id or sheet_name must be provided.
sheet_namestringNoThe name of the sheet. If both are provided, sheet_id takes precedence.
insert_indexintegerNoThe 0-based index at which the new row should be inserted.
spreadsheet_idstringYesThe unique identifier of the Google Spreadsheet.
response_rangesarrayNoLimits the ranges included in the response. Use A1 notation.
inherit_from_beforebooleanNoIf True, the newly inserted row will inherit formatting from the preceding row.
response_include_grid_databooleanNoIf True, grid data will be included in the response.
include_spreadsheet_in_responsebooleanNoIf True, the response will include the full updated Spreadsheet resource.
NameTypeRequiredDescription
datastringYesData from the action execution.
errorstringNoError if any occurred during the execution of the action.
successfulbooleanYesWhether or not the action execution was successful.

GOOGLESHEETS_DELETE_CHART

Delete an existing chart from a Google Sheets spreadsheet. 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.

NameTypeRequiredDescription
chart_idintegerYesThe unique numeric identifier of the chart to delete (also known as objectId or chartId).
spreadsheet_idstringYesThe unique identifier of the Google Sheets spreadsheet containing the chart to delete.
NameTypeRequiredDescription
datastringYesData from the action execution.
errorstringNoError if any occurred during the execution of the action.
successfulbooleanYesWhether or not the action execution was successful.

GOOGLESHEETS_DELETE_DIMENSION

Tool to delete specified rows or columns from a sheet in a Google Spreadsheet.

NameTypeRequiredDescription
sheet_idintegerNoThe unique numeric ID of the sheet. Use GOOGLESHEETS_GET_SPREADSHEET_INFO to find the sheet ID.
dimensionstring (“ROWS” | “COLUMNS”)NoThe dimension to delete (ROWS or COLUMNS).
end_indexintegerNoThe zero-based end index (exclusive) of the range to delete.
sheet_namestringNoThe name/title of the sheet. Either sheet_id or sheet_name must be provided.
start_indexintegerNoThe zero-based start index (inclusive) of the range to delete.
spreadsheet_idstringYesThe ID of the spreadsheet.
response_rangesarrayNoLimits the ranges of cells included in the response spreadsheet.
delete_dimension_requestobjectNoThe details for the delete dimension request object.
response_include_grid_databooleanNoTrue if grid data should be returned.
include_spreadsheet_in_responsebooleanNoDetermines if the update response should include the spreadsheet resource.
NameTypeRequiredDescription
datastringYesData from the action execution.
errorstringNoError if any occurred during the execution of the action.
successfulbooleanYesWhether or not the action execution was successful.

GOOGLESHEETS_DELETE_SHEET

Tool to delete a sheet (worksheet) from a spreadsheet. A spreadsheet must contain at least one sheet, so you cannot delete the last remaining sheet.

NameTypeRequiredDescription
sheetIdintegerYesThe ID of the sheet to delete. A spreadsheet must contain at least one sheet.
spreadsheetIdstringYesThe ID of the spreadsheet from which to delete the sheet.
responseRangesarrayNoLimits which ranges are returned when includeSpreadsheetInResponse is true.
responseIncludeGridDatabooleanNoTrue if grid data should be returned in the response spreadsheet.
includeSpreadsheetInResponsebooleanNoDetermines if the spreadsheet resource should be returned in the response.
NameTypeRequiredDescription
datastringYesData from the action execution.
errorstringNoError if any occurred during the execution of the action.
successfulbooleanYesWhether or not the action execution was successful.

GOOGLESHEETS_EXECUTE_SQL

DEPRECATED: Use direct Google Sheets actions instead. Execute SQL queries against Google Sheets tables. Supports SELECT, INSERT, UPDATE, DELETE operations and WITH clauses (CTEs).

NameTypeRequiredDescription
sqlstringYesComplete SQL query to execute. Must begin with SELECT, INSERT, UPDATE, DELETE, or WITH.
dry_runbooleanNoPreview changes without applying them (for write operations).
delete_methodstring (“clear” | “remove_rows”)NoFor DELETE operations: ‘clear’ preserves row structure, ‘remove_rows’ shifts data up.
spreadsheet_idstringYesThe unique alphanumeric ID of the Google Spreadsheet extracted from the URL.
NameTypeRequiredDescription
datastringYesData from the action execution.
errorstringNoError if any occurred during the execution of the action.
successfulbooleanYesWhether or not the action execution was successful.

GOOGLESHEETS_FIND_REPLACE

Tool to find and replace text in a Google Spreadsheet. Common use cases: fix #ERROR! cells, update old values with new ones, fix formula references, clean up data formatting.

NameTypeRequiredDescription
findstringYesThe text to find. Can be a literal string or a regular expression pattern.
rangestringNoA1 notation range string to search within. Mutually exclusive with sheetId and allSheets.
replacestringYesThe text to replace the found instances with.
sheetIdintegerNoThe numeric ID of the sheet to search the entire sheet. Mutually exclusive with sheetName, range, and allSheets.
allSheetsbooleanNoWhether to search across all sheets in the spreadsheet.
matchCasebooleanNoWhether the search should be case-sensitive.
sheetNamestringNoThe name/title of the sheet to search within.
endRowIndexintegerNoThe end row (0-indexed, exclusive) of the range. Only used when rangeSheetId is provided.
rangeSheetIdintegerNoThe numeric sheet ID for a GridRange-based search. Required when using the ‘range’ parameter with A1 notation.
searchByRegexbooleanNoWhether to treat the find text as a regular expression.
spreadsheetIdstringYesThe ID of the spreadsheet to update.
startRowIndexintegerNoThe start row (0-indexed, inclusive) of the range.
endColumnIndexintegerNoThe end column (0-indexed, exclusive) of the range. Column A = 0.
includeFormulasbooleanNoWhether to include cells with formulas in the search.
matchEntireCellbooleanNoWhether to match only cells that contain the entire search term.
startColumnIndexintegerNoThe start column (0-indexed, inclusive) of the range. Column A = 0.
NameTypeRequiredDescription
datastringYesData from the action execution.
errorstringNoError if any occurred during the execution of the action.
successfulbooleanYesWhether or not the action execution was successful.

GOOGLESHEETS_FIND_WORKSHEET_BY_TITLE

DEPRECATED: Use GetSpreadsheetInfo instead. Finds a worksheet by its exact, case-sensitive title within a Google Spreadsheet.

NameTypeRequiredDescription
spreadsheet_idstringYesThe unique identifier of the Google Spreadsheet from the URL.
worksheet_titlestringYesThe exact, case-sensitive title of the worksheet (tab name) to find.
NameTypeRequiredDescription
datastringYesData from the action execution.
errorstringNoError if any occurred during the execution of the action.
successfulbooleanYesWhether or not the action execution was successful.

GOOGLESHEETS_FORMAT_CELL

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

NameTypeRequiredDescription
rednumberNoRed component of the background color (0.0–1.0).
bluenumberNoBlue component of the background color (0.0–1.0).
boldbooleanNoApply bold formatting.
greennumberNoGreen component of the background color (0.0–1.0).
rangestringNoOPTION 1: Cell range in A1 notation (recommended). Provide either this field OR all four index fields below, not both.
italicbooleanNoApply italic formatting.
fontSizeintegerNoFont size in points.
underlinebooleanNoApply underline formatting.
sheet_namestringNoThe worksheet name/title (e.g., ‘Sheet1’). Provide either this field OR worksheet_id, not both.
worksheet_idintegerNoThe worksheet identifier. Defaults to 0 (first sheet).
end_row_indexintegerNoOPTION 2: 0-based index of the row AFTER the last row (exclusive).
strikethroughbooleanNoApply strikethrough formatting.
wrap_strategystring (“OVERFLOW_CELL” | “LEGACY_WRAP” | “CLIP” | “WRAP”)NoHow text wraps within cells.
spreadsheet_idstringYesIdentifier of the Google Sheets spreadsheet.
start_row_indexintegerNoOPTION 2: 0-based row index (row 1 = index 0).
end_column_indexintegerNoOPTION 2: 0-based index of the column AFTER the last column (exclusive).
start_column_indexintegerNoOPTION 2: 0-based column index (A = 0, B = 1, F = 5).
NameTypeRequiredDescription
datastringYesData from the action execution.
errorstringNoError if any occurred during the execution of the action.
successfulbooleanYesWhether or not the action execution was successful.

GOOGLESHEETS_GET_BATCH_VALUES

DEPRECATED: Use GOOGLESHEETS_BATCH_GET instead. Tool to return one or more ranges of values from a spreadsheet in a single request.

NameTypeRequiredDescription
rangesarrayYesThe A1 notation or R1C1 notation of the ranges to retrieve values from.
spreadsheet_idstringYesThe ID of the spreadsheet to retrieve data from.
major_dimensionstring (“DIMENSION_UNSPECIFIED” | “ROWS” | “COLUMNS”)NoThe major dimension for results.
value_render_optionstring (“FORMATTED_VALUE” | “UNFORMATTED_VALUE” | “FORMULA”)NoHow values should be rendered in the output.
date_time_render_optionstring (“SERIAL_NUMBER” | “FORMATTED_STRING”)NoHow dates, times, and durations should be represented in the output.
NameTypeRequiredDescription
datastringYesData from the action execution.
errorstringNoError if any occurred during the execution of the action.
successfulbooleanYesWhether or not the action execution was successful.

GOOGLESHEETS_GET_CONDITIONAL_FORMAT_RULES

List conditional formatting rules for each sheet (or a selected sheet) in a normalized, easy-to-edit form.

NameTypeRequiredDescription
sheet_idintegerNoOptional filter: return rules only for the sheet with this exact numeric sheetId.
sheet_titlestringNoOptional filter: return rules only for the sheet with this exact title.
spreadsheet_idstringYesUnique identifier of the Google Spreadsheet.
exclude_tables_in_banded_rangesbooleanNoTrue if tables should be excluded in the banded ranges.
NameTypeRequiredDescription
datastringYesData from the action execution.
errorstringNoError if any occurred during the execution of the action.
successfulbooleanYesWhether or not the action execution was successful.

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.

NameTypeRequiredDescription
rangesarrayNoOptional list of A1 ranges to scan. If omitted, the entire sheet(s) will be scanned.
sheetIdintegerNoOptional sheet ID to filter by. If omitted, all sheets will be scanned.
sheetTitlestringNoOptional sheet title to filter by.
includeEmptybooleanNoIf true, include cells without validation rules in the output. Default is false.
spreadsheetIdstringYesThe ID of the spreadsheet to request.
NameTypeRequiredDescription
datastringYesData from the action execution.
errorstringNoError if any occurred during the execution of the action.
successfulbooleanYesWhether or not the action execution was successful.

GOOGLESHEETS_GET_SHEET_NAMES

Lists all worksheet names from a specified Google Spreadsheet, useful for discovering sheets before further operations.

NameTypeRequiredDescription
exclude_hiddenbooleanNoWhen True, hidden sheets will be excluded from the results.
spreadsheet_idstringYesThe unique identifier of the Google Spreadsheet.
NameTypeRequiredDescription
datastringYesData from the action execution.
errorstringNoError if any occurred during the execution of the action.
successfulbooleanYesWhether or not the action execution was successful.

GOOGLESHEETS_GET_SPREADSHEET_BY_DATA_FILTER

Returns the spreadsheet at the given ID, filtered by the specified data filters. Use to retrieve specific subsets of data based on criteria like A1 notation, developer metadata, or grid ranges.

NameTypeRequiredDescription
dataFiltersarrayNoThe DataFilters used to select which ranges to retrieve. If empty, returns full spreadsheet metadata.
spreadsheetIdstringYesThe ID of the spreadsheet to request.
includeGridDatabooleanNoTrue if grid data should be returned.
excludeTablesInBandedRangesbooleanNoTrue if tables should be excluded in the banded ranges.
NameTypeRequiredDescription
datastringYesData from the action execution.
errorstringNoError if any occurred during the execution of the action.
successfulbooleanYesWhether or not the action execution was successful.

GOOGLESHEETS_GET_SPREADSHEET_INFO

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

NameTypeRequiredDescription
fieldsstringNoOptional field mask specifying which fields to return. Use ’*’ for full metadata.
rangesarrayNoOptional ranges to retrieve from the spreadsheet in A1 notation.
spreadsheet_idstringNoRequired. The Google Sheets spreadsheet ID or full URL. The ID is extracted automatically from URLs.
include_grid_databooleanNoOptional. If true, grid data will be returned.
exclude_tables_in_banded_rangesbooleanNoOptional. If true, tables within banded ranges will be omitted.
NameTypeRequiredDescription
datastringYesData from the action execution.
errorstringNoError if any occurred during the execution of the action.
successfulbooleanYesWhether or not the action execution was successful.

GOOGLESHEETS_GET_TABLE_SCHEMA

DEPRECATED: Use GOOGLESHEETS_GET_SHEET_NAMES and GOOGLESHEETS_GET_SPREADSHEET_INFO instead. Get the schema of a table in a Google Spreadsheet, analyzing structure and inferring column names, types, and constraints.

NameTypeRequiredDescription
sheet_namestringNoSheet/tab name if table_name is ambiguous across multiple sheets.
table_namestringYesTable name from LIST_TABLES response OR the visible Google Sheets tab name. Use ‘auto’ to analyze the largest table.
sample_sizeintegerNoNumber of rows to sample for type inference.
spreadsheet_idstringYesThe unique identifier of the Google Spreadsheet.
NameTypeRequiredDescription
datastringYesData from the action execution.
errorstringNoError if any occurred during the execution of the action.
successfulbooleanYesWhether or not the action execution was successful.

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.

NameTypeRequiredDescription
spreadsheet_idstringYesThe ID of the spreadsheet to update.
response_rangesarrayNoLimits the ranges of the spreadsheet to include in the response.
insert_dimensionobjectYesThe details for the insert dimension request.
response_include_grid_databooleanNoTrue if grid data should be included in the response.
include_spreadsheet_in_responsebooleanNoTrue if the updated spreadsheet should be included in the response.
NameTypeRequiredDescription
datastringYesData from the action execution.
errorstringNoError if any occurred during the execution of the action.
successfulbooleanYesWhether or not the action execution was successful.

GOOGLESHEETS_LIST_CHARTS

Lists all charts in a Google Sheets spreadsheet across all sheets, returning chart_id, sheet metadata, chart type, title, and position.

NameTypeRequiredDescription
chart_idintegerNoOptional. Filter to a specific chart by its numeric chart ID.
sheet_idintegerNoOptional. Filter results to a single sheet’s charts by numeric sheet ID.
include_specbooleanNoWhen true, include the full ChartSpec dictionary for each chart. Default: false.
spreadsheet_idstringYesRequired. The Google Sheets spreadsheet ID or full URL.
NameTypeRequiredDescription
datastringYesData from the action execution.
errorstringNoError if any occurred during the execution of the action.
successfulbooleanYesWhether or not the action execution was successful.

GOOGLESHEETS_LIST_TABLES

DEPRECATED: Use GOOGLESHEETS_GET_SHEET_NAMES for tab discovery and GOOGLESHEETS_GET_SPREADSHEET_INFO for full sheet metadata. Discovers tables in a Google Spreadsheet by analyzing sheet structure and detecting data patterns.

NameTypeRequiredDescription
min_rowsintegerNoMinimum number of data rows to consider a valid table.
min_columnsintegerNoMinimum number of columns to consider a valid table.
min_confidencenumberNoMinimum confidence score (0.0–1.0) to consider a valid table.
spreadsheet_idstringYesThe actual Google Spreadsheet ID (not a placeholder or spreadsheet name).
NameTypeRequiredDescription
datastringYesData from the action execution.
errorstringNoError if any occurred during the execution of the action.
successfulbooleanYesWhether or not the action execution was successful.

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.

NameTypeRequiredDescription
querystringYesExact text value to find; matches the entire content of a cell in a row.
rangestringNoA1 notation range to search within. Sheet names with spaces must be single-quoted.
case_sensitivebooleanNoIf True, the query string search is case-sensitive.
spreadsheet_idstringYesIdentifier of the Google Spreadsheet to search.
value_render_optionstring (“FORMATTED_VALUE” | “UNFORMATTED_VALUE” | “FORMULA”)NoHow cell values are rendered in the returned row data.
normalize_whitespacebooleanNoIf True, strips leading and trailing whitespace from cell values before matching.
date_time_render_optionstringNoHow dates and times are represented.
NameTypeRequiredDescription
datastringYesData from the action execution.
errorstringNoError if any occurred during the execution of the action.
successfulbooleanYesWhether or not the action execution was successful.

GOOGLESHEETS_MOVE_CHART

Move or resize an existing chart on a Google Sheets spreadsheet. Supports three positioning modes: moving to a new sheet, moving to an existing sheet, or repositioning via pixel-perfect overlay coordinates.

NameTypeRequiredDescription
chart_idintegerYesThe unique numeric identifier of the chart to move.
new_sheetbooleanNoSet to true to move the chart to a brand-new sheet. Mutually exclusive with target_sheet_id and anchor_sheet_id.
width_pixelsintegerNoWidth of the chart in pixels. Only valid when anchor_sheet_id is provided.
height_pixelsintegerNoHeight of the chart in pixels. Only valid when anchor_sheet_id is provided.
spreadsheet_idstringYesThe unique identifier of the Google Sheets spreadsheet containing the chart to move.
anchor_sheet_idintegerNoThe numeric sheetId of the sheet to anchor the chart onto when repositioning via overlay coordinates.
offset_x_pixelsintegerNoHorizontal pixel offset from the anchor cell.
offset_y_pixelsintegerNoVertical pixel offset from the anchor cell.
target_sheet_idintegerNoThe numeric sheetId of an existing sheet to move the chart to.
anchor_row_indexintegerNoThe 0-based row index of the anchor cell for overlay positioning.
anchor_column_indexintegerNoThe 0-based column index of the anchor cell for overlay positioning.
NameTypeRequiredDescription
datastringYesData from the action execution.
errorstringNoError if any occurred during the execution of the action.
successfulbooleanYesWhether or not the action execution was successful.

GOOGLESHEETS_MUTATE_CONDITIONAL_FORMAT_RULES

Add, update, delete, or reorder conditional format rules on a Google Sheet. Supports four operations: ADD (create new rule), UPDATE (replace existing rule), DELETE (remove rule), MOVE (reorder rules by changing index).

NameTypeRequiredDescription
ruleobjectNoConditional format rule specification.
indexintegerNoZero-based index for the operation. Required for UPDATE, DELETE, MOVE.
sheet_idintegerYesThe unique numeric identifier of the sheet/tab to modify. Use GOOGLESHEETS_GET_SPREADSHEET_INFO to retrieve actual sheetId values.
new_indexintegerNoDestination index for MOVE operation. Required when operation is MOVE.
operationstring (“ADD” | “UPDATE” | “DELETE” | “MOVE”)YesOperation type.
spreadsheet_idstringYesThe ID of the spreadsheet containing the sheet to modify.
NameTypeRequiredDescription
datastringYesData from the action execution.
errorstringNoError if any occurred during the execution of the action.
successfulbooleanYesWhether or not the action execution was successful.

GOOGLESHEETS_QUERY_TABLE

DEPRECATED: Use GOOGLESHEETS_VALUES_GET / GOOGLESHEETS_BATCH_GET for reads and GOOGLESHEETS_LOOKUP_SPREADSHEET_ROW for row lookup/filter workflows. Execute SQL-like SELECT queries against Google Spreadsheet tables. Supports WHERE conditions, ORDER BY, LIMIT clauses.

NameTypeRequiredDescription
sqlstringYesSQL SELECT query. The table name is the Google Sheets tab/sheet name. Use double quotes for names with spaces or numeric-only names.
spreadsheet_idstringYesThe unique identifier of a native Google Sheets file.
include_formulasbooleanNoWhether to return formula text instead of calculated values for formula columns.
NameTypeRequiredDescription
datastringYesData from the action execution.
errorstringNoError if any occurred during the execution of the action.
successfulbooleanYesWhether or not the action execution was successful.

GOOGLESHEETS_SEARCH_DEVELOPER_METADATA

Tool to search for developer metadata in a spreadsheet based on filters.

NameTypeRequiredDescription
dataFiltersarrayYesThe data filters describing the criteria used to determine which DeveloperMetadata entries to return.
spreadsheetIdstringYesThe ID of the spreadsheet to retrieve metadata from.
NameTypeRequiredDescription
datastringYesData from the action execution.
errorstringNoError if any occurred during the execution of the action.
successfulbooleanYesWhether or not the action execution was successful.

GOOGLESHEETS_SEARCH_SPREADSHEETS

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

NameTypeRequiredDescription
querystringNoSearch query to filter spreadsheets. For advanced searches, use Google Drive query syntax. Leave empty to get all spreadsheets.
order_bystringNoSort order (comma-separated list). Valid fields: createdTime, modifiedTime, name, etc.
page_tokenstringNoToken for retrieving the next page of results.
max_resultsintegerNoMaximum number of spreadsheets to return (1–1000). Default: 10.
search_typestring (“name” | “content” | “both”)NoHow to search: ‘name’ searches filenames only, ‘content’ uses fullText search, ‘both’ searches both.
starred_onlybooleanNoWhether to return only starred spreadsheets.
created_afterstringNoReturn spreadsheets created after this date in RFC 3339 format.
modified_afterstringNoReturn spreadsheets modified after this date in RFC 3339 format.
shared_with_mebooleanNoWhether to return only spreadsheets shared with the current user.
include_trashedbooleanNoWhether to include spreadsheets in trash.
include_shared_drivesbooleanNoWhether to include spreadsheets from shared drives. Default: True.
NameTypeRequiredDescription
datastringYesData from the action execution.
errorstringNoError if any occurred during the execution of the action.
successfulbooleanYesWhether or not the action execution was successful.

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.

NameTypeRequiredDescription
filterobjectYesThe filter to set.
spreadsheetIdstringYesThe ID of the spreadsheet.
responseRangesarrayNoLimits the ranges included in the response spreadsheet.
responseIncludeGridDatabooleanNoTrue if grid data should be returned.
includeSpreadsheetInResponsebooleanNoDetermines if the updated spreadsheet resource appears in the response.
NameTypeRequiredDescription
datastringYesData from the action execution.
errorstringNoError if any occurred during the execution of the action.
successfulbooleanYesWhether or not the action execution was successful.

GOOGLESHEETS_SET_DATA_VALIDATION_RULE

Tool to set or clear data validation rules (including dropdowns) on a range in Google Sheets.

NameTypeRequiredDescription
modestring (“SET” | “CLEAR”)YesOperation mode: ‘SET’ applies a validation rule to the range, ‘CLEAR’ removes any existing validation.
strictbooleanNoWhether to reject invalid data (true) or show a warning (false). Default is true.
valuesarrayNoList of allowed values for dropdown. Required when validation_type='ONE_OF_LIST'.
formulastringNoCustom formula for validation. Required when validation_type='CUSTOM_FORMULA'. Formula should evaluate to TRUE/FALSE.
sheet_idintegerYesThe unique sheet ID (numeric identifier) where the validation rule will be applied.
end_row_indexintegerYesEnding row index (0-based, exclusive) for the validation range.
input_messagestringNoOptional message shown to the user when they select the cell.
show_custom_uibooleanNoWhether to show a dropdown UI for list-based validation.
spreadsheet_idstringYesThe unique identifier of the Google Sheets spreadsheet.
source_range_a1stringNoSource range in A1 notation for dropdown values. Required when validation_type='ONE_OF_RANGE'.
start_row_indexintegerYesStarting row index (0-based, inclusive) for the validation range. Row 1 is index 0.
validation_typestringNoType of validation rule to apply. Required when mode='SET'.
condition_valuesarrayNoGeneric list of condition values for validation types that require specific values.
end_column_indexintegerYesEnding column index (0-based, exclusive) for the validation range.
start_column_indexintegerYesStarting column index (0-based, inclusive) for the validation range. Column A is index 0.
filtered_rows_includedbooleanNoWhether to apply validation to rows hidden by filters.
NameTypeRequiredDescription
datastringYesData from the action execution.
errorstringNoError if any occurred during the execution of the action.
successfulbooleanYesWhether or not the action execution was successful.

GOOGLESHEETS_SHEET_FROM_JSON

DEPRECATED: Use GOOGLESHEETS_CREATE_GOOGLE_SHEET1 + GOOGLESHEETS_UPDATE_VALUES_BATCH instead. Creates a new Google Spreadsheet and populates its first worksheet from sheet_json.

NameTypeRequiredDescription
titlestringYesThe desired title for the new Google Spreadsheet.
sheet_jsonarrayYesA list of dictionaries representing the rows of the sheet. Each dictionary must have the same set of keys, which will form the header row.
sheet_namestringYesThe name for the first worksheet within the newly created spreadsheet.
NameTypeRequiredDescription
datastringYesData from the action execution.
errorstringNoError if any occurred during the execution of the action.
successfulbooleanYesWhether or not the action execution was successful.

GOOGLESHEETS_SPREADSHEETS_SHEETS_COPY_TO

Tool to copy a single sheet from a spreadsheet to another spreadsheet.

NameTypeRequiredDescription
sheet_idintegerYesThe ID of the sheet to copy.
spreadsheet_idstringYesThe ID of the spreadsheet containing the sheet to copy.
destination_spreadsheet_idstringYesThe ID of the spreadsheet to copy the sheet to.
NameTypeRequiredDescription
datastringYesData from the action execution.
errorstringNoError if any occurred during the execution of the action.
successfulbooleanYesWhether or not the action execution was successful.

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.

NameTypeRequiredDescription
rangestringYesA1 notation range used to locate a logical table. New rows are appended after the last row of that table.
valuesarrayYes2D array of values to append. Typically, each inner list is a ROW (majorDimension=ROWS).
spreadsheetIdstringYesThe spreadsheet ID (typically 44 characters).
majorDimensionstring (“ROWS” | “COLUMNS”)NoHow to interpret the 2D values array. Use ROWS for row-wise data (most common for appends).
insertDataOptionstring (“OVERWRITE” | “INSERT_ROWS”)NoHow the input data should be inserted.
valueInputOptionstring (“RAW” | “USER_ENTERED”)YesHow the input data should be interpreted.
includeValuesInResponsebooleanNoDetermines if the update response should include the values of the cells that were appended.
responseValueRenderOptionstring (“FORMATTED_VALUE” | “UNFORMATTED_VALUE” | “FORMULA”)NoDetermines how values in the response should be rendered.
responseDateTimeRenderOptionstring (“SERIAL_NUMBER” | “FORMATTED_STRING”)NoDetermines how dates, times, and durations in the response should be rendered.
NameTypeRequiredDescription
datastringYesData from the action execution.
errorstringNoError if any occurred during the execution of the action.
successfulbooleanYesWhether or not the action execution was successful.

GOOGLESHEETS_SPREADSHEETS_VALUES_BATCH_CLEAR

Tool to clear one or more ranges of values from a spreadsheet while keeping formatting and other properties intact.

NameTypeRequiredDescription
rangesarrayYesThe ranges to clear, in A1 notation. Valid examples: ‘Sheet1!A1:B2’, ‘A1:Z100’, ‘Sheet1’.
spreadsheet_idstringYesThe ID of the spreadsheet to update. Accepts a spreadsheet ID or a full Google Sheets URL.
NameTypeRequiredDescription
datastringYesData from the action execution.
errorstringNoError if any occurred during the execution of the action.
successfulbooleanYesWhether or not the action execution was successful.

Batch Get Spreadsheet Values by Data Filter

Section titled “Batch Get Spreadsheet Values by Data Filter”

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.

NameTypeRequiredDescription
dataFiltersarrayYesAn array of data filter objects used to match ranges of values to retrieve. Each filter can specify ‘a1Range’ or ‘gridRange’.
spreadsheetIdstringYesThe ID of the spreadsheet to retrieve data from.
majorDimensionstring (“ROWS” | “COLUMNS”)NoThe major dimension that results should use.
valueRenderOptionstring (“FORMATTED_VALUE” | “UNFORMATTED_VALUE” | “FORMULA”)NoHow values should be represented in the output.
dateTimeRenderOptionstring (“SERIAL_NUMBER” | “FORMATTED_STRING”)NoHow dates, times, and durations should be represented in the output.
NameTypeRequiredDescription
datastringYesData from the action execution.
errorstringNoError if any occurred during the execution of the action.
successfulbooleanYesWhether or not the action execution was successful.

GOOGLESHEETS_UPDATE_CHART

Update the specification of an existing chart in a Google Sheets spreadsheet. Use when you need to modify properties such as title, chart type, data ranges, colors, or axes. This action does not change the chart’s position or size.

NameTypeRequiredDescription
chart_idintegerYesThe unique numeric identifier of the chart to update.
chart_specobjectYesThe complete ChartSpec object defining the updated chart specification.
spreadsheet_idstringYesThe unique identifier of the Google Sheets spreadsheet containing the chart to update.
NameTypeRequiredDescription
datastringYesData from the action execution.
errorstringNoError if any occurred during the execution of the action.
successfulbooleanYesWhether or not the action execution was successful.

Update Dimension Properties (Hide/Unhide & Resize)

Section titled “Update Dimension Properties (Hide/Unhide & Resize)”

GOOGLESHEETS_UPDATE_DIMENSION_PROPERTIES

Tool to hide/unhide rows or columns and set row heights or column widths.

NameTypeRequiredDescription
sheet_idintegerNoThe numeric ID of the sheet (tab). Either sheet_id or sheet_name must be provided.
dimensionstring (“ROWS” | “COLUMNS”)YesWhether to update rows or columns.
end_indexintegerYesThe zero-based end index (exclusive) of the dimension range to update.
pixel_sizeintegerNoThe height (for rows) or width (for columns) in pixels.
sheet_namestringNoThe name of the sheet (tab). If provided, resolved to the numeric sheet_id.
start_indexintegerYesThe zero-based start index (inclusive) of the dimension range to update.
hidden_by_userbooleanNoWhether to hide (true) or unhide (false) the specified rows/columns.
spreadsheet_idstringYesThe ID of the spreadsheet to update.
response_rangesarrayNoLimits the ranges included in the response spreadsheet.
response_include_grid_databooleanNoWhether to include grid data in the response.
include_spreadsheet_in_responsebooleanNoWhether to include the updated spreadsheet in the response.
NameTypeRequiredDescription
datastringYesData from the action execution.
errorstringNoError if any occurred during the execution of the action.
successfulbooleanYesWhether or not the action execution was successful.

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.

NameTypeRequiredDescription
spreadsheetIdstringYesThe ID of the spreadsheet containing the sheet to update.
responseRangesarrayNoLimits the ranges included in the response spreadsheet.
updateSheetPropertiesobjectYesThe details of the sheet properties to update.
responseIncludeGridDatabooleanNoTrue if grid data should be returned in the response.
includeSpreadsheetInResponsebooleanNoDetermines if the update response should include the spreadsheet resource.
NameTypeRequiredDescription
datastringYesData from the action execution.
errorstringNoError if any occurred during the execution of the action.
successfulbooleanYesWhether or not the action execution was successful.

GOOGLESHEETS_UPDATE_SPREADSHEET_PROPERTIES

Tool to update SPREADSHEET-LEVEL properties such as the spreadsheet’s title, locale, time zone, or auto-recalculation settings. NOTE: To update individual SHEET properties (like renaming a specific sheet/tab), use GOOGLESHEETS_UPDATE_SHEET_PROPERTIES instead.

NameTypeRequiredDescription
fieldsstringYesField mask specifying which properties to update (comma-separated). Wildcard ’*’ updates all properties.
propertiesobjectYesThe spreadsheet-level properties to update (e.g., title, locale, timeZone, autoRecalc).
spreadsheetIdstringYesThe ID of the spreadsheet to update.
responseRangesarrayNoLimits the ranges included in the response spreadsheet.
responseIncludeGridDatabooleanNoDetermines if grid data should be included in the response.
includeSpreadsheetInResponsebooleanNoDetermines if the response should include the full spreadsheet resource.
NameTypeRequiredDescription
datastringYesData from the action execution.
errorstringNoError if any occurred during the execution of the action.
successfulbooleanYesWhether or not the action execution was successful.

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.

NameTypeRequiredDescription
dataarrayYesThe new values to apply to the spreadsheet. Each ValueRange specifies a range and the values to write to that range.
spreadsheet_idstringYesThe ID of the spreadsheet to update.
valueInputOptionstring (“INPUT_VALUE_OPTION_UNSPECIFIED” | “RAW” | “USER_ENTERED”)YesHow the input data should be interpreted.
includeValuesInResponsebooleanNoDetermines if the update response should include the values of the cells that were updated.
responseValueRenderOptionstring (“FORMATTED_VALUE” | “UNFORMATTED_VALUE” | “FORMULA”)NoDetermines how values in the response should be rendered.
responseDateTimeRenderOptionstring (“SERIAL_NUMBER” | “FORMATTED_STRING”)NoDetermines how dates, times, and durations in the response should be rendered.
NameTypeRequiredDescription
datastringYesData from the action execution.
errorstringNoError if any occurred during the execution of the action.
successfulbooleanYesWhether or not the action execution was successful.

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).

NameTypeRequiredDescription
rowsarrayYes2D array of data rows to upsert. If ‘headers’ is NOT provided, the FIRST row is treated as column headers.
headersarrayNoList of column names for the data. These will be matched against sheet headers. Missing columns are added automatically.
keyColumnstringNoThe column NAME (header text) to use as unique identifier for matching rows.
sheetNamestringYesThe name of the sheet/tab within the spreadsheet.
strictModebooleanNoWhen True (default), an error is returned if any row has more values than headers. When False, extra values are silently truncated.
tableStartstringNoCell where the table starts (where headers are located). Defaults to ‘A1’.
spreadsheetIdstringYesThe ID of the spreadsheet.
key_column_indexstringNoThe 0-based column index to use as unique identifier. Alternative to keyColumn.
normalization_messagestringNoInternal field to track input normalization.
NameTypeRequiredDescription
datastringYesData from the action execution.
errorstringNoError if any occurred during the execution of the action.
successfulbooleanYesWhether or not the action execution was successful.

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.

NameTypeRequiredDescription
rangestringYesThe A1 notation or R1C1 notation of the range to retrieve values from.
end_rowintegerNo1-based row number to stop reading at (inclusive). Use with start_row for pagination.
start_rowintegerNo1-based row number to start reading from (inclusive). Use with end_row for pagination.
spreadsheet_idstringYesThe unique identifier of the Google Spreadsheet.
major_dimensionstring (“DIMENSION_UNSPECIFIED” | “ROWS” | “COLUMNS”)NoThe major dimension for results.
value_render_optionstring (“FORMATTED_VALUE” | “UNFORMATTED_VALUE” | “FORMULA”)NoHow values should be rendered in the output.
date_time_render_optionstring (“SERIAL_NUMBER” | “FORMATTED_STRING”)NoHow dates, times, and durations should be represented in the output.
NameTypeRequiredDescription
datastringYesData from the action execution.
errorstringNoError if any occurred during the execution of the action.
successfulbooleanYesWhether or not the action execution was successful.

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.

NameTypeRequiredDescription
rangestringYesThe A1 notation of the range to update values in (e.g., ‘Sheet1!A1:C2’, ‘A1:D5’).
valuesarrayYesThe data to write. This is an array of arrays, the outer array representing all the data and each inner array representing a major dimension.
spreadsheet_idstringYesThe unique identifier of the Google Spreadsheet to update.
major_dimensionstring (“ROWS” | “COLUMNS”)NoThe major dimension of the values. ROWS (default) means each inner array is a row of values.
auto_expand_sheetbooleanNoIf True (default), automatically expands the sheet’s dimensions when the target range exceeds the current grid limits.
value_input_optionstring (“RAW” | “USER_ENTERED”)YesHow the input data should be interpreted.
include_values_in_responsebooleanNoDetermines if the update response should include the values of the cells that were updated.
response_value_render_optionstring (“FORMATTED_VALUE” | “UNFORMATTED_VALUE” | “FORMULA”)NoDetermines how values in the response should be rendered.
response_datetime_render_optionstring (“SERIAL_NUMBER” | “FORMATTED_STRING”)NoDetermines how dates, times, and durations in the response should be rendered.
NameTypeRequiredDescription
datastringYesData from the action execution.
errorstringNoError if any occurred during the execution of the action.
successfulbooleanYesWhether or not the action execution was successful.