Small BusinessReal EstateFinanceMarketingLegalOperationsSalesTemplatesPricingDocs
Get started

Step Guide: Google Sheets

Data & Files

Import, export, or read a single row from Google Sheets

Overview

The Google Sheets step connects your workflow to Google Spreadsheets. Import reads all rows into a typed array, Export writes a rows array to a spreadsheet, and Read Row looks up a single row by matching a column value. Requires a connected Google integration.

When to Use

  • Import data from a Google Sheet to process row by row in a workflow
  • Export processed results to a new Google Spreadsheet for sharing or review
  • Look up a single row by an email, ID, or name to enrich downstream steps
  • Build automated reporting pipelines that output to Google Sheets

How It Works

In Import mode, the step reads from a configured spreadsheet. The output field set is auto-generated from the sheet's column headers. Outputs {list: [...], list_count: N}. Connect to a For Each step to iterate. In Export mode, the step reads a list array from input and writes to a spreadsheet, either creating a new one or updating an existing one based on the write mode config (overwrite or append). Outputs {spreadsheet_url, spreadsheet_id, sheet_name, row_count, success, error}. In Read Row mode, the step scans the sheet for the first row whose match-column value matches a configured expression (using EQUALS or CONTAINS, case-insensitive). Outputs a flat object whose fields mirror the sheet headers, plus {found, success, error}.

Actions

Read All Rows
Read rows from a Google Spreadsheet
How it works
Reads from the spreadsheet configured via spreadsheetId. The output field set is created automatically from the sheet's column headers. Outputs a list array with typed items and a list_count. The spreadsheet must be selected in the step configuration.
  • The output field set is auto-generated from column headers. Select the spreadsheet in config to create it
  • Connect the output to a For Each step to process rows individually
Write List
Write rows to a Google Spreadsheet
How it works
Reads a list array from input (typically from a Collect step) and writes to a Google Spreadsheet. Configure the write mode (overwrite or append), spreadsheet title, sheet name, and write behavior. Outputs {spreadsheet_url, spreadsheet_id, sheet_name, row_count, success, error}.
  • Place after a Collect step to export loop results to a spreadsheet
  • Use the existing spreadsheet write mode to append to or overwrite an existing sheet
Read Matching Row
Look up a single row by matching a column value
How it works
Reads the chosen sheet, scans for the first row whose match-column value matches the configured match-value expression (EQUALS or CONTAINS, trimmed and lowercased), and returns a flat object whose fields mirror the sheet headers. Adds {found, success, error} for branching. No match is not an error — found is false.
  • Pick the match column from the dropdown — it is populated from the sheet headers
  • Use {{stepId.field}} expressions in match value to look up rows by upstream data
  • Branch on the found field to handle missing rows downstream
Write Row
Append a single row by mapping column values from upstream fields
How it works
Appends a single row to a Google Spreadsheet. Select a spreadsheet and sheet, then set a value for each column — either a static string or a reference to an upstream field. Outputs {spreadsheet_url, spreadsheet_id, sheet_name, list_count, success, error}.
  • Great for logging form submissions, recording events, or writing a single record to a spreadsheet
  • Column values can be static text, upstream field references, or a mix of both
  • Drag fields from an upstream step onto column entries in the graph view to map them quickly
Update Row
Update specific cells in a single row matched by a column value
How it works
Same row-lookup as Read Row, then overwrites the cells you list in field updates via Sheets batchUpdate. Other columns in the row stay untouched. With "Insert if missing" on, a missing row is appended (upsert) instead of returning found=false. Output is lean: {found, inserted, updated_row_number, success, error}.
  • Field updates are sparse — only the columns you list get written
  • Use {{stepId.field}} expressions in field updates to write upstream values into the row
  • Toggle Insert if missing for upsert behavior
Tips
  • Requires a Google integration. Connect your Google account in the integrations settings
  • Import auto-generates the output field set from sheet headers, so you don't need to define fields manually
  • Maximum array size is 5,000 rows