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
googleSheets.appendToSheet
Write actionAppend rows to a Google Sheet range. Always pass a 2D array: [[val1, val2], ...]. Spreadsheet ID + range are passed at runtime.
Parameters and return value
| Parameter | Type | Details |
|---|---|---|
spreadsheetId | string | — |
range | string | — |
rows | unknown[][] | — |
valueInputOption | "RAW" | "USER_ENTERED" | — |
Returns Promise<{ success: boolean; updates: any }>
googleSheets.getSheetData
Read callRead values from a Google Sheet range
Parameters and return value
| Parameter | Type | Details |
|---|---|---|
spreadsheetId | string | — |
range | string | — |
Returns Promise<unknown[][]>
googleSheets.clearSheet
Write actionClear values in a Google Sheet range. Tip: use a range that excludes headers (e.g. Sheet1!A2:Z)
Parameters and return value
| Parameter | Type | Details |
|---|---|---|
spreadsheetId | string | — |
range | string | — |
Returns Promise<{ success: boolean }>
googleSheets.listSheetTables
Read callList 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
| Parameter | Type | Details |
|---|---|---|
spreadsheetId | string | — |
Returns Promise<Array<{ tableId: string; name: string; sheetId: number; sheetTitle: string; range: any; a1Range: string }>>
googleSheets.appendToTable
Write actionAppend 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
| Parameter | Type | Details |
|---|---|---|
spreadsheetId | string | — |
tableId | string | — |
rows | Record<string, unknown>[] | — |
Returns Promise<{ success: boolean; updates: any }>
googleSheets.getTableData
Read callRead 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
| Parameter | Type | Details |
|---|---|---|
spreadsheetId | string | — |
tableId | string | — |
Returns Promise<{ tableId: string; columns: string[]; rows: Array<Record<string, unknown>>; rowCount: number }>
googleSheets.updateTableRow
Write actionUpdate specific columns in a row of a Google Sheet table. Use _rowIndex from getTableData. Pass updates as { columnName: newValue }.
Parameters and return value
| Parameter | Type | Details |
|---|---|---|
spreadsheetId | string | — |
tableId | string | — |
rowIndex | number | — |
updates | Record<string, unknown> | — |
Returns Promise<{ success: boolean; updatedCells: number; updatedColumns: string[] }>
