Add Google Sheets Row
Append one row to a connected Google Sheet — the cheapest way to hand data from a conversation to a team that lives in a spreadsheet.
Getting here
Automate → Workflows, open a workflow, click + on the canvas, then pick Add Google Sheets Row under Add Steps.
Before you start
- An owner, admin or agent can add this step and save the workflow. Publishing that workflow — the thing that makes it run on live conversations — is an owner or admin action.
- Building and running workflows depends on your plan; see pricing.
- A Google account connected in Settings → Integrations, and the target spreadsheet shared with that account with edit access. Until connected, the drawer shows a connect card instead of the fields.
Set up
- Open the workflow and click + where the row belongs.
- Pick Add Google Sheets Row.
- Paste the spreadsheet's link and click Load — this reads its tabs and column headers, which only label the inputs below.
- Pick the Tab if there is more than one.
- Fill in Row to add, one field per column, with text or
{{…}}placeholders. - Save the step, then publish the workflow.
Fields
- Spreadsheet link
- The sheet's own URL. Load fetches its tabs and column headers.
- Tab
- Which sheet tab to append the row to.
- Limits: Only shown once Load has run.
- Row to add
- One value per column, labelled from the sheet's header row when known.
- Limits: Columns are positional — the first value always goes to column A, the second to column B, and so on — whether or not a header was ever loaded.
How it works
- What leaves Inchat, and when: the instant the step runs, one call to the Google Sheets API appends a single row to the named tab, using this workspace's connected Google account. The values sent are exactly what you configured, with every
{{…}}placeholder already resolved. - The row is appended after whatever the sheet already has — it never overwrites or inserts in the middle.
- A value that starts with
=is written as a formula, exactly as if it had been typed into the sheet by hand — Google's own write mode for this call treats input the same way a person typing into a cell would. - Columns are positional on the wire: the header row shown in the drawer only labels which box maps to which column at the time you loaded it. If a column is reordered in the sheet afterwards, the step keeps writing to the same position, not the same header.
When it fails
- Google Sheets is not connected for this workspace: the step fails with Google Sheets is not connected — connect it in Settings › Integrations., before any request is sent.
- The connected account no longer has edit access to the sheet (never shared, or removed): Google answers 403 and the step fails with That Google account cannot edit this spreadsheet — share the sheet with it, with edit access.
- The spreadsheet id is wrong, deleted, or the connected account cannot see it: Google answers 404 and the step fails with That spreadsheet does not exist, or the connected account cannot see it.
- Google rejects a call made with a cached access token that Google itself already revoked (this workspace's stored expiry has not caught up yet): the step fails with Google rejected the connection — reconnect Google Sheets in Settings., and Settings still shows Connected — reconnecting is on the operator, this path does not flip it to Disconnected on its own.
- Separately, when the stored token is due for its own routine refresh and that refresh call to Google fails (a genuinely revoked grant): the step fails with Google Sheets is not connected — connect it in Settings › Integrations., and this time Settings is updated to show Disconnected, since the refresh failure is what the integration record acts on.
- Google is rate-limiting this workspace: the step fails with Google Sheets is rate limiting this workspace — try again shortly.
- A failed row does not stop the run: the step is recorded failed and the flow moves straight to the next one, and nothing is written to the sheet.
Limits
- It publishes even with nothing connected. The connection card blocks editing the fields in the drawer, but not saving or publishing the workflow — a step left this way fails, once per run, every time it runs, until Google Sheets is connected.
- It only appends — it cannot update an existing row, look one up, or delete one.
- Column mapping is positional, not by header name — see How it works. Reordering the sheet's columns without editing this step silently misfiles the row.
- A row is capped at 50 values, each up to 4,000 characters.
- The connection is per workspace, not per sheet: anyone who can build a workflow here can point this step at any spreadsheet the connected Google account can edit, not only the one it was set up for.
Use cases
- Log every completed order to a shared spreadsheet the fulfilment team already works from, right after Move Deal to Stage marks a deal won.
- Append a row for every lead that answers an Ask a Question step, so sales can work the list without opening Inchat.
Related
- HTTP Request — Call an outside API over HTTPS and keep its response for later steps and conditions. Two things to know before using it today: placeholders in the URL and body are not resolved, and production had no host on its outbound allow-list at the time of writing — see Limits.
- Workflows: how a flow runs — A workflow is one trigger, optional conditions and an ordered list of steps; only a published workflow runs, and this article explains how a run starts, forks, pauses, fails and stops.
Reading this with an AI assistant? Plain Markdown version.