← All action domains

Google sheets

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

FieldTypeRequiredDescription
connection_idstring (uuid)requiredWorkspace-shared Google Sheets connection ID; never a Gmail or Calendar connection.
spreadsheet_idstringrequiredGoogle spreadsheet ID from discovery or the /d/ segment of its URL.
sheet_idintegerrequiredNumeric worksheet/tab ID (gid), stable across tab renames.
header_rowintegeroptionalOne-based header row. Blank and duplicate labels get unique positional col_a, col_b mapping keys. Default: 1
expected_headersstring[]optionalHeader labels from discovery. When provided, any header reorder or change fails before reading mapped rows or writing cells.
rowsarray of (map of string → object)requiredUp to 100 rows to append after the table, in order. Retrying an uncertain append can duplicate rows.

Example

curl -X POST https://app.chirply.io/api/v1/actions/google_sheets.append_rows \
  -H "Authorization: Bearer chp_live_…" \
  -H "Content-Type: application/json" \
  -d '{
    "connection_id": "2f6a1c1e-6c3b-4c62-9f6e-8a2d4b7c9e11",
    "spreadsheet_id": "2f6a1c1e-6c3b-4c62-9f6e-8a2d4b7c9e11",
    "sheet_id": 1,
    "rows": [
      {}
    ]
  }'
Test with your API key

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

FieldTypeRequiredDescription
connection_idstring (uuid)requiredWorkspace-shared Google Sheets connection ID; never a Gmail or Calendar connection.
spreadsheet_idstringrequiredGoogle spreadsheet ID from discovery or the /d/ segment of its URL.
sheet_idintegerrequiredNumeric worksheet/tab ID (gid), stable across tab renames.
header_rowintegeroptionalOne-based header row. Blank and duplicate labels get unique positional col_a, col_b mapping keys. Default: 1
expected_headersstring[]optionalHeader labels from discovery. When provided, any header reorder or change fails before reading mapped rows or writing cells.

Example

curl -X POST https://app.chirply.io/api/v1/actions/google_sheets.columns \
  -H "Authorization: Bearer chp_live_…" \
  -H "Content-Type: application/json" \
  -d '{
    "connection_id": "2f6a1c1e-6c3b-4c62-9f6e-8a2d4b7c9e11",
    "spreadsheet_id": "2f6a1c1e-6c3b-4c62-9f6e-8a2d4b7c9e11",
    "sheet_id": 1
  }'
Test with your API key

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.

Parameters

No parameters — POST an empty body.

Example

curl -X POST https://app.chirply.io/api/v1/actions/google_sheets.connect \
  -H "Authorization: Bearer chp_live_…" \
  -H "Content-Type: application/json" \
  -d '{}'
Test with your API key

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

FieldTypeRequiredDescription
connection_idstring (uuid)requiredWorkspace-shared Google Sheets connection ID; never a Gmail or Calendar connection.
spreadsheet_idstringrequiredGoogle spreadsheet ID from discovery or the /d/ segment of its URL.
sheet_idintegerrequiredNumeric worksheet/tab ID (gid), stable across tab renames.
header_rowintegeroptionalOne-based header row. Blank and duplicate labels get unique positional col_a, col_b mapping keys. Default: 1
expected_headersstring[]optionalHeader labels from discovery. When provided, any header reorder or change fails before reading mapped rows or writing cells.
key_columnstringrequiredUnique immutable nonblank business-key column, e.g. col_a. Duplicate or missing keys stop polling.
labelstringrequiredName displayed in the watch list and workflow setup.

Example

curl -X POST https://app.chirply.io/api/v1/actions/google_sheets.create_watch \
  -H "Authorization: Bearer chp_live_…" \
  -H "Content-Type: application/json" \
  -d '{
    "connection_id": "2f6a1c1e-6c3b-4c62-9f6e-8a2d4b7c9e11",
    "spreadsheet_id": "2f6a1c1e-6c3b-4c62-9f6e-8a2d4b7c9e11",
    "sheet_id": 1,
    "key_column": "example",
    "label": "example"
  }'
Test with your API key

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

FieldTypeRequiredDescription
connection_idstring (uuid)requiredWorkspace-shared Google Sheets connection ID; never a Gmail or Calendar connection.

Example

curl -X POST https://app.chirply.io/api/v1/actions/google_sheets.disconnect \
  -H "Authorization: Bearer chp_live_…" \
  -H "Content-Type: application/json" \
  -d '{
    "connection_id": "2f6a1c1e-6c3b-4c62-9f6e-8a2d4b7c9e11"
  }'
Test with your API key

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.

Parameters

FieldTypeRequiredDescription
emailstring (email)requiredEmail address to match or create.
first_namestringoptionalOptional first name.
last_namestringoptionalOptional last name.
phonestringoptionalOptional phone number.

Example

curl -X POST https://app.chirply.io/api/v1/actions/google_sheets.find_create_contact \
  -H "Authorization: Bearer chp_live_…" \
  -H "Content-Type: application/json" \
  -d '{
    "email": "ada@example.com"
  }'
Test with your API key

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

FieldTypeRequiredDescription
connection_idstring (uuid)requiredWorkspace-shared Google Sheets connection ID; never a Gmail or Calendar connection.
spreadsheet_idstringrequiredGoogle spreadsheet ID from discovery or the /d/ segment of its URL.
sheet_idintegerrequiredNumeric worksheet/tab ID (gid), stable across tab renames.
header_rowintegeroptionalOne-based header row. Blank and duplicate labels get unique positional col_a, col_b mapping keys. Default: 1
expected_headersstring[]optionalHeader labels from discovery. When provided, any header reorder or change fails before reading mapped rows or writing cells.
key_columnstringrequiredColumn to match by typed exact equality, e.g. col_a. Use a unique immutable business key.
key_valuestring | number | booleanrequiredLiteral cell value. Text is written RAW, never interpreted as a formula; empty text clears the cell.

Example

curl -X POST https://app.chirply.io/api/v1/actions/google_sheets.find_rows \
  -H "Authorization: Bearer chp_live_…" \
  -H "Content-Type: application/json" \
  -d '{
    "connection_id": "2f6a1c1e-6c3b-4c62-9f6e-8a2d4b7c9e11",
    "spreadsheet_id": "2f6a1c1e-6c3b-4c62-9f6e-8a2d4b7c9e11",
    "sheet_id": 1,
    "key_column": "example",
    "key_value": "example"
  }'
Test with your API key

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.

Parameters

No parameters — POST an empty body.

Example

curl -X POST https://app.chirply.io/api/v1/actions/google_sheets.list_connections \
  -H "Authorization: Bearer chp_live_…" \
  -H "Content-Type: application/json" \
  -d '{}'
Test with your API key

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

FieldTypeRequiredDescription
connection_idstring (uuid)requiredWorkspace-shared Google Sheets connection ID; never a Gmail or Calendar connection.
page_tokenstringoptionalOpaque nextPageToken from the preceding page.

Example

curl -X POST https://app.chirply.io/api/v1/actions/google_sheets.list_spreadsheets \
  -H "Authorization: Bearer chp_live_…" \
  -H "Content-Type: application/json" \
  -d '{
    "connection_id": "2f6a1c1e-6c3b-4c62-9f6e-8a2d4b7c9e11"
  }'
Test with your API key

Over MCP the same operation is the tool google_sheets_list_spreadsheets at https://app.chirply.io/api/mcp, same bearer token, same input.

Browse worksheet tabs

google_sheets.list_tabsread

Reads the selected spreadsheet's worksheet IDs, names and dimensions. Does not download cell values or change files; consumes Google read quota.

Parameters

FieldTypeRequiredDescription
connection_idstring (uuid)requiredWorkspace-shared Google Sheets connection ID; never a Gmail or Calendar connection.
spreadsheet_idstringrequiredGoogle spreadsheet ID from discovery or the /d/ segment of its URL.

Example

curl -X POST https://app.chirply.io/api/v1/actions/google_sheets.list_tabs \
  -H "Authorization: Bearer chp_live_…" \
  -H "Content-Type: application/json" \
  -d '{
    "connection_id": "2f6a1c1e-6c3b-4c62-9f6e-8a2d4b7c9e11",
    "spreadsheet_id": "2f6a1c1e-6c3b-4c62-9f6e-8a2d4b7c9e11"
  }'
Test with your API key

Over MCP the same operation is the tool google_sheets_list_tabs at https://app.chirply.io/api/mcp, same bearer token, same input.

Sheets row watches

google_sheets.list_watchesread

Lists account row-watch cursors, last successful poll, change counts and durable failures. Does not expose saved row contents or trigger workflows.

Parameters

No parameters — POST an empty body.

Example

curl -X POST https://app.chirply.io/api/v1/actions/google_sheets.list_watches \
  -H "Authorization: Bearer chp_live_…" \
  -H "Content-Type: application/json" \
  -d '{}'
Test with your API key

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

FieldTypeRequiredDescription
connection_idstring (uuid)requiredWorkspace-shared Google Sheets connection ID; never a Gmail or Calendar connection.
spreadsheet_idstringrequiredGoogle spreadsheet ID from discovery or the /d/ segment of its URL.
sheet_idintegerrequiredNumeric worksheet/tab ID (gid), stable across tab renames.
header_rowintegeroptionalOne-based header row. Blank and duplicate labels get unique positional col_a, col_b mapping keys. Default: 1
expected_headersstring[]optionalHeader labels from discovery. When provided, any header reorder or change fails before reading mapped rows or writing cells.
start_rowintegeroptionalOne-based first data row; defaults to header_row + 1. Pagination is positional and not a snapshot.
limitintegeroptionalMaximum physical rows to read, including blank rows. Follow next_row to continue. Default: 100

Example

curl -X POST https://app.chirply.io/api/v1/actions/google_sheets.read_rows \
  -H "Authorization: Bearer chp_live_…" \
  -H "Content-Type: application/json" \
  -d '{
    "connection_id": "2f6a1c1e-6c3b-4c62-9f6e-8a2d4b7c9e11",
    "spreadsheet_id": "2f6a1c1e-6c3b-4c62-9f6e-8a2d4b7c9e11",
    "sheet_id": 1
  }'
Test with your API key

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

FieldTypeRequiredDescription
watch_idstring (uuid)requiredWatch ID in this account.
enabledbooleanrequiredWhether scheduled polling is enabled.
reset_baselinebooleanoptionalDiscard prior snapshot and silently establish a new baseline; changes since the old snapshot will not trigger workflows. Default: false

Example

curl -X POST https://app.chirply.io/api/v1/actions/google_sheets.set_watch \
  -H "Authorization: Bearer chp_live_…" \
  -H "Content-Type: application/json" \
  -d '{
    "watch_id": "2f6a1c1e-6c3b-4c62-9f6e-8a2d4b7c9e11",
    "enabled": true
  }'
Test with your API key

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

FieldTypeRequiredDescription
connection_idstring (uuid)requiredWorkspace-shared Google Sheets connection ID; never a Gmail or Calendar connection.
spreadsheet_idstringrequiredGoogle spreadsheet ID from discovery or the /d/ segment of its URL.
sheet_idintegerrequiredNumeric worksheet/tab ID (gid), stable across tab renames.
header_rowintegeroptionalOne-based header row. Blank and duplicate labels get unique positional col_a, col_b mapping keys. Default: 1
expected_headersstring[]optionalHeader labels from discovery. When provided, any header reorder or change fails before reading mapped rows or writing cells.
key_columnstringrequiredColumn to match by typed exact equality, e.g. col_a. Use a unique immutable business key.
key_valuestring | number | booleanrequiredLiteral cell value. Text is written RAW, never interpreted as a formula; empty text clears the cell.
valuesmap of string → objectrequiredFields keyed by discovery keys such as col_a. Unspecified columns are preserved on update and blank on append.
expected_cellsarray of (string | number | boolean)requiredExact cells from the last find result. Update fails if the uniquely matched row changed; never accepts a stale row number.
exclusive_edit_confirmedtruerequiredConfirm 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.

Example

curl -X POST https://app.chirply.io/api/v1/actions/google_sheets.update_row \
  -H "Authorization: Bearer chp_live_…" \
  -H "Content-Type: application/json" \
  -d '{
    "connection_id": "2f6a1c1e-6c3b-4c62-9f6e-8a2d4b7c9e11",
    "spreadsheet_id": "2f6a1c1e-6c3b-4c62-9f6e-8a2d4b7c9e11",
    "sheet_id": 1,
    "key_column": "example",
    "key_value": "example",
    "values": {},
    "expected_cells": [
      "example"
    ],
    "exclusive_edit_confirmed": true
  }'
Test with your API key

Over MCP the same operation is the tool google_sheets_update_row at https://app.chirply.io/api/mcp, same bearer token, same input.

The machine-readable version of this page is GET https://app.chirply.io/api/v1/actions?domain=google_sheets — same operations, with full JSON Schemas. Authentication, errors and rate limits are covered in the API documentation home.