Data & AI

Google Sheets

Read spreadsheet ranges, append rows and update Google Sheets from project actions.

Explore 7 capabilities ↓

What you can build

  • Sync CRM or form data into a structured sheet table
  • Generate weekly reports by appending action run results
  • Update specific rows in a table from workflow output
  • Read a sheet as a config or lookup source for a project

Access and credentials

Access Google Sheets and Tasks data via OAuth.

This plugin declares OAuth access. Provider permissions and connection setup must be reviewed when a compatible release is installed.

Example action

Read rows for a project report

Use this call in a saved OrgSDK action after enabling the plugin and connecting a credential.

return await googleSheets.getSheetData({
  "spreadsheetId": "your-spreadsheet-id",
  "range": "Sheet1!A1:D20"
});

Use with OrgSDK

OrgSDK gives external AI clients persistent projects and controlled execution. Plugins add optional tools to those projects. Each run uses pinned plugin versions, and project configuration determines which credentials they can use.

Set up OrgSDK locally ↗

The plugin’s toolkit

Capabilities

7 functions from this published version. Read calls retrieve or process information; write actions can change data in the connected service.

7 of 7 functions

Append rows to a Google Sheet range. Always pass a 2D array: [[val1, val2], ...]. Spreadsheet ID + range are passed at runtime.

Parameters and return value
ParameterTypeDetails
spreadsheetIdstring—
rangestring—
rowsunknown[][]—
valueInputOption"RAW" | "USER_ENTERED"—

Returns Promise<{ success: boolean; updates: any }>

Read values from a Google Sheet range

Parameters and return value
ParameterTypeDetails
spreadsheetIdstring—
rangestring—

Returns Promise<unknown[][]>

Clear values in a Google Sheet range. Tip: use a range that excludes headers (e.g. Sheet1!A2:Z)

Parameters and return value
ParameterTypeDetails
spreadsheetIdstring—
rangestring—

Returns Promise<{ success: boolean }>

List all structured tables in a Google Sheet. Returns array with tableId (string), name, sheetId, sheetTitle, range (GridRange), a1Range (A1 notation for debugging).

Parameters and return value
ParameterTypeDetails
spreadsheetIdstring—

Returns Promise<Array<{ tableId: string; name: string; sheetId: number; sheetTitle: string; range: any; a1Range: string }>>

Append rows to a structured Google Sheet table. Pass rows as objects keyed by column name: [{ Provider: 'X', Amount: 100 }, ...]. Column names must match table headers exactly. Use listSheetTables to find tableId. Formula detection: strings starting with '='.

Parameters and return value
ParameterTypeDetails
spreadsheetIdstring—
tableIdstring—
rowsRecord<string, unknown>[]—

Returns Promise<{ success: boolean; updates: any }>

Read all data rows from a structured Google Sheet table. Returns rows as objects with column names as keys. Each row includes _rowIndex for updates. Use listSheetTables to find tableId.

Parameters and return value
ParameterTypeDetails
spreadsheetIdstring—
tableIdstring—

Returns Promise<{ tableId: string; columns: string[]; rows: Array<Record<string, unknown>>; rowCount: number }>

Update specific columns in a row of a Google Sheet table. Use _rowIndex from getTableData. Pass updates as { columnName: newValue }.

Parameters and return value
ParameterTypeDetails
spreadsheetIdstring—
tableIdstring—
rowIndexnumber—
updatesRecord<string, unknown>—

Returns Promise<{ success: boolean; updatedCells: number; updatedColumns: string[] }>