14 operations. Call each with POST https://app.chirply.io/api/v1/actions/<name> and a bearer token; the response is { "data": { "action", "summary", "result" } }. A read badge means the operation changes nothing; write requires the credential’s write scope.
Append Sheets rows
google_sheets.append_rowswriteconfirm
Immediately appends up to 100 rows to the real Google spreadsheet. Writes literal RAW values, not formulas. An uncertain response must be checked before retrying because Google does not provide append idempotency; retrying may duplicate rows.
Marked confirm: this operation is irreversible, reaches real people, or spends money. Holding a credential is itself the confirmation for API and MCP callers — call it only when you mean it. The in-app assistant refuses to run it without a human approving first.
Parameters
Field
Type
Required
Description
connection_id
string (uuid)
required
Workspace-shared Google Sheets connection ID; never a Gmail or Calendar connection.
spreadsheet_id
string
required
Google spreadsheet ID from discovery or the /d/ segment of its URL.
sheet_id
integer
required
Numeric worksheet/tab ID (gid), stable across tab renames.
header_row
integer
optional
One-based header row. Blank and duplicate labels get unique positional col_a, col_b mapping keys. Default: 1
expected_headers
string[]
optional
Header labels from discovery. When provided, any header reorder or change fails before reading mapped rows or writing cells.
rows
array of (map of string → object)
required
Up to 100 rows to append after the table, in order. Retrying an uncertain append can duplicate rows.
Over MCP the same operation is the tool google_sheets_append_rows at https://app.chirply.io/api/mcp, same bearer token, same input.
Load Sheets columns
google_sheets.columnsread
Reads the header row and returns unique positional mapping keys with display labels. Duplicate and blank headers remain distinct. No writes; consumes Google read quota.
Parameters
Field
Type
Required
Description
connection_id
string (uuid)
required
Workspace-shared Google Sheets connection ID; never a Gmail or Calendar connection.
spreadsheet_id
string
required
Google spreadsheet ID from discovery or the /d/ segment of its URL.
sheet_id
integer
required
Numeric worksheet/tab ID (gid), stable across tab renames.
header_row
integer
optional
One-based header row. Blank and duplicate labels get unique positional col_a, col_b mapping keys. Default: 1
expected_headers
string[]
optional
Header labels from discovery. When provided, any header reorder or change fails before reading mapped rows or writing cells.
Over MCP the same operation is the tool google_sheets_columns at https://app.chirply.io/api/mcp, same bearer token, same input.
Connect Google Sheets
google_sheets.connectreadadmin only
Returns the Google consent link for an account-shared Sheets account. A signed-in account manager must open it and explicitly grant Google access; no spreadsheet is changed.
Over MCP the same operation is the tool google_sheets_connect at https://app.chirply.io/api/mcp, same bearer token, same input.
Watch Sheets rows
google_sheets.create_watchwriteconfirmadmin only
Starts bounded polling for this account's worksheet. The first successful poll establishes a silent baseline; later new or changed unique keys queue native workflow triggers, which may run real actions. Never backfills historical rows automatically. Requires immutable nonblank unique keys.
Marked confirm: this operation is irreversible, reaches real people, or spends money. Holding a credential is itself the confirmation for API and MCP callers — call it only when you mean it. The in-app assistant refuses to run it without a human approving first.
Parameters
Field
Type
Required
Description
connection_id
string (uuid)
required
Workspace-shared Google Sheets connection ID; never a Gmail or Calendar connection.
spreadsheet_id
string
required
Google spreadsheet ID from discovery or the /d/ segment of its URL.
sheet_id
integer
required
Numeric worksheet/tab ID (gid), stable across tab renames.
header_row
integer
optional
One-based header row. Blank and duplicate labels get unique positional col_a, col_b mapping keys. Default: 1
expected_headers
string[]
optional
Header labels from discovery. When provided, any header reorder or change fails before reading mapped rows or writing cells.
key_column
string
required
Unique immutable nonblank business-key column, e.g. col_a. Duplicate or missing keys stop polling.
label
string
required
Name displayed in the watch list and workflow setup.
Over MCP the same operation is the tool google_sheets_create_watch at https://app.chirply.io/api/mcp, same bearer token, same input.
Disconnect Sheets account
google_sheets.disconnectwriteconfirmadmin only
Removes this account's stored Sheets authorization. Workflows using it fail until a manager reconnects; Google spreadsheets are not deleted or edited.
Marked confirm: this operation is irreversible, reaches real people, or spends money. Holding a credential is itself the confirmation for API and MCP callers — call it only when you mean it. The in-app assistant refuses to run it without a human approving first.
Parameters
Field
Type
Required
Description
connection_id
string (uuid)
required
Workspace-shared Google Sheets connection ID; never a Gmail or Calendar connection.
Over MCP the same operation is the tool google_sheets_disconnect at https://app.chirply.io/api/mcp, same bearer token, same input.
Find or create contact
google_sheets.find_create_contactwriteconfirm
Finds or creates a real contact in this account by email and applies supplied name or phone fields. May queue normal contact-created workflows. Returns the saved contact for downstream field mapping; no email or SMS is sent directly.
Marked confirm: this operation is irreversible, reaches real people, or spends money. Holding a credential is itself the confirmation for API and MCP callers — call it only when you mean it. The in-app assistant refuses to run it without a human approving first.
Over MCP the same operation is the tool google_sheets_find_create_contact at https://app.chirply.io/api/mcp, same bearer token, same input.
Find Sheets rows
google_sheets.find_rowsread
Finds typed exact matches in a unique-key column across a bounded table of at most 5,000 rows and 100 columns. Returns all matches with cells for guarded updates. No writes; refuses partial scans.
Parameters
Field
Type
Required
Description
connection_id
string (uuid)
required
Workspace-shared Google Sheets connection ID; never a Gmail or Calendar connection.
spreadsheet_id
string
required
Google spreadsheet ID from discovery or the /d/ segment of its URL.
sheet_id
integer
required
Numeric worksheet/tab ID (gid), stable across tab renames.
header_row
integer
optional
One-based header row. Blank and duplicate labels get unique positional col_a, col_b mapping keys. Default: 1
expected_headers
string[]
optional
Header labels from discovery. When provided, any header reorder or change fails before reading mapped rows or writing cells.
key_column
string
required
Column to match by typed exact equality, e.g. col_a. Use a unique immutable business key.
key_value
string | number | boolean
required
Literal cell value. Text is written RAW, never interpreted as a formula; empty text clears the cell.
Over MCP the same operation is the tool google_sheets_find_rows at https://app.chirply.io/api/mcp, same bearer token, same input.
Sheets accounts
google_sheets.list_connectionsread
Lists Google Sheets accounts shared with this account, including durable connection errors and the connecting user. Returns no tokens and does not change Google data.
Over MCP the same operation is the tool google_sheets_list_connections at https://app.chirply.io/api/mcp, same bearer token, same input.
Browse spreadsheets
google_sheets.list_spreadsheetsread
Lists up to 100 spreadsheets visible to the selected account Sheets account. Follow nextPageToken for more; consumes Google read quota without changing files.
Parameters
Field
Type
Required
Description
connection_id
string (uuid)
required
Workspace-shared Google Sheets connection ID; never a Gmail or Calendar connection.
Over MCP the same operation is the tool google_sheets_list_watches at https://app.chirply.io/api/mcp, same bearer token, same input.
Read Sheets rows
google_sheets.read_rowsread
Reads one bounded page of physical rows, omitting fully blank rows. Numbers and booleans stay typed; dates are Google serial numbers. Follow next_row; pagination is not a concurrent-edit snapshot. No writes.
Parameters
Field
Type
Required
Description
connection_id
string (uuid)
required
Workspace-shared Google Sheets connection ID; never a Gmail or Calendar connection.
spreadsheet_id
string
required
Google spreadsheet ID from discovery or the /d/ segment of its URL.
sheet_id
integer
required
Numeric worksheet/tab ID (gid), stable across tab renames.
header_row
integer
optional
One-based header row. Blank and duplicate labels get unique positional col_a, col_b mapping keys. Default: 1
expected_headers
string[]
optional
Header labels from discovery. When provided, any header reorder or change fails before reading mapped rows or writing cells.
start_row
integer
optional
One-based first data row; defaults to header_row + 1. Pagination is positional and not a snapshot.
limit
integer
optional
Maximum physical rows to read, including blank rows. Follow next_row to continue. Default: 100
Over MCP the same operation is the tool google_sheets_read_rows at https://app.chirply.io/api/mcp, same bearer token, same input.
Update Sheets watch
google_sheets.set_watchwriteconfirmadmin only
Pauses or resumes a row watch. Resume compares with the last successful baseline and may queue workflows for changes while paused. reset_baseline discards that history and makes the next poll silent; use after reviewing header changes.
Marked confirm: this operation is irreversible, reaches real people, or spends money. Holding a credential is itself the confirmation for API and MCP callers — call it only when you mean it. The in-app assistant refuses to run it without a human approving first.
Parameters
Field
Type
Required
Description
watch_id
string (uuid)
required
Watch ID in this account.
enabled
boolean
required
Whether scheduled polling is enabled.
reset_baseline
boolean
optional
Discard prior snapshot and silently establish a new baseline; changes since the old snapshot will not trigger workflows. Default: false
Over MCP the same operation is the tool google_sheets_set_watch at https://app.chirply.io/api/mcp, same bearer token, same input.
Update matched Sheets row
google_sheets.update_rowwriteconfirm
Immediately changes specified cells in exactly one uniquely matched real Sheet row. Re-finds its immutable key and checks expected cells, refusing ambiguity or stale data. Requires exclusive editing during the write: Google has no conditional row write, so simultaneous sorting/insertion is unsupported.
Marked confirm: this operation is irreversible, reaches real people, or spends money. Holding a credential is itself the confirmation for API and MCP callers — call it only when you mean it. The in-app assistant refuses to run it without a human approving first.
Parameters
Field
Type
Required
Description
connection_id
string (uuid)
required
Workspace-shared Google Sheets connection ID; never a Gmail or Calendar connection.
spreadsheet_id
string
required
Google spreadsheet ID from discovery or the /d/ segment of its URL.
sheet_id
integer
required
Numeric worksheet/tab ID (gid), stable across tab renames.
header_row
integer
optional
One-based header row. Blank and duplicate labels get unique positional col_a, col_b mapping keys. Default: 1
expected_headers
string[]
optional
Header labels from discovery. When provided, any header reorder or change fails before reading mapped rows or writing cells.
key_column
string
required
Column to match by typed exact equality, e.g. col_a. Use a unique immutable business key.
key_value
string | number | boolean
required
Literal cell value. Text is written RAW, never interpreted as a formula; empty text clears the cell.
values
map of string → object
required
Fields keyed by discovery keys such as col_a. Unspecified columns are preserved on update and blank on append.
expected_cells
array of (string | number | boolean)
required
Exact cells from the last find result. Update fails if the uniquely matched row changed; never accepts a stale row number.
exclusive_edit_confirmed
true
required
Confirm no other editor sorts/inserts/deletes rows during this update. Google Sheets has no conditional row write; concurrent structural edits cannot be made safe by the API.