Automation & Workflows Tutorial · 10 min

How to Connect n8n and Google Sheets (Without Getting Lost in Google Cloud)

Disclosure: Some links in this article are affiliate links. If you purchase through them, we may earn a small commission at no extra cost to you.

Why does connecting a spreadsheet to an automation tool require a detour through Google’s developer console?

The honest answer: commercial platforms hide this plumbing behind a subscription wall. n8n hands you the keys instead, which means 20 minutes of setup now saves you hundreds per year in platform fees.

Quick answer: Connect Google Sheets to n8n by creating an OAuth credential in Google Cloud Console (two strings: Client ID and Client Secret), pasting them into n8n’s credential screen, and approving one browser pop-up. The whole process takes about 20 minutes. Format your sheet with plain headers in Row 1 and no merged cells before you start.

The math: Time to implement: ~20 min | Tasks automated: any read/write to Google Sheets | Weekly time reclaimed: ~2-4 hours
TL;DR:
  • Format your Google Sheet as a flat database first or n8n throws errors.
  • n8n’s Google Sheets node needs an OAuth credential from Google Cloud Console.
  • Total setup is about 20 minutes and replaces recurring automation platform fees.
Heads up: Pricing changes. All figures in this article are accurate as of May 2026. Verify current pricing directly on the tool’s website before making a purchase decision.

The 20-Minute Setup Hurdle (And Why It Saves You Real Money)

You are trading 20 minutes of free setup for what paid platforms charge hundreds a year to hide.

Most tutorials dump you straight into Google Cloud Platform (GCP) documentation written for software engineers. The actual hard part, though, has nothing to do with GCP. The part that breaks non-technical users happens before they touch a single API setting: their Google Sheet is not formatted like a database, so n8n cannot read it cleanly.

OAuth (Open Authorization) is a handshake protocol that lets n8n access your Google Sheet on your behalf without ever seeing your Google password. Think of it like a valet key: it grants limited access to one specific thing.

Once the connection is live, the n8n Google Sheets node handles dozens of operations: reading rows, appending data, updating cells, deleting entries. You can build workflows that pull form submissions into your CRM, sync invoice line items, or push new leads into a follow-up sequence. For a broader look at what n8n can do, see our guide to n8n automation for solopreneurs.

TaskThe Old WayThe AI Way (n8n + Sheets)Time Saved
Move form leads to CRMCopy-paste each row manuallyn8n reads new rows, pushes to CRM automatically~30 min/day
Update inventory countsOpen sheet, find row, edit celln8n updates cell when order status changes~15 min/day
Send follow-up emails from sheet dataFilter sheet, copy emails, paste into email tooln8n reads filtered rows, triggers email node~20 min/day

Prerequisites

Before you start, confirm you have these four things ready:

  • A Google account (personal Gmail or Google Workspace both work)
  • An n8n instance running (cloud trial or self-hosted community edition)
  • A Google Sheet with data you want to automate (even a test sheet with 5 rows works)
  • A modern browser (Chrome or Firefox recommended for the OAuth pop-up)

n8n Cloud starts at $20/month billed annually. The self-hosted Community Edition is free with unlimited executions. If you handle sensitive client data (medical, legal, financial), read our guide on whether n8n is HIPAA compliant before putting production data through any workflow.

Step 1: Prep Your Google Sheet (The Rules of Rows and Columns)

The upshot: n8n reads your sheet like a database table, so structure it like one or nothing works.

n8n’s Google Sheets node expects a flat, predictable structure. Row 1 is your header row. Every column gets a unique, plain-text name. Every row below is one record. That is the entire schema.

Here is what breaks it:

  1. Delete all merged cells. Select the entire sheet (Ctrl+A or Cmd+A), then look for the merge button in the toolbar and click “Unmerge.” Merged cells make n8n read the wrong column values for every row below the merge.
  2. Put headers in Row 1 only. No blank Row 1 with headers in Row 2. No title row above the headers. n8n uses Row 1 to name each field in the data it returns. If Row 1 says “Acme Roofing Lead Tracker” instead of “First Name | Email | Phone,” every field name is wrong.
  3. Remove blank columns between data columns. A blank Column C between Column B and Column D makes n8n think your data ends at Column B.
  4. Use plain text in headers. No special characters, no line breaks inside a cell, no emojis. “first_name” or “First Name” both work. “First 🏠 Name” does not.
  5. Freeze Row 1. Go to View, then Freeze, then 1 Row. This prevents accidental sorting from mixing headers into your data.

You will know this step worked when: your sheet has one clean header row at the top, no merged cells anywhere, and no blank columns between data columns. The whole thing should look like a boring, rectangular table. That is exactly what you want.

Time estimate: 3-5 minutes.

Heads up: If your sheet has multiple tabs (worksheets), n8n connects to one tab at a time. You will pick which tab during the node setup in the next step. Name your tabs clearly now. “Sheet1” works, but “January Leads” is easier to find later.

Step 2: Get Your OAuth Credentials from Google Cloud Console

The short version: you need exactly two strings from Google Cloud. Ignore everything else on that screen.

This is the step that scares people, and the fear is reasonable. Google Cloud Console is built for developers managing server fleets. You are using about 0.1% of it. Think of this like walking into a hardware warehouse to buy two specific bolts. You do not need to understand the entire inventory system.

Get Your Free AI Tools Starter Kit

Take the 2-minute quiz to find your AI match — plus get the tools, checklist, and 50 prompts matched to your business type.

Take the Quiz →

Step 2a: Create a Project

  1. Go to console.cloud.google.com and sign in with the same Google account that owns your sheet.
  2. Look for a project selector near the top of the page (it might say “Select a project” or show an existing project name). Click it, then click “New Project.”
  3. Name it something you will recognize. “n8n Sheets” works fine. Click Create.
  4. Wait about 10 seconds for Google to finish setting it up, then make sure it is selected as your active project.

Time estimate: 2 minutes.

Step 2b: Enable the Google Sheets API and Google Drive API

  1. In the search bar at the top of the console, type “Google Sheets API” and select it from the results.
  2. Click “Enable.”
  3. Go back to the search bar, type “Google Drive API,” and click Enable on that one too.

You need both. The Sheets API handles reading and writing cell data. The Drive API is what populates the spreadsheet picker inside n8n — without it, the dropdown to choose your spreadsheet will show up empty.

Time estimate: 2 minutes.

Google now breaks this into two parts: Consent Screen first, then the actual OAuth Client ID.

Part 1 — Consent Screen

  1. In the left sidebar under “APIs & Services,” click “OAuth consent screen.”
  2. Under “User Type,” select “External” (works for personal Gmail; Workspace orgs can choose Internal). Click Create.
  3. On the Branding screen, fill in App name (e.g., “n8n Integration”) and your email for both the support and developer contact fields. Click Save and Continue.
  4. On the Audience screen, leave Publishing status as Testing. Do not click “Publish App.” Testing mode skips Google’s verification process, which is required for public apps but unnecessary for personal or small-team use.
  5. Under “Test users,” click “Add Users” and enter the Gmail address that owns the spreadsheet you set up in Step 1. Click Save and Continue.
  6. On the Scopes screen, click “Add or Remove Scopes,” search for “Google Sheets API,” and check .../auth/spreadsheets. Click Update, then Save and Continue.
  7. Review the summary and click “Back to Dashboard.”

Part 2 — Create the OAuth Client ID

  1. Click “Credentials” in the left sidebar.
  2. Click “Create Credentials” and choose “OAuth client ID.”
  3. For Application type, select “Web application.”
  4. Under “Authorized redirect URIs,” add your n8n callback URL. Local installs: http://localhost:5678/rest/oauth2-credential/callback. n8n Cloud: https://.app.n8n.cloud/rest/oauth2-credential/callback.
  5. Click Create. Copy both the Client ID and Client Secret. Store them somewhere safe — you will paste them into n8n in Step 3.

Heads up: Do not share your Client Secret publicly. Treat it like a password. If you expose it, return to the Credentials page and rotate it immediately.

Time estimate: 10 minutes.

Service Account Alternative (When OAuth Feels Like Too Much)

If you do not want to deal with OAuth pop-ups, Service Accounts offer a quieter path:

  1. In Google Cloud Console, go to Credentials → Create Credentials → Service Account.
  2. Give it a name and click through the creation flow.
  3. Click on the Service Account, go to the “Keys” tab, and create a new JSON key. Download the file.
  4. In your Google Sheet, click “Share” and add the Service Account’s email (it looks like [email protected]) as an Editor.
  5. In n8n, when creating the Google Sheets credential, choose “Service Account” and paste the JSON key file contents.

The trade-off: Service Accounts can only access sheets explicitly shared with them. OAuth can access any sheet the authenticated user owns. Pick what fits.

Step 3: Connect Google Sheets in n8n and Run a Test

This is the step most tutorials skip. Here is every click.

  1. Open your n8n instance. In the left sidebar, click Credentials, then New Credential.
  2. Search for “Google Sheets” and select Google Sheets OAuth2 API.
  3. Paste your Client ID into the Client ID field and your Client Secret into the Client Secret field. Click Save.
  4. Click Sign in with Google. A browser pop-up will open. Choose the Google account you added as a Test User in Step 2c and click Allow. The pop-up closes and n8n shows “Connected.”
  5. Now create a new workflow. Add a Google Sheets node.
  6. In the node settings, set Credential to the one you just created.
  7. Set Operation to Read Rows. Under Spreadsheet, click the selector and choose your sheet from the dropdown (this is why you enabled Google Drive API — it populates that list). Pick your tab under Sheet.
  8. Click Test Step. You should see your rows return as JSON in the output panel.
  9. Add a second Google Sheets node. Set Operation to Append Row. Map a test value to one of your header columns. Click Test Step. Check your sheet — the new row should appear.

That read-then-write test confirms the full connection is working in both directions. You are done with setup.

Time estimate: 5 minutes.

Your Next Move

Pick one manual spreadsheet task you do every week, copying data from an email into a tracker, updating a status column after checking another tool, anything you repeat. Build a two-node workflow in n8n: a trigger (Schedule or Webhook) connected to a Google Sheets node. Run it once. Verify the data lands where it should.

Automating property data is another common goal, and whether Make.com integrates with Zillow is worth exploring if real estate fits your workflow.

One working workflow teaches you more than ten tutorials. Start with the smallest version that saves you five minutes, then expand from there. (Source: workflow automation fundamentals.) (Source: ServiceTitan developer documentation.)

abstract AI illustration related to n8n google sheets integration — AIscending guide

Before You Go — Grab Your Free AI Tools Starter Kit

Join 250+ small business owners getting smarter about AI. Take the 2-minute quiz and get your personalized toolkit.

Get Your Free Kit →

Frequently Asked Questions

Why do I get a redirect_uri_mismatch error when connecting Google Sheets in n8n?

This error means the callback URL in your n8n instance does not match what you entered in Google Cloud Console. Go back to Credentials in Google Cloud, open your OAuth Client ID, and check the ‘Authorized redirect URIs’ field. For local n8n installs the correct URI is http://localhost:5678/rest/oauth2-credential/callback. For n8n Cloud it is https://.app.n8n.cloud/rest/oauth2-credential/callback. Copy the URL exactly, a trailing slash or http vs https mismatch will trigger the error every time.

Why is my spreadsheet dropdown empty when I try to select a sheet in n8n?

You probably only enabled the Google Sheets API and skipped the Google Drive API. The Drive API is what lets n8n list and search your spreadsheets in the dropdown picker. Go back to Google Cloud Console, search for ‘Google Drive API,’ and click Enable. Reconnect the credential in n8n and the dropdown will populate.

Can n8n automatically write web form submissions into a Google Sheet?

Yes. A typical workflow uses the Webhook node to capture form submissions, then a Google Sheets node set to ‘Append Row’ to write each submission as a new row. No code required. Setup takes about 30 minutes once your OAuth credential is working.

Do I need to know how to code to fix a broken n8n workflow?

No. The visual editor and error messages pinpoint most issues, usually incorrect field mapping or a credential problem. For trickier cases, the community.n8n.io forum provides free, step-by-step guidance from other users.

How we create this content

AIscending articles are researched using public documentation, verified user reviews, and published benchmarks, then written with AI assistance and editorially reviewed for accuracy. Some links on this site are affiliate links — we may earn a commission if you sign up, at no extra cost to you. Affiliate relationships never influence our recommendations. Read our editorial policy for details.