> For clean Markdown of any page, append .md to the page URL. > For a complete documentation index, see https://docs.meetgail.com/platform/workflows/node-reference/integrations/google-sheets/google-sheets-append-rows/llms.txt. > For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.meetgail.com/_mcp/server. # Google Sheets Append Rows > Adds one or more rows to a Google Sheets tab, matching each row's fields to columns by header name. The Append Rows node adds new rows to the bottom of a spreadsheet tab. You give it rows made of named fields, and it lines each field up with the matching column by header name, so you do not have to worry about column order. ## When to use it * You want to log the result of a run to a spreadsheet your team watches. * You are building up a running list, one or several rows at a time. * You want to hand structured data to a sheet without minding column order. ## Inputs | Field | What it's for | Example | | ----------- | ----------------------------------------------------------------------- | ----------------------------------------- | | Spreadsheet | The spreadsheet to write to, identified by the id from its web address. | `1AbC...xYz` | | Rows | One or more rows, each made of named fields keyed by column header. | `{ "Name": "Sarah Chen", "State": "FL" }` | | Tab | The tab to append to. Leave blank to use the first tab. | `Leads` | Any field can be a fixed value or an [expression](/platform/workflows/core-concepts/expressions/using-expressions-in-nodes) that reads from an earlier step. Field names are matched to headers without regard to case; fields that match no column are ignored, and columns with no matching field are left blank. ## Outputs | Field | What you get back | | ---------- | --------------------------- | | Rows added | How many rows were written. | ## Example Chen Insurance Group tracks inbound leads in a Google Sheet with columns for name, email, and state. When a new lead comes in, a workflow uses Append Rows to add a row - `{ "Name": "Marcus Johnson", "Email": "marcus@example.com", "State": "FL" }` - to the "Leads" tab. Because rows match on header name, the fields land in the right columns no matter how the sheet is arranged. ![The Google Sheets Append Rows node configuration panel, showing the spreadsheet, rows, and tab.](/_fern-img/1d85f2c57d31182a2fe9fa1f0e519449d9512af6df410dff69914078e7e1a19f.webp) > **Note** > > The tab needs a header row in row 1, and rows match to those headers by name. If > you name a specific tab and later rename it in Sheets, the saved workflow will > break - leave the tab blank to always target the first tab, or update the > workflow after renaming. ## Related nodes #### [Create CSV](/platform/workflows/node-reference/files-and-documents/create-csv) Build a CSV file from the same kind of row data. #### [For Each](/platform/workflows/node-reference/logic-and-flow/for-each) Loop over a list to build the rows you append. #### [Check](/platform/workflows/node-reference/logic-and-flow/check) Branch on whether the append succeeded. > Documentation for Gail, the AI platform for financial services. Learn how to set up GailGPT and Gail Agent to automate customer communications for insurance, banking, and finance.