Beginner~8 min setupProductivity & CRMVerified April 2026
Google Sheets logo
Salesforce logo

How to Export Salesforce Pipeline to Google Sheets with Zapier

Automatically query Salesforce for open opportunities every morning and write them to a Google Sheet.

Steps and UI details are based on platform versions at time of writing β€” check each platform for the latest interface.

Best for

Sales teams who want automated morning pipeline reports without coding

Not ideal for

Teams needing real-time opportunity updates or complex data transformations

Sync type

scheduled

Use case type

export

Real-World Example

πŸ’‘

A 25-person SaaS sales team uses this to populate their Monday morning pipeline review spreadsheet. Before automation, their sales ops manager spent 30 minutes each day manually exporting and formatting opportunity data from Salesforce. Now the data appears automatically at 8 AM, and the team starts their weekly planning call with fresh numbers already formatted and ready to discuss.

What Will This Cost?

Drag the slider to your expected monthly volume.

/mo
505005K50K

Each platform counts differently β€” Zapier: 1 task per trigger. Make: 1 operation per module per record. n8n: 1 execution per run.

Prices shown for annual billing. Based on published pricing as of April 2026.

Estimated ROI

1000

min saved/mo

$583

labor value/mo

Free

no platform cost

Based on ~2 min manual effort per operation at $35/hr fully loaded labor cost.

Implementation

Before You Start

Make sure you have everything ready.

Salesforce account with API access (Professional edition or higher)
Google Sheets spreadsheet with column headers already set up
Zapier account (free tier works for testing, paid needed for daily automation)
Permission to access Salesforce opportunity records

Field Mapping

Map these fields between your apps.

FieldAPI Name
Required
Opportunity NameName
Account NameAccount.Name
AmountAmount
Stage NameStageName
Close DateCloseDate
2 optional fieldsβ–Έ show
Opportunity OwnerOwner.Name
Last Modified DateLastModifiedDate

Step-by-Step Setup

1

Dashboard > Create Zap > Schedule by Zapier

Create New Zap for Scheduled Export

Set up a new Zap that runs on a daily schedule to pull fresh opportunity data. The Schedule trigger is the foundation for your morning pipeline export.

  1. 1Click 'Create Zap' from your Zapier dashboard
  2. 2Select 'Schedule by Zapier' as your trigger app
  3. 3Choose 'Every Day' as the trigger event
  4. 4Set the time to 8:00 AM in your timezone
βœ“ What you should see: You should see a daily schedule trigger configured to fire at 8:00 AM with a green checkmark.
⚠
Common mistake β€” Don't pick 'Every Hour' thinking you'll change it later β€” Zapier charges a task for each trigger fire, even with no data.
2

Action > Salesforce > Find Records > Account

Connect Salesforce Account

Link your Salesforce org to Zapier using your login credentials. This establishes the connection for querying opportunity data.

  1. 1Click the + button to add an action step
  2. 2Search for and select 'Salesforce' from the app list
  3. 3Choose 'Find Records' as the action event
  4. 4Click 'Sign in to Salesforce' and enter your credentials
βœ“ What you should see: A green 'Connected' status appears next to your Salesforce account name with your org details visible.
⚠
Common mistake β€” Use a dedicated integration user account, not your personal login β€” if you leave the company, the Zap breaks.
Zapier settings
Connection
Choose a connection…Add
click Add
Google Sheets
Log in to authorize
Authorize Zapier
popup window
βœ“
Connected
green checkmark
3

Salesforce Action > Find Records > Search Criteria

Configure Opportunity Search Query

Set up the search parameters to find only open opportunities from your pipeline. This filters out closed deals and focuses on active prospects.

  1. 1Set 'Object' dropdown to 'Opportunity'
  2. 2In 'Search Field 1' select 'StageName'
  3. 3Set the operator to 'does not equal'
  4. 4Enter 'Closed Won,Closed Lost' in the value field
βœ“ What you should see: The query builder shows a filter for opportunities where StageName does not equal closed stages.
⚠
Common mistake β€” Salesforce stage names are case-sensitive β€” check your exact stage values in Setup > Opportunity Stages first.
4

Salesforce Action > Find Records > Search Field 2

Add Date Range Filter

Limit results to recently updated opportunities to keep your export focused and avoid hitting API limits with massive datasets.

  1. 1Click 'Add Search Field' to create a second filter
  2. 2Select 'LastModifiedDate' from the dropdown
  3. 3Choose 'greater than' as the operator
  4. 4Set the value to '{{zap_meta_human_now__minus_7d}}' for last 7 days
βœ“ What you should see: Two search filters appear: one for stage names and one for modification date within 7 days.
⚠
Common mistake β€” null
Google Sheets
GO
trigger
filter
Condition
matches criteria?
yes β€” passes through
no β€” skipped
Salesforce
SA
notified
5

Salesforce Action > Test Action

Test Salesforce Connection

Run a test query to verify your filters work and see what opportunity data comes back. This confirms your search criteria before connecting to Sheets.

  1. 1Click 'Test Action' at the bottom of the Salesforce step
  2. 2Wait for the query to complete (5-10 seconds)
  3. 3Review the returned opportunity records
  4. 4Verify you see Name, Amount, StageName, and other key fields
βœ“ What you should see: A list of 1-10 sample opportunities with complete field data including names, amounts, and stage information.
⚠
Common mistake β€” If you see 100+ results, add more filters β€” Zapier's Google Sheets action will timeout on large datasets.
Zapier
β–Ά Turn on & test
executed
βœ“
Google Sheets
βœ“
Salesforce
Salesforce
πŸ”” notification
received
6

Action > Google Sheets > Create Spreadsheet Row > Account

Connect Google Sheets

Link your Google account and specify which spreadsheet will receive the opportunity data. This creates the destination for your daily exports.

  1. 1Click + to add another action step
  2. 2Search for and select 'Google Sheets'
  3. 3Choose 'Create Spreadsheet Row' as the action
  4. 4Sign in to your Google account when prompted
βœ“ What you should see: Google Sheets appears as connected with your Gmail address visible in the account dropdown.
⚠
Common mistake β€” Don't use 'Update Spreadsheet Row' β€” that requires knowing which row to update and won't add new opportunities.
7

Google Sheets Action > Spreadsheet Selection

Select Target Spreadsheet

Choose an existing spreadsheet or create a new one specifically for your pipeline export. This determines where your opportunity data lands each morning.

  1. 1In 'Spreadsheet' dropdown, select your existing pipeline sheet
  2. 2Choose the specific worksheet tab (usually 'Sheet1')
  3. 3If creating new, click 'Create a new spreadsheet in Google Sheets'
  4. 4Name it 'Daily Pipeline Export' if creating fresh
βœ“ What you should see: The spreadsheet and worksheet names appear in the dropdown fields with a green verification icon.
⚠
Common mistake β€” Make sure column headers already exist in row 1 β€” Zapier won't create them automatically.
8

Google Sheets Action > Column Mapping

Map Opportunity Fields to Columns

Connect Salesforce opportunity fields to specific columns in your Google Sheet. This determines what data appears where in your daily export.

  1. 1Click in the 'Name' column field and select 'Name' from Salesforce data
  2. 2Map 'Amount' field to your Amount column
  3. 3Connect 'StageName' to the Stage column
  4. 4Add 'CloseDate', 'AccountName', and 'Owner' mappings
βœ“ What you should see: Six column mappings show with blue Salesforce field tags connected to your sheet columns.
⚠
Common mistake β€” Use 'Amount' not 'Amount (converted)' unless you need currency conversion β€” the converted field sometimes shows null.
Google Sheets fields
Column A
Column B
Email
Status
Notes
available as variables:
1.props.Column A
1.props.Column B
1.props.Email
1.props.Status
1.props.Notes
9

Salesforce Action > Advanced Settings > Line Items

Handle Multiple Opportunities

Configure the Zap to create separate rows for each opportunity found in your Salesforce query. Without this, only the first result gets exported.

  1. 1Scroll up to the Salesforce 'Find Records' step
  2. 2Toggle on 'Should this step be considered a 'loop'?' option
  3. 3Confirm the setting shows 'Yes, treat as line items'
  4. 4Return to the Google Sheets step to verify mapping
βœ“ What you should see: The Salesforce step shows a loop icon and 'Line Items: Yes' in the step header.
⚠
Common mistake β€” This is easy to miss β€” without line item mode, you'll only get one opportunity per day regardless of how many exist.
10

Google Sheets Action > Test Action

Test Complete Workflow

Run the full Zap end-to-end to verify opportunities flow from Salesforce into your Google Sheet correctly with all field mappings intact.

  1. 1Click 'Test Action' on the Google Sheets step
  2. 2Check your Google Sheet for new rows with opportunity data
  3. 3Verify all mapped fields populated correctly
  4. 4Confirm multiple opportunities created separate rows
βœ“ What you should see: Your Google Sheet shows new rows with complete opportunity data including names, amounts, stages, and dates.
⚠
Common mistake β€” If you see blank cells, check that your Salesforce fields have data β€” empty fields in SFDC create empty cells in Sheets.
11

Zap Header > Publish Toggle

Activate Daily Schedule

Turn on your Zap to begin daily exports every morning at 8 AM. This starts the automated pipeline reporting you configured.

  1. 1Click the toggle switch in the top right to 'ON'
  2. 2Confirm the Zap shows 'Published' status
  3. 3Set up email notifications for errors under Zap settings
  4. 4Save the Zap with a clear name like 'Daily SFDC Pipeline Export'
βœ“ What you should see: The Zap status shows 'On' with a green indicator and displays 'Last run: Never' until tomorrow morning.
⚠
Common mistake β€” Check your task usage after the first week β€” line item processing counts each opportunity as a separate task.

Drop this into a Zapier Code step.

Copy this template=ARRAYFORMULA(IF(B2:B="","",TEXT(B2:B,"$#,##0")))
β–Έ Show code
=ARRAYFORMULA(IF(B2:B="","",TEXT(B2:B,"$#,##0")))

... expand to see full code

=ARRAYFORMULA(IF(B2:B="","",TEXT(B2:B,"$#,##0")))

Scaling Beyond 100+ opportunities per day+ Records

If your volume exceeds 100+ opportunities per day records, apply these adjustments.

1

Add Owner-Based Filtering

Filter by specific opportunity owners or territories instead of querying all open deals. This reduces API load and keeps exports focused on relevant pipeline data.

2

Split Into Multiple Zaps

Create separate Zaps for different regions or teams, each writing to different sheet tabs. This prevents any single query from overwhelming Google Sheets' API limits.

Going live

Production Checklist

Before you turn this on for real, confirm each item.

Troubleshooting

Common errors and how to fix them.

Frequently Asked Questions

Common questions about this workflow.

Analysis

VerdictWhy Zapier for this workflow

Use Zapier for this if your team wants a set-it-and-forget-it solution that requires zero coding. The visual builder makes field mapping obvious, and the Schedule trigger runs reliably every morning without server maintenance. Your sales ops person can build this in 20 minutes. Skip Zapier if you need real-time updates β€” the polling delay means opportunities could change after your morning export runs.

Cost

This workflow burns 1 task per opportunity found, plus 1 for the schedule trigger. If you have 50 open deals, that's 51 tasks daily or 1,530 per month. That exceeds Zapier's Starter plan (750 tasks) and needs the Professional plan at $19.99/month. Make would handle the same volume for $9/month on their Core plan. N8n cloud costs $20/month but includes 5,000 executions. Make wins on pure cost here.

Tradeoffs

Make handles Salesforce queries better with built-in SOQL support and doesn't require the awkward line-item workaround. N8n gives you actual code blocks for complex data transformations that Zapier's formatter can't handle. But Zapier's error notifications are clearer β€” when your SFDC connection breaks, you get a plain-English email instead of cryptic JSON error dumps. For non-technical teams, that clarity trumps the cost savings.

Salesforce's API rate limits hit at 15,000 calls per day for most orgs. Each Find Records query counts as one call, so daily exports stay well under the limit. But Google Sheets chokes on 100+ simultaneous row creates β€” you'll see timeout errors if your query returns massive datasets. The LastModifiedDate filter isn't just good practice, it's required to avoid breaking your automation. Also watch currency fields β€” Salesforce sends raw numbers like 50000.0, not formatted dollars.

Ideas for what to build next

  • β†’
    Add Slack Notifications for Large Deals β€” Create a second Zap that monitors your pipeline sheet and posts to #sales-team when deals over $10k appear.
  • β†’
    Build Closed Deal Tracking β€” Set up another daily export for deals that closed in the last week to track win/loss trends alongside your open pipeline.
  • β†’
    Create Stage Change Alerts β€” Use Salesforce's 'Updated Record' trigger to notify your team in real-time when opportunities move between pipeline stages.

Related guides

Was this guide helpful?
← Google Sheets + Salesforce overviewZapier profile β†’