token configuration. To read or write a specific cell range, use the Google Sheets range tools.
Choose a row or tab operation
sheet_id is the spreadsheet ID; sheet_title is the tab name. All seven tools use the token configuration. GET_ROWS filters have column, an uppercase operator such as EQUAL or CONTAINS, and value; a row must match every filter. Filtering happens after the sheet is fetched. GET_ROWS returns the matching row objects as an array in result.
Add row records
rows is a JSON array of objects whose keys match column headers. A successful run returns the added records in result.rows. If the tool reports SheetNotFoundError, check the tab name and that the connected account can access the spreadsheet.
Create a tab with headers
GOOGLE_SPREADSHEET_ADD_SHEET creates a tab and its header row in one step:
result.sheet.id and result.sheet.name. GOOGLE_SPREADSHEET_REMOVE_SHEET takes the same sheet_id and sheet_title inputs; removing a tab deletes its contents.
Update rows by a unique key
GOOGLE_SPREADSHEET_UPDATE_ROW and GOOGLE_SPREADSHEET_UPDATE_ROWS match existing rows using the column named by unique_key. Include that key in every supplied row object; the other keys overwrite the matching cells. UPDATE_ROW returns the updated record in result.row, or RowNotFoundError when nothing matches. UPDATE_ROWS skips objects with no match and returns only the updated records in result.rows.
This flow reads the rows whose Status is Inactive, builds one update per employee, and writes them back:
Employees tab needs Employee ID, Status, and End Date headers. The Python step’s list is at steps.build_updates.result.data.rows, and the updated records are in steps.apply_updates.result.rows. If no row is Inactive, the list is empty and nothing changes.
Migrate rows between tabs
Read the source withGOOGLE_SPREADSHEET_GET_ROWS, transform the row objects, then write them with GOOGLE_SPREADSHEET_ADD_ROWS. The source and destination can be tabs in the same spreadsheet or in different ones.
Status of Active. Create the MigratedData tab first, for example with GOOGLE_SPREADSHEET_ADD_SHEET and the headers ["Name","Email","Department","Status"]. The written records are in steps.write_destination.result.rows.
GET_ROWS fetches the whole tab before applying filters, so use a bounded range with the range tools when you only need part of a large sheet. Keep a copy before bulk updates, and check the result for missing or empty matches.