# n8n Google Sheets Node Cheat Sheet: Get, Append, Update

> Every n8n Google Sheets operation on one page: Get row(s), Append row, Append or update row, Update row, Column to match on and Map Automatically.

Source: https://learn.ynteractive.com/content/blog/n8n-google-sheets-node-cheat-sheet · Updated 2026-10-20 · Free from Stepthrough (https://learn.ynteractive.com)

Quick answer

The n8n Google Sheets node reads and writes rows: **Get row(s) in sheet** returns one item per row, **Append row in sheet** adds a row for each item, **Append or update row** adds or changes a row based on a **Column to match on**, and **Update row in sheet** changes rows it can match. For every operation you pick a **Credential**, a **Document** and a **Sheet** from the lists. The free [n8n Read, Add and Update Google Sheets Rows](https://learn.ynteractive.com/content/n8n-google-sheets-read-append-update) lesson uses all of them in one workflow.

Last updated October 20, 2026

[Take the free module →](https://learn.ynteractive.com/courses/n8n-jump-start/12)Module 12 of the free [n8n Jump Start](https://learn.ynteractive.com/courses/n8n-jump-start) course, about 12 minutes. No account needed.

By [Robert Breen](https://learn.ynteractive.com/content/about) · Published October 20, 2026 · Updated October 20, 2026 · 4 min read

n8n · Google Sheets · Cheat sheet

## Which Google Sheets operation should I use?

| Operation | What it does | Example from the lessons |
| --- | --- | --- |
| [Get row(s) in sheet](https://learn.ynteractive.com/content/glossary/get-rows) | Returns every row (or filtered rows) as items | Read 8 content requests; read 5 client rows |
| [Append row](https://learn.ynteractive.com/content/glossary/append-row) in sheet | Adds one new row per item | Add 7 [action items](https://learn.ynteractive.com/content/glossary/action-items) from two meetings |
| Append or update row | Updates the row whose match column has this value, otherwise appends | Add Jordan Lee once, even when the workflow runs twice |
| Update row in sheet | Changes existing rows matched by a column | Write an AI description into each row, matched on Email |
| Delete rows or columns | Removes rows | Clean-up only, test on a copy |
| Clear sheet | Empties the sheet | Rebuilding a report from scratch |

## What are Credential, Document and Sheet?

**Credential** is the Google login n8n uses. **Document** is the spreadsheet. **Sheet** is the tab inside it.

Pick all three from the lists. A credential for another Google account will not list your spreadsheet. A template brings no login, so the box is empty until you choose one, and it may carry a tab code from the author's sheet: in the lesson's test that gave "Sheet with ID gid=0 not found" until the tab was picked from the list. Connect Google Sheets and Gmail to n8n covers the credential.

## What does Get row(s) return?

One [item](https://learn.ynteractive.com/content/glossary/item) per row, with your header names as field names. In the lessons the OUTPUT shows **8 items** for eight content requests, **5 items** for five clients, **6 items** for six jobs. Row 1 must hold the column names, and the data starts in row 2. Each item also gets a `row_number` field.

## When should I use Append or update row?

Whenever the same record might arrive twice, like a form that can be resubmitted or a workflow that runs more than once.

In the lesson the original template used plain **Append row**, so every run added the same person again. Switching to **Append or update row** with **Column to match on** set to **Email** fixed it: run the workflow twice, and the sheet still has nine rows, with one Jordan Lee. Pick a column that is unique per record. Email works for people; an invoice number works for invoices. [n8n Append or Update Row](https://learn.ynteractive.com/content/blog/n8n-append-or-update-row) goes deeper.

## How does Update row know which row to change?

Through **Column to match on**. n8n looks for the row whose match column equals the value you give it and updates the other mapped columns.

In the lesson, **Update Sheets data** matches on **Email**, reading each row's Email from **Get Rows from Google Sheets**, and fills **Description** with the AI's sentence. **9 items** in, nine rows updated. A row with a blank Email can't be matched.

## Map Each Column Manually or Map Automatically?

**Map Automatically** matches incoming field names to column names; **Map Each Column Manually** lets you put an [expression](https://learn.ynteractive.com/content/glossary/expression) in each column.

In the [meeting notes lesson](https://learn.ynteractive.com/content/meeting-notes-to-action-items-google-sheets-ai-n8n) the AI returns fields called task, owner and due, and the Action Items sheet's headers are exactly task, owner and due, so Map Automatically works. If the names differ even by a capital letter, use manual mapping. Leaving manual mapping empty fails with "At least one value has to be added under Values to Send".

## Try it free, step by step

**n8n: Read, Add and Update Google Sheets Rows with an AI Step**. Learn n8n's three core Google Sheets moves on a made-up request list: read the rows, add a new one without duplicates, then let an AI step write a description and update each row. You do every step yourself in a practice copy of n8n, it checks your work as you go, and “Do it for me” finishes any step you get stuck on. Free, and nothing touches your real accounts.

[Start the free lesson](https://learn.ynteractive.com/modules/n8n-google-sheets-read-append-update)

[Or read the full step-by-step guide](https://learn.ynteractive.com/content/n8n-google-sheets-read-append-update)

## Quick expressions for sheet columns

| Column | Expression |
| --- | --- |
| A simple field | `{{ $json.Email }}` |
| A header with a space | `{{ $json["Tech Email"] }}` |
| From an earlier node | `{{ $('Get row(s) in sheet').item.json.Email }}` |
| AI output | `{{ $json.output.description }}` |
| A timestamp | `{{ $now.toFormat('yyyy-MM-dd HH:mm') }}` |

## Key takeaways

- Get row(s) gives one item per row; every later node runs once per item.
- Use Append or update row with a unique Column to match on to avoid duplicates.
- Always pick Credential, Document and Sheet from the lists.
- Map Automatically only works when field names equal the column headers exactly.

## Frequently asked questions

**How do I read a Google Sheet in n8n?**

Add Google Sheets, choose Get row(s) in sheet, pick your credential, document and sheet, then click Execute step. The OUTPUT shows one item per row.

**How do I stop n8n adding duplicate rows?**

Use Append or update row and set Column to match on to a unique column, such as Email.

**Can n8n update a single cell?**

Update row changes the columns you map on the rows it matches, so mapping only one column changes only that cell in each matched row.

**Which course covers this?**

[n8n Jump Start](https://learn.ynteractive.com/courses/n8n-jump-start) and [n8n Intermediate](https://learn.ynteractive.com/courses/n8n-intermediate) both include the Google Sheets lesson. Also see [Google Sheets as a Database](https://learn.ynteractive.com/content/blog/google-sheets-as-a-database).

## Free lessons in this post

- [n8n: Read, Add and Update Google Sheets Rows with an AI Step](https://learn.ynteractive.com/content/n8n-google-sheets-read-append-update): Learn n8n's three core Google Sheets moves on a made-up request list: read the rows, add a new one without duplicates, then let an AI step write a description and…
- [n8n: Turn Meeting Notes into Action Items in a Google Sheet](https://learn.ynteractive.com/content/meeting-notes-to-action-items-google-sheets-ai-n8n): Build an n8n workflow that reads your meeting notes from a sheet, has AI pull out who agreed to do what by when, and adds one row per task to an Action Items sheet.
- [Daily Job Alerts: Email Each Tech Their Jobs from Google Sheets with n8n](https://learn.ynteractive.com/content/n8n-daily-job-alerts-google-sheets-gmail): Every morning at 7, n8n reads a plumbing company's jobs sheet, skips anything not assigned yet, and emails each job to the tech it's assigned to — customer, address…

## Watch it in a free lesson: n8n AI Agent Tutorial: Save Social Media Ideas to Google Sheets

### AI Social Media Idea Agent: video walkthrough

Full walkthrough · 8:07 · with captions

Build an AI agent for BrightPath Marketing that generates social media post ideas and saves them to Google Sheets — chat trigger, AI Agent, system prompt, model, memory, and the Sheets tool. The whole lesson narrated step by step, recorded in Stepthrough’s simulated practice environment.

[Watch it with chapters and the full transcript](https://learn.ynteractive.com/content/n8n-ai-agent-tutorial-google-sheets#watch)

From the free lesson [n8n AI Agent Tutorial: Save Social Media Ideas to Google Sheets](https://learn.ynteractive.com/content/n8n-ai-agent-tutorial-google-sheets)

## Related terms

Plain-English definitions, each with an example from a free lesson.

[Get rows (reading a sheet)](https://learn.ynteractive.com/content/glossary/get-rows) · [Append row](https://learn.ynteractive.com/content/glossary/append-row) · [Action items](https://learn.ynteractive.com/content/glossary/action-items) · [Automation](https://learn.ynteractive.com/content/glossary/automation) · [Coda](https://learn.ynteractive.com/content/glossary/coda) · [Dispatching](https://learn.ynteractive.com/content/glossary/dispatching) · [Filter node](https://learn.ynteractive.com/content/glossary/filter-node) · [Google Sheets (as an automation database)](https://learn.ynteractive.com/content/glossary/google-sheets)

[The full AI glossary](https://learn.ynteractive.com/content/glossary)

## Related prompts

- [Appointment reminder text prompt and examples](https://learn.ynteractive.com/content/prompts/appointment-reminder-text-prompt): Appointment reminder text examples and a ChatGPT prompt that writes day-before reminders: time window, who is coming, one prep…
- [Automation time savings estimate prompt](https://learn.ynteractive.com/content/prompts/automation-time-savings-estimate-prompt): Estimate what one automation saves from your own numbers only: minutes before and after, setup and upkeep, costs you look up…
- [Rental property repair coordination prompt](https://learn.ynteractive.com/content/prompts/rental-property-job-coordination-prompt): Coordinate a repair at a rental: a clear email to the owner or property manager about approval and billing, and a short access…
- [Tech daily job briefing prompt](https://learn.ynteractive.com/content/prompts/tech-daily-job-briefing-prompt): Turn today's job schedule and office notes into a short morning briefing for each technician, in time order, with unassigned…

[All free prompt templates](https://learn.ynteractive.com/content/prompts)

## Visual guides

The same ideas as quick visual guides: swipe through the slides, or read each one as text.

- [Email each tech their jobs at 7am with n8n](https://learn.ynteractive.com/content/visual/job-alerts-n8n): Every morning someone at Rapid Flow Plumbing copies the day's jobs into emails, one tech at a time. Hand it to n8n.
- [Mistake to Avoid: Scheduling Before Setting the Timezone](https://learn.ynteractive.com/content/visual/mistake-scheduling-before-the-timezone): A visual tip for n8n schedules: set the workflow timezone before the schedule, so 7am means 7am where your business is.
- [Mistake to Avoid: Sending Every Job Email to One Address](https://learn.ynteractive.com/content/visual/mistake-one-address-for-every-job): A visual tip for n8n and Gmail: make the To field an expression for the Tech Email column, written in square brackets because of the space.

[All visual guides](https://learn.ynteractive.com/content/visual)

## Keep reading

- [n8n Google Sheets Errors: Sheet Not Found and 5 More](https://learn.ynteractive.com/content/blog/n8n-google-sheets-errors): Fix n8n Google Sheets errors: "Sheet with ID gid=0 not found", "At least one value has to be added under Values to Send", permissions and columns.
- [n8n OpenAI Node Errors: 401, Empty Model List, Raw Braces](https://learn.ynteractive.com/content/blog/n8n-openai-node-errors): Fix n8n OpenAI node problems: "401 Authorization failed", a Model list that won't load, {{ }} sent as plain text, long answers and costs per item.
- [n8n Workflow Ideas for Operations Teams: 10 to Build](https://learn.ynteractive.com/content/blog/n8n-workflow-ideas-for-operations): Ten n8n and Make ideas for operations teams: meeting notes to tasks, urgent request routing, 5pm summaries, morning assignments and approvals.

[All blog posts](https://learn.ynteractive.com/content/blog) · [All free tutorials](https://learn.ynteractive.com/content)
