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

How to Create Weekly Salesforce Reports in Google Sheets with Zapier

Automatically run SOQL queries for closed-won deals and append summaries to a Google Sheet every Friday.

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

Best for

Sales teams that need consistent weekly reports without manual Salesforce exports.

Not ideal for

Teams that need real-time deal notifications or complex data transformations.

Sync type

scheduled

Use case type

export

Real-World Example

πŸ’‘

A 12-person B2B software sales team uses this to track weekly performance in their Monday morning standup. Before automation, the sales ops person spent 15 minutes every Friday manually exporting Salesforce data and formatting it for review. Now the Google Sheet updates automatically and the team can see closed deals, revenue totals, and account names without touching Salesforce.

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 Opportunity read permissions
Google account with Sheets access
Existing Google Sheet with proper column headers
Zapier account (free tier works for weekly reports)
Sample closed-won opportunities in Salesforce for testing

Field Mapping

Map these fields between your apps.

FieldAPI Name
Required
Deal NameName
Deal ValueAmount
Close DateCloseDate
Account NameAccount.Name
2 optional fieldsβ–Έ show
Deal IDId
StageStageName

Step-by-Step Setup

1

Dashboard > Create Zap > Trigger

Create a new Zap

Start with a new Zap using Schedule by Zapier as your trigger. This will fire your SOQL query every Friday at a consistent time.

  1. 1Click 'Create Zap' from your Zapier dashboard
  2. 2Search for 'Schedule by Zapier' in the trigger app selector
  3. 3Select 'Every Week' as your trigger event
βœ“ What you should see: You should see 'Schedule by Zapier' selected with 'Every Week' as the trigger type.
2

Trigger > Schedule Setup

Set weekly schedule

Configure the schedule to run every Friday. Set a specific time when your team expects the report to be ready.

  1. 1Select 'Friday' from the Day of Week dropdown
  2. 2Choose your preferred time (recommend 8:00 AM in your timezone)
  3. 3Select your timezone from the dropdown list
βœ“ What you should see: The schedule should show 'Every Friday at 8:00 AM [Your Timezone]'.
⚠
Common mistake β€” Don't pick a time too early - Salesforce has higher API limits after 6 AM PST.
3

Trigger > Test

Test the schedule trigger

Zapier needs to verify the schedule works before proceeding. This creates a sample trigger event you'll use in later steps.

  1. 1Click 'Test trigger' at the bottom of the setup panel
  2. 2Wait for the green checkmark confirmation
  3. 3Click 'Continue' to move to the action step
βœ“ What you should see: You should see 'We found a request!' with timestamp data from the test.
⚠
Common mistake β€” Confirm your workflow timezone matches your business timezone β€” n8n uses the instance timezone by default. Also verify the workflow is saved and set to Active, since Schedule Triggers won't fire on inactive workflows.
Zapier
β–Ά Turn on & test
executed
βœ“
Google Sheets
βœ“
Salesforce
Salesforce
πŸ”” notification
received
4

Action > App Selection

Add Salesforce action

Add Salesforce as your first action step. You'll use the 'Find Records' action to run your SOQL query for closed-won deals.

  1. 1Click the + button to add an action step
  2. 2Search for 'Salesforce' in the app selector
  3. 3Choose 'Find Records' as your action event
βœ“ What you should see: Salesforce should be selected with 'Find Records' as the action type.
5

Action > Account

Connect your Salesforce account

Authenticate with Salesforce using OAuth. Zapier needs read permissions to query your opportunity data.

  1. 1Click 'Sign in to Salesforce' in the account connection panel
  2. 2Enter your Salesforce credentials in the popup window
  3. 3Click 'Allow' to grant Zapier read permissions
βœ“ What you should see: You should see your Salesforce org name with a green 'Connected' status.
⚠
Common mistake β€” Make sure you're connecting to the right Salesforce org - sandbox vs production matters here.
Zapier settings
Connection
Choose a connection…Add
click Add
Google Sheets
Log in to authorize
Authorize Zapier
popup window
βœ“
Connected
green checkmark
6

Action > Find Records Setup

Configure the SOQL query

Set up your query to find closed-won opportunities from the past week. Use Salesforce's SOQL syntax to filter by stage and close date.

  1. 1Select 'Opportunity' from the Object dropdown
  2. 2In the Search Method field, choose 'SOQL Query'
  3. 3Paste this query: SELECT Id, Name, Amount, CloseDate, Account.Name FROM Opportunity WHERE StageName = 'Closed Won' AND CloseDate = THIS_WEEK
βœ“ What you should see: The SOQL query field should show your complete query with proper syntax highlighting.
⚠
Common mistake β€” Don't modify the SOQL syntax - Zapier's parser is picky about formatting and will fail on typos.
7

Action > Test

Test Salesforce query

Run the query to verify it returns your closed-won deals. This also provides sample data for mapping to Google Sheets.

  1. 1Click 'Test action' at the bottom of the Salesforce setup
  2. 2Wait for the query to execute (usually 5-10 seconds)
  3. 3Review the returned opportunity records
βœ“ What you should see: You should see a list of closed-won opportunities with fields like Name, Amount, and CloseDate populated.
⚠
Common mistake β€” If you get zero results, check that you have closed-won deals from this week - adjust the date filter for testing.
8

Action 2 > App Selection

Add Google Sheets action

Add Google Sheets as your second action to append the query results. You'll create a new row for each deal found.

  1. 1Click the + button to add another action step
  2. 2Search for 'Google Sheets' in the app selector
  3. 3Choose 'Create Spreadsheet Row' as your action event
βœ“ What you should see: Google Sheets should be selected with 'Create Spreadsheet Row' as the action.
9

Action 2 > Account

Connect Google Sheets

Authenticate with Google and grant Zapier permission to write to your spreadsheets. Make sure you use the right Google account.

  1. 1Click 'Sign in to Google Sheets' in the account panel
  2. 2Select your Google account from the list
  3. 3Click 'Allow' to grant spreadsheet write permissions
βœ“ What you should see: Your Google account should show as connected with a green checkmark.
⚠
Common mistake β€” Connect the Google account that owns your target spreadsheet - shared sheets won't appear if you use the wrong account.
10

Action 2 > Spreadsheet Setup

Select your spreadsheet

Choose the specific spreadsheet and worksheet where you want the weekly sales data appended. Create the spreadsheet first if it doesn't exist.

  1. 1Select your target spreadsheet from the Spreadsheet dropdown
  2. 2Choose the correct worksheet tab from the Worksheet dropdown
  3. 3Verify the sheet has header rows matching your data fields
βœ“ What you should see: Both dropdowns should show your selected spreadsheet and worksheet names.
⚠
Common mistake β€” Make sure your sheet has headers in row 1 - Zapier will map fields to these column names.
11

Action 2 > Field Mapping

Map Salesforce fields to sheet columns

Connect each piece of opportunity data to the correct spreadsheet column. Use the data from your Salesforce test to populate the mapping.

  1. 1Map 'Name' from Salesforce to your 'Deal Name' column
  2. 2Map 'Amount' to your 'Deal Value' column
  3. 3Map 'CloseDate' to your 'Close Date' column
  4. 4Map 'Account Name' to your 'Account' column
βœ“ What you should see: Each column should show the mapped Salesforce field name in blue text.
⚠
Common mistake β€” Double-check your column names exactly match your sheet headers - case and spacing matter.
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
12

Action 2 > Test > Publish

Test the complete workflow

Run the full Zap to verify it queries Salesforce and writes data to your sheet correctly. This confirms your field mapping and permissions work.

  1. 1Click 'Test action' in the Google Sheets step
  2. 2Wait for the test to complete successfully
  3. 3Check your Google Sheet to verify the new row was added
  4. 4Click 'Turn on Zap' to activate the weekly automation
βœ“ What you should see: You should see 'Test successful!' and a new row in your spreadsheet with the Salesforce data.

Drop this into a Zapier Code step.

Copy this templateSELECT Id, Name, Amount, CloseDate, Account.Name, Owner.Name FROM Opportunity WHERE StageName = 'Closed Won' AND CloseDate = THIS_WEEK ORDER BY Amount DESC LIMIT 50
β–Έ Show code
SELECT Id, Name, Amount, CloseDate, Account.Name, Owner.Name FROM Opportunity WHERE StageName = 'Closed Won' AND CloseDate = THIS_WEEK ORDER BY Amount DESC LIMIT 50

... expand to see full code

SELECT Id, Name, Amount, CloseDate, Account.Name, Owner.Name FROM Opportunity WHERE StageName = 'Closed Won' AND CloseDate = THIS_WEEK ORDER BY Amount DESC LIMIT 50

Scaling Beyond 15+ deals per week+ Records

If your volume exceeds 15+ deals per week records, apply these adjustments.

1

Add query pagination

Use OFFSET in your SOQL query if you regularly exceed 100 deals per week. Zapier's Find Records action caps at 2000 results but performs better with smaller batches.

2

Split into daily runs

Change from weekly to daily schedule and use CloseDate = TODAY instead. This spreads the API calls across the week and reduces the chance of hitting Google Sheets rate 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 hands-off weekly report without writing code. Setup takes 20 minutes and runs reliably every Friday at the same time. The visual interface makes it easy to modify the SOQL query or add new spreadsheet columns later. Skip Zapier if you need real-time updates - this automation only runs weekly, not when deals actually close.

Cost

This workflow uses 2 tasks per run - one for the schedule trigger, one for each spreadsheet row created. If you typically close 10 deals per week, that's 22 tasks monthly (2 + 10 deals Γ— 2 tasks). That fits Zapier's free plan at 100 tasks/month. Make would cost $9/month for the same volume since they count each Salesforce record as a separate operation. Zapier wins on cost until you hit 50+ deals per week.

Tradeoffs

Make handles SOQL queries better with native pagination and can process 1000+ records in a single run. N8n lets you write custom JavaScript to format the data exactly how you want before hitting Google Sheets. But Zapier's Schedule trigger is rock-solid reliable - it fires every Friday without fail. Make's cron triggers occasionally skip runs during high traffic periods, and N8n requires manual cron setup that can break during server restarts.

Google Sheets API has a 100 requests per 100 seconds rate limit. If your query returns 20+ deals, Zapier will hit this limit and some rows will fail to write. The Schedule trigger also fires at the exact same minute for all users, creating API bottlenecks on Friday mornings. Salesforce's THIS_WEEK filter runs from Sunday to Saturday, not Monday to Friday like most sales teams expect - adjust your date logic accordingly.

Ideas for what to build next

  • β†’
    Add Slack notifications β€” Create a second Zap that posts a summary message to your #sales channel when the weekly report finishes running.
  • β†’
    Include pipeline data β€” Extend the workflow to also query open opportunities and add them to a second sheet tab for pipeline visibility.
  • β†’
    Format currency values β€” Add a Formatter action to convert Salesforce amounts to properly formatted currency before writing to Google Sheets.

Related guides

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