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

How to Send Weekly Sales Reports from Salesforce to Google Sheets with Make

Run a SOQL query every Friday for closed-won deals and append the summary to a Google Sheets report.

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 custom SOQL queries and relationship data that basic Salesforce triggers can't provide

Not ideal for

Teams wanting real-time notifications or simple new-record triggers without custom date filtering

Sync type

scheduled

Use case type

export

Real-World Example

💡

A 30-person B2B software company uses this to track sales performance across territories. Before automation, their sales ops person spent 2 hours every Friday manually exporting deals and calculating weekly totals in Excel. Now the Google Sheet updates automatically and feeds their Monday morning sales standup with accurate win/loss data.

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

Skip the setup

Import this workflow directly into Make

Copy the pre-built Make blueprint and paste it straight into Make. All modules, filters, and field mappings are already configured — you just need to connect your accounts.

Before You Start

Make sure you have everything ready.

Salesforce admin access with API enabled
Google Sheets with pre-created columns and headers
Make paid account for scheduled automation
Salesforce security token for API authentication

Field Mapping

Map these fields between your apps.

FieldAPI Name
Required
Deal NameName
AmountAmount
Close DateCloseDate
Account NameAccount.Name
2 optional fields▸ show
StageStageName
Owner NameOwner.Name

Step-by-Step Setup

1

Scenarios > Create new scenario > Schedule

Create a new scenario

Start by creating a new Make scenario. This will contain all the modules needed to query Salesforce and update your Google Sheet.

  1. 1Log into Make and click 'Create a new scenario'
  2. 2Search for 'Schedule' in the app list
  3. 3Select 'Schedule' and choose 'Schedule'
What you should see: You should see a clock icon module in the center of your scenario canvas.
2

Schedule module > Settings

Set weekly schedule

Configure the scheduler to run every Friday morning. This ensures your report includes all deals closed during the week.

  1. 1Click on the Schedule module
  2. 2Set 'Run scenario' to 'At regular intervals'
  3. 3Choose 'Week' from the interval dropdown
  4. 4Set day to 'Friday' and time to '9:00 AM'
  5. 5Click OK
What you should see: The Schedule module should show 'Every week on Friday at 9:00 AM' in its summary.
Common mistake — Don't set this to daily — you'll burn through operations and create duplicate data rows
3

Add module > Salesforce > Search Records

Add Salesforce connection

Connect to Salesforce to query your deals data. You'll use the Search Records module to run custom SOQL queries.

  1. 1Click the + button to add a module after Schedule
  2. 2Search for 'Salesforce' and select it
  3. 3Choose 'Search Records' from the actions list
  4. 4Click 'Add' next to Connection
  5. 5Enter your Salesforce username, password, and security token
What you should see: You should see a green 'Connection successful' message and the Salesforce module should appear in your scenario.
Common mistake — Use a security token, not session ID — session tokens expire and break your automation
4

Salesforce module > Search Records settings

Configure SOQL query

Write a SOQL query to fetch closed-won deals from the current week. This targets opportunities that closed between last Friday and today.

  1. 1Set Record Type to 'Opportunity'
  2. 2Toggle on 'Use SOQL Query'
  3. 3Enter: SELECT Id, Name, Amount, CloseDate, Account.Name FROM Opportunity WHERE StageName = 'Closed Won' AND CloseDate = THIS_WEEK
  4. 4Set Max number of records to 1000
What you should see: The query field should show your SOQL statement and the module should display 'Search Opportunities'.
Common mistake — THIS_WEEK starts on Sunday — if you want Monday-Friday, use CloseDate >= LAST_N_DAYS:7 instead
5

Add module > Google Sheets > Add a Row

Add Google Sheets connection

Connect to Google Sheets where you'll append the sales data. This creates the final destination for your weekly report.

  1. 1Click + to add another module after Salesforce
  2. 2Search for 'Google Sheets' and select it
  3. 3Choose 'Add a Row' from the actions
  4. 4Click 'Create a connection'
  5. 5Sign in with your Google account and grant permissions
What you should see: Google Sheets module appears with a green connection indicator showing your connected Google account.
6

Google Sheets module > Spreadsheet selection

Select target spreadsheet

Choose the specific Google Sheet and worksheet where the sales data will be appended. Make sure the sheet exists before running the scenario.

  1. 1Click the Spreadsheet dropdown
  2. 2Select your target spreadsheet from the list
  3. 3Choose the worksheet tab (usually 'Sheet1')
  4. 4Set Table contains headers to 'Yes'
What you should see: The module should display your chosen spreadsheet name and worksheet, with header detection enabled.
Common mistake — Create your spreadsheet first with column headers — Make can't auto-create sheets or headers
7

Google Sheets module > Field mapping

Map Salesforce fields to sheet columns

Map the Opportunity fields from your SOQL query to the correct columns in your Google Sheet. This determines what data appears where.

  1. 1Click in the Deal Name field
  2. 2Select 'Name' from the Salesforce data dropdown
  3. 3Map 'Amount' to your Amount column
  4. 4Map 'CloseDate' to Close Date column
  5. 5Map 'Account.Name' to Account column
What you should see: Each Google Sheets field should show the corresponding Salesforce field mapping with the right data types.
Common mistake — Map Account.Name not Account.Id — the ID is a cryptic 18-character string that won't help your team
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
8

Google Sheets module > Add column > Functions

Add date stamp column

Include a timestamp showing when each record was processed. This helps track when deals were added to your report.

  1. 1Add a 'Report Date' column mapping
  2. 2Click the function button (fx)
  3. 3Select 'Date and time functions' > 'now'
  4. 4Format as 'YYYY-MM-DD'
What you should see: The Report Date field should show the now() function with date formatting applied.
9

Scenario toolbar > Run once

Test the scenario

Run a test to verify your SOQL query returns data and maps correctly to Google Sheets. This catches configuration issues before going live.

  1. 1Click 'Run once' at the bottom of the screen
  2. 2Watch each module execute
  3. 3Check your Google Sheet for new rows
  4. 4Verify the data matches what you expect from Salesforce
What you should see: You should see green checkmarks on all modules and new rows in your Google Sheet with actual deal data.
Common mistake — If you see 0 records, check your SOQL date filter — THIS_WEEK might not have any closed deals right now
Make
▶ Run once
executed
Google Sheets
Salesforce
Salesforce
🔔 notification
received
10

Scenario controls > ON toggle

Enable the scenario

Activate the scenario to run automatically every Friday. This puts your weekly sales report on autopilot.

  1. 1Toggle the 'ON' switch in the bottom left
  2. 2Click 'OK' on the confirmation dialog
  3. 3Verify the scenario shows 'Active' status
What you should see: The scenario should show 'ON' status with the next scheduled run date displayed.
Common mistake — Make sure you're on a paid plan — free accounts can't schedule scenarios to run automatically

Drop this into a Make custom function.

JavaScript — Custom FunctionformatDate(now(); "YYYY-MM-DD HH:mm")
▸ Show code
formatDate(now(); "YYYY-MM-DD HH:mm")

... expand to see full code

formatDate(now(); "YYYY-MM-DD HH:mm")

Scaling Beyond 50+ deals per week+ Records

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

1

Batch Google Sheets writes

Add an Array Aggregator module before Google Sheets to combine multiple deals into fewer API calls. Google Sheets limits you to 100 writes per minute, so batching prevents rate limit errors.

2

Split large queries

Use multiple SOQL queries with date ranges instead of one large query. Query Monday-Wednesday deals separately from Thursday-Friday to stay under Salesforce's 50,000 record query limit.

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 Make for this workflow

Use Make for this if you need reliable scheduling and complex SOQL queries that Zapier can't handle. Make processes Salesforce relationship queries properly and won't choke on large datasets like Zapier does at 500+ records. The visual scenario builder makes debugging SOQL easier than code. Skip Make if you just need basic Salesforce triggers — Zapier's simpler for "new opportunity" workflows without custom queries.

Cost

This workflow uses 2 operations per run (1 for Salesforce search, 1 per Google Sheets row). With 20 deals per week, that's 42 operations monthly. Make's Core plan at $9/month includes 10,000 operations, so you're covered. Zapier Professional costs $20/month for the same volume and limits SOQL complexity. Make saves you $132/year here.

Tradeoffs

Zapier handles Salesforce authentication better with OAuth instead of security tokens, and N8n gives you more data transformation options with JavaScript expressions. Zapier also polls Salesforce every 5 minutes vs Make's 15-minute intervals. But Make is the only platform that supports complex SOQL relationships like Account.Name without custom code, and its error handling shows you exactly which SOQL line failed.

Salesforce security tokens expire when you change passwords, breaking your automation silently until the next scheduled run. SOQL relationship queries have a 5-level depth limit — you can't query Opportunity.Account.Owner.Manager.Name. Google Sheets API has a 100-cell write limit per request, so weeks with 50+ deals need the Array Aggregator module to batch writes properly.

Ideas for what to build next

  • Add Slack notifications for big winsSend a message to your sales channel when the weekly report includes deals over $50k using Make's conditional routing.
  • Create charts from the dataUse Google Sheets' built-in charting to visualize weekly trends, or connect the sheet to Data Studio for executive dashboards.
  • Track lost deals tooModify the SOQL query to include Closed Lost opportunities and analyze win/loss ratios by adding StageName = 'Closed Lost' with OR logic.

Related guides

Was this guide helpful?
Google Sheets + Salesforce overviewMake profile →