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

How to Sync Google Sheets Account Data to Salesforce with Make

Automatically update Salesforce account records when enrichment data is added to Google Sheets rows.

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

Best for

Teams that regularly enrich account data in spreadsheets and need it synced to Salesforce automatically.

Not ideal for

High-volume data processing over 500 accounts daily or complex data transformation requirements.

Sync type

polling

Use case type

sync

Real-World Example

💡

A 20-person B2B SaaS sales team uses this to update Salesforce when their marketing ops person adds industry and employee count data to accounts in Google Sheets. Before automation, the sales ops person manually copied enrichment data into Salesforce weekly, often missing updates or introducing typos. Now enriched data flows to Salesforce within 15 minutes of being added to the spreadsheet.

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.

Google Sheets spreadsheet with account names and enrichment data columns
Salesforce admin access with API enabled
Salesforce security token for API authentication
Account names in Google Sheets that exactly match Salesforce account names

Field Mapping

Map these fields between your apps.

FieldAPI Name
Required
Account NameName
5 optional fields▸ show
IndustryIndustry
Annual RevenueAnnualRevenue
Employee CountNumberOfEmployees
WebsiteWebsite
Account TypeType

Step-by-Step Setup

1

Dashboard > Create scenario > Apps

Create a New Scenario

Start by setting up a new scenario in Make to connect Google Sheets to Salesforce. This creates the foundation for your account enrichment workflow.

  1. 1Click 'Create a new scenario' from your Make dashboard
  2. 2Click the large gray circle to add your first module
  3. 3Search for 'Google Sheets' and select it from the app list
What you should see: You should see a Google Sheets module icon in your scenario canvas with configuration options.
2

Google Sheets module > Configuration

Set Up Google Sheets Trigger

Configure the trigger to watch for new or updated rows in your enrichment spreadsheet. This will fire whenever account data gets added or modified.

  1. 1Select 'Watch Rows' as your trigger type
  2. 2Click 'Add' next to Connection and authenticate with Google
  3. 3Choose your enrichment spreadsheet from the dropdown
  4. 4Select the worksheet containing account data
  5. 5Set 'Table contains headers' to Yes
What you should see: The module shows your spreadsheet name and a green 'Connected' status indicator.
Common mistake — Don't use 'Watch Changes' - it triggers on any cell edit including formatting changes.
Make
+
click +
search apps
Google Sheets
GO
Google Sheets
Set Up Google Sheets Trigger
Google Sheets
GO
module added
3

Scenario canvas > + > Filter

Add Filter Module

Insert a filter to only process rows that contain account identifiers. This prevents the scenario from running on empty or header rows.

  1. 1Click the + button between modules to add a filter
  2. 2Name the filter 'Has Account Data'
  3. 3Set condition to check if Account Name or Account ID is not empty
  4. 4Use 'is not equal to' and leave the value blank
What you should see: A diamond-shaped filter icon appears with your condition displayed.
Common mistake — Filter on a required field like Account Name - not optional fields that might be blank.
Google Sheets
GO
trigger
filter
Condition
matches criteria?
yes — passes through
no — skipped
Salesforce
SA
notified
4

Apps > Salesforce > Search Records

Add Salesforce Module

Connect to Salesforce to search for existing account records that match your enrichment data. This ensures you update the right accounts.

  1. 1Click the + after your filter to add a new module
  2. 2Search for 'Salesforce' and select it
  3. 3Choose 'Search Records' as the action
  4. 4Click 'Add' to create a Salesforce connection
What you should see: The Salesforce module appears with connection setup fields visible.
5

Salesforce module > Add connection

Configure Salesforce Connection

Authenticate with Salesforce using your production or sandbox credentials. Make needs API access to read and update account records.

  1. 1Enter your Salesforce username and password
  2. 2Paste your security token after your password
  3. 3Select 'Production' or 'Sandbox' environment
  4. 4Click 'Save' to establish the connection
What you should see: Green checkmark appears next to the connection with your Salesforce org name.
Common mistake — Security token is required - reset it from Salesforce Setup if you don't have it.
6

Salesforce module > Configuration

Set Up Account Search

Configure the search to find accounts that match your Google Sheets data. This lookup determines which Salesforce records to update.

  1. 1Set Record Type to 'Account'
  2. 2In Search Query, enter 'Name =' and map the Account Name from Google Sheets
  3. 3Set Maximum number of returned records to 1
  4. 4Leave other fields at default values
What you should see: Search configuration shows your mapped account name field from the Google Sheets trigger.
Common mistake — Use exact name matching - partial matches can update wrong accounts.
7

Flow Control > Router

Add Router for Found/Not Found

Insert a router to handle cases where accounts exist versus when they don't. This prevents errors when no matching account is found.

  1. 1Click the + after Salesforce Search module
  2. 2Select 'Flow Control' then 'Router'
  3. 3The router automatically appears with two paths
What you should see: A router module with two empty paths branching from the search results.
8

Router > Filter > Salesforce Update

Configure Update Path

Set up the path that updates existing Salesforce accounts when a match is found. This is where the actual enrichment happens.

  1. 1Click the first router path to add a filter
  2. 2Name it 'Account Found' and set condition to 'Total number of bundles > 0'
  3. 3Click + after the filter to add 'Salesforce > Update Record'
  4. 4Set Record Type to 'Account'
  5. 5Map Record ID from the search results
What you should see: Update path shows filter condition and Salesforce Update Record module configured.
Common mistake — Always use Record ID from search results, never hardcode account IDs.
9

Salesforce Update > Fields

Map Enrichment Fields

Configure which Google Sheets columns update which Salesforce account fields. This is where your enrichment data gets applied to the CRM.

  1. 1In the Update Record module, expand the Fields section
  2. 2Map Industry from Google Sheets to Industry field
  3. 3Map Annual Revenue to AnnualRevenue field
  4. 4Map Employee Count to NumberOfEmployees
  5. 5Add any custom fields your org uses
What you should see: Field mapping shows Google Sheets columns connected to Salesforce account fields.
Common mistake — Match data types - don't map text to number fields or Salesforce will reject the update.
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
10

Scenario > Run once

Test the Scenario

Run a test to verify the workflow processes your enrichment data correctly. This catches configuration issues before going live.

  1. 1Click 'Run once' at the bottom of the scenario
  2. 2Add a test row to your Google Sheets with account data
  3. 3Wait 30 seconds then check the execution log
  4. 4Verify the Salesforce account was updated with new data
What you should see: Execution log shows successful completion with green checkmarks on all modules.
Common mistake — Test with real data that matches existing accounts - sample data won't trigger properly.
Make
▶ Run once
executed
Google Sheets
Salesforce
Salesforce
🔔 notification
received
11

Scenario > Settings

Enable Scenario

Turn on the scenario to start processing enrichment data automatically. Set the schedule based on how frequently you add new data.

  1. 1Toggle the scenario switch to ON
  2. 2Set scheduling to 'Every 15 minutes' for regular updates
  3. 3Click 'Save' to apply the configuration
What you should see: Scenario shows as 'Active' with next execution time displayed.
Common mistake — Start with 15-minute intervals - shorter polling burns through operations faster.

Drop this into a Make custom function.

JavaScript — Custom Function{{if(1.`Total number of bundles` > 0; 1.`Record ID`; "No account found for " + 2.`Account Name`)}}
▸ Show code
{{if(1.`Total number of bundles` > 0; 1.`Record ID`; "No account found for " + 2.`Account Name`)}}

... expand to see full code

{{if(1.`Total number of bundles` > 0; 1.`Record ID`; "No account found for " + 2.`Account Name`)}}

Scaling Beyond 300+ accounts per day+ Records

If your volume exceeds 300+ accounts per day records, apply these adjustments.

1

Batch Processing

Use Make's aggregator to group multiple sheet rows and update accounts in batches. This reduces API calls and stays under Salesforce limits.

2

Polling Frequency

Increase polling interval to 30 minutes or hourly. More frequent checks burn operations without adding value for batch enrichment workflows.

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 field mapping between Google Sheets and Salesforce without writing code. Make handles Salesforce's picky API requirements better than most platforms and gives you visual debugging when mappings fail. The router system lets you handle found/not-found cases cleanly. Skip Make if you're processing 1000+ accounts daily - Salesforce's API limits will hit you hard and you'd be better off with a bulk API tool.

Cost

This workflow uses 4 operations per run: Google Sheets trigger, Salesforce search, filter check, and record update. At 200 enrichment events per month, that's 800 operations monthly. Make's Core plan at $9/month includes 10,000 operations, so you're well covered. Zapier would cost $20/month for the same volume on their Professional plan. N8N cloud runs $20/month for similar usage. Make wins on cost here by $11 monthly.

Tradeoffs

Zapier handles Salesforce authentication more smoothly - no security token required, just OAuth. N8N offers better bulk processing if you're updating 50+ records at once through its batch operations. But Make's visual router system beats both platforms for handling the found/not-found logic cleanly. You can see exactly which accounts updated and which didn't, making debugging much faster when enrichment data doesn't match.

Google Sheets API has a 100 requests per 100 seconds limit that Make doesn't warn you about. If you bulk-add 50+ rows, the scenario will hit rate limits and fail silently. Salesforce field validation is stricter than the UI shows - picklist values must match exactly and number fields reject text even if it looks numeric. Make's error handling stops the whole scenario on field errors, so one bad row kills the batch. Set up error handling to continue processing other records when individual updates fail.

Ideas for what to build next

  • Add Account Creation PathSet up the second router path to create new Salesforce accounts when no match is found in the search.
  • Log Enrichment ActivityAdd a Google Sheets module to log which accounts were updated with timestamps for audit purposes.
  • Slack NotificationsSend a daily summary to Slack showing how many accounts were enriched and any errors encountered.

Related guides

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