Zapier connects Google Sheets to other apps — your CRM, email marketing tool, Slack, project management software — without writing code. When something happens in Sheets, Zapier can trigger an action somewhere else, and vice versa.
This tutorial covers how to set up a Zap with Google Sheets as the trigger, the most common use cases, and where Zapier doesn't help.
---
How Zapier Works With Google Sheets
Every Zap has two parts:
- Trigger — what starts the automation ("when a new row is added to Google Sheets")
- Action — what happens next ("create a contact in HubSpot")
Zapier polls Google Sheets for changes rather than receiving real-time webhooks. The default polling interval on a free account is every 15 minutes. Paid plans poll more frequently (down to 1–2 minutes on higher tiers).
---
Setting Up Google Sheets as the Trigger
- Go to zapier.com and click Create Zap
- Search for Google Sheets and select it as the trigger app
- Choose a trigger event:
| Trigger | When it fires | |---------|--------------| | New Spreadsheet Row | A new row is added anywhere in the sheet | | New or Updated Spreadsheet Row | A row is added OR an existing row changes | | New Spreadsheet Row (Team Drive) | Same, but for shared Team Drive files |
Best practice: Use "New Spreadsheet Row" when you're processing new submissions (form responses, new orders). Use "New or Updated Spreadsheet Row" when you need to react to status changes.
- Connect your Google account and select the spreadsheet and sheet tab
- Zapier will ask for a test row — make sure your sheet has at least one data row so Zapier can confirm the field mapping works
---
The Most Common Google Sheets → Zapier Workflows
Google Sheets → CRM (HubSpot, Salesforce, Pipedrive)
New row in a lead sheet → create or update a contact in your CRM. This is the most-built Zapier workflow for Sheets users.
Setup: Trigger = New Spreadsheet Row (your lead sheet). Action = Create Contact in [your CRM], map columns to contact fields (email → email, company → company, etc.).
Google Forms → Google Sheets → Notification
Google Forms already writes to Sheets automatically. Use Zapier to send a Slack message or email when a new form response row appears.
Setup: Trigger = New Spreadsheet Row (the form responses tab). Action = Send a Slack message with the row data.
This is often simpler than trying to trigger directly from Google Forms.
Google Sheets → Email Marketing (Mailchimp, ConvertKit)
New row with email address → add subscriber to a list or sequence.
Setup: Trigger = New Spreadsheet Row. Action = Add/Update Subscriber in your email tool.
External App → Google Sheets
When something happens in another app, add a row to Sheets. Examples: new sale in Stripe → add row to revenue tracker. New customer in your app → add row to customer list.
Setup: Trigger = whatever event in the external app. Action = Create Spreadsheet Row in Google Sheets.
---
Mapping Fields
After selecting your trigger sheet, Zapier reads the column headers from row 1 and makes them available as fields you can map to the action.
If your trigger row has columns A (Name), B (Email), C (Status), you'll see Name, Email, and Status as mappable fields.
Important: Zapier uses the header row to name fields. If your sheet doesn't have headers, or if column A is empty, the mapping will be unreliable. Keep your header row in row 1.
---
Filtering Rows
You often don't want to trigger the Zap for every new row. Zapier's Filter step lets you add conditions:
- Only trigger if Status = "New"
- Only trigger if Amount > 100
- Only trigger if Email is not empty
Add a Filter step between the trigger and action by clicking the + button and choosing Filter.
---
Updating vs Creating Rows
Zapier can write to Google Sheets too:
| Action | What it does | |--------|-------------| | Create Spreadsheet Row | Appends a new row | | Update Spreadsheet Row | Updates an existing row by looking up a value | | Lookup Spreadsheet Row | Finds a row by column value (used to get data before updating) |
For "update a row," the most common pattern is: Lookup Row (find the row by email or ID), then Update Spreadsheet Row (change the status or add a timestamp).
---
When Zapier Isn't the Right Tool
Automations that stay entirely within Google's ecosystem — sending emails from Gmail, moving rows between tabs, generating PDFs from Drive. Apps Script handles all of this for free.
Real-time triggers — Zapier polls on a schedule. If you need to react to a sheet change within seconds, Apps Script's onEdit trigger is instant.
Complex logic — branching, loops, processing multiple rows. Use Make (formerly Integromat) for complex multi-path workflows, or Apps Script for maximum control.
Full comparison: Zapier vs Make for Google Sheets
---
Common Problems
My Zap fires for old rows
When you first set up a Zap with "New Spreadsheet Row," Zapier typically picks up the most recent existing row as a test. After the Zap is active, it only fires for rows added after activation. If it fires for old rows, check whether you set the trigger to "New or Updated" by mistake.
Zapier can't find my spreadsheet
The Google account connected to Zapier must have at least view access to the spreadsheet. If the file is in a shared drive, you may need the "Team Drive" trigger variant.
Column data is blank in the action
The column header in your sheet has a typo or trailing space. Zapier matches field names exactly. Check your header row.
---
What to Build on Top of This
- Zapier vs Make for Google Sheets — when to switch from Zapier to Make for more complex workflows
- Apps Script for Beginners — for automations that don't need to cross into external apps
- Can Google Sheets Replace a CRM? — if you're routing sheet data to a CRM, this covers what Sheets handles well vs when you need a real CRM
Don't want to set this up yourself? Describe your workflow and it'll be configured. Get it installed