Salesforce Google Sheets Integration: Connectors, Sync and Security (2026)

In this article
- Google’s free Salesforce Connector add-on for Sheets (called “Data connector for Salesforce” in Google’s help) imports Salesforce reports or SOQL queries, refreshes imported reports manually or every 4, 8 or 24 hours, and can insert, update and delete Salesforce records from a sheet.
- For finer schedules, several sources in one sheet or no-code writeback with guardrails, teams use a Sheets add-on such as Coefficient or G-Connector, or an iPaaS (Zapier, Make, Workato) for event-driven flows like “new form row → new lead.”
- Apps Script plus the Salesforce REST API fits custom logic, but it runs inside Google quotas (6 minutes per run) and you own authentication, retries and monitoring.
- A sheet with CRM data is a copy outside Salesforce security. For live team reporting, Salesforce reports and dashboards are often the better answer; for history and joins with other systems, use a data warehouse.
Jump to
- What people actually need from Sheets and Salesforce
- Google’s Salesforce connector for Sheets
- Your options compared
- How the data flows
- Column and field mapping
- How to set it up with Google’s connector
- Add-ons, Zapier and Make, and Apps Script
- Pitfalls and how to fix them
- Security: a sheet is a copy outside Salesforce
- When reports, dashboards or a warehouse are the better answer
- When a custom integration makes sense
- Go-live checklist
- Where Gilzor fits
What people actually need from Sheets and Salesforce
“Integrate Salesforce with Google Sheets” usually means one of four jobs. Name yours first, because each one points to a different tool.
- Pull for analysis. Finance or RevOps wants pipeline, bookings or activity data in a sheet to model, chart or blend with other numbers.
- Recurring snapshot. A sheet that refreshes on a schedule and feeds a forecast, a commission calculation or a board pack.
- Bulk edits. An admin or ops lead exports records, fixes owners, stages or regions in the sheet, and pushes the changes back.
- Sheet as an intake form. Leads, event sign-ups or partner referrals land in a sheet (often from Google Forms), and each new row should become a Salesforce record.
The first three are mostly Salesforce → Sheets with occasional writeback. The fourth is Sheets → Salesforce, row by row, and is closer to a small integration than to a spreadsheet feature.
Google’s Salesforce connector for Sheets
Google builds and maintains a free add-on for this. As of October 2026, it is listed in the Google Workspace Marketplace as Salesforce Connector, while Google’s Docs Editors help still calls it Data connector for Salesforce. You install it in Sheets under Extensions, then Add-ons, then Get add-ons.
Google’s help describes four operations:
| Operation | What it does | Direction |
|---|---|---|
| Reports | Imports an existing Salesforce report into a new or existing sheet | Salesforce → Sheets |
| Import | Builds a query with a query builder or SOQL, with up to 5 source objects, plus fields and filters | Salesforce → Sheets |
| Refresh | Re-runs imported reports manually or on a schedule of every 4, 8 or 24 hours | Salesforce → Sheets |
| Update and Delete | Inserts, updates or upserts records from a highlighted range, or deletes the highlighted records from Salesforce by a primary key column | Sheets → Salesforce |
Requirements
- Salesforce API access. According to Salesforce’s REST API documentation, API access is on by default in Enterprise, Performance, Unlimited and Developer Edition orgs; Professional Edition needs the API add-on. Each user needs the API Enabled permission.
- Workspace admin approval. Google’s admin help says the add-on must be allowed in the Admin console, either by enabling add-ons or by allowlisting this one.
- Salesforce permissions apply. The add-on respects the object and field permissions of the Salesforce user who signs in. It cannot read or change anything that user can’t.
- Connected app approval. The add-on signs in to Salesforce through OAuth. Salesforce has tightened the rules for third-party apps that aren’t installed in your org. If a user’s login is blocked, your Salesforce admin may need to install or approve the add-on’s app first.
Where it stops
- Refresh is coarse. The shortest schedule is every 4 hours. Nothing is real time.
- One source. It reads Salesforce only. Blending with HubSpot, Stripe or an ad platform needs another tool or formulas.
- Writeback has no guardrails. Google’s help describes no approval step or preview of changes. Whatever is in the selected range goes to the org you signed in to, and Google tells you to use update and delete with caution.
- English only, according to Google’s help.
Salesforce has its own route in the other direction. Its Data 360 (formerly Data Cloud) documentation describes a Google Sheets connector, labelled beta as of October 2026, that ingests sheet data into Data 360. It suits teams already licensed for Data 360, not a quick CRM export.
Your options compared
Five routes, from built-in to fully custom:
| Salesforce reports and export | Google’s connector | Sheets add-on | iPaaS | Apps Script or custom | |
|---|---|---|---|---|---|
| Examples | Report export, subscriptions, dashboards | Salesforce Connector (Data connector for Salesforce) | Coefficient, G-Connector, other Marketplace add-ons | Zapier, Make, Workato | Apps Script with the Salesforce REST API; middleware |
| Direction | Salesforce → file | Both; writeback is manual | Both; often with scheduled or rule-based writeback | Usually row by row, Sheets → Salesforce or the reverse | Your design |
| Freshness | Live in Salesforce; files are one-off | Manual, or 4, 8, 24 hours | Often hourly or more frequent, depending on plan | Near real time per event | Per trigger, from every minute |
| Cost level | Included | Free | Subscription per user or per workspace | Subscription per task or operation | Build cost plus upkeep |
| Effort | Hours | Hours | Hours to days | Days | Days to weeks |
| Limits | Manual steps; no live link | Salesforce only; coarse schedule; no writeback controls | Vendor pricing and row limits; another app with data access | Not built for bulk loads; costs grow with volume | Google quotas; you own auth, errors and changes |
Add-on and iPaaS features and plans change often. Check the current Marketplace listing or pricing page for refresh frequency, row limits and writeback rules before you trial one.
Which option fits you?
The job, the refresh rate, writeback and the audience decide the tool here. Answer four questions and you get a route, which may be to skip the sheet and stay in Salesforce reports.
Which Salesforce Google Sheets setup fits?
How the data flows
The setup that holds up keeps Salesforce as the system of record. The sheet is a working copy: it reads on a schedule, and anything it writes back goes through one controlled path with a record ID and a results column.
Column and field mapping
Most sync problems come from the mapping, not the tool. Settle these columns before anyone edits a row.
| Sheet column | Salesforce | Direction | System of record |
|---|---|---|---|
| Record ID | Id of the record (Opportunity, Account, Contact…) | Salesforce → Sheets; used as the key on update | Salesforce |
| External ID or email | A field marked as External ID, or Email on Lead or Contact | Both; the key for upserts from new rows | Whichever system creates the record |
| Owner | OwnerId (a user ID, not a name) | Salesforce → Sheets; writeback only by admins | Salesforce |
| Stage, status, region | Picklist fields | Both, with values copied exactly | Salesforce |
| Amount, close date | Currency and date fields | Salesforce → Sheets | Salesforce |
| Account name | Account.Name via the relationship (AccountId on write) | Salesforce → Sheets; write the ID, not the name | Salesforce |
| Calculated columns | Nothing | Stay in the sheet | Sheets |
| Results or status | Nothing | Written by the tool after each writeback or row sync | Sheets |
Two rules prevent most damage. First, never write back by name: owners, accounts and record types are IDs in Salesforce, and a name lookup in a sheet will eventually pick the wrong one. Second, keep imports and edits on separate tabs, so a scheduled refresh never overwrites someone’s unsent changes.
How to set it up with Google’s connector
Do the read-only part first and add writeback last, on a sandbox. For the current menus and labels, follow Google’s Docs Editors help alongside these steps.
- Write down the jobWhich report or objects, which fields, who reads the sheet, and whether anything goes back to Salesforce. If the answer to the last one is “no,” you can skip the writeback steps entirely.
- Check access on both sidesYour Salesforce org needs API access and each user the API Enabled permission. Your Workspace admin must allow the add-on in the Admin console.
- Install the add-onIn Sheets, open Extensions, then Add-ons, then Get add-ons, search for the Salesforce connector by Google and add it.
- Sign in to a sandbox firstUnder Extensions, open the connector and log in to Salesforce. Google’s help shows a choice of Salesforce environment at sign-in; pick your sandbox for anything that will write back.
- Import a report or build a queryUse Reports for an existing Salesforce report. Use Import (query builder or SOQL) for raw records, and include the record ID column every time.
- Set the refresh scheduleChoose manual, or every 4, 8 or 24 hours. Pick the slowest schedule the job can live with.
- Lock the import tabProtect the imported range so readers can’t type over it, and keep formulas and notes on another tab.
- Test writeback, if you need itOn the sandbox, edit a few rows, select the range, and choose Update and the object. Pick Insert, Update or Insert or Update, and choose a results column. Check every row’s result before trusting a larger batch.
- Move to production and share narrowlyRepeat the setup against production, share the file with named people only, and write down who may run Update or Delete.
Built by Gilzor
Results we’ve shipped




Talk to the people who build it. Tell us about your project and get a free estimate of scope, timeline and cost.
Add-ons, Zapier and Make, and Apps Script
Sheets add-ons
Third-party add-ons in the Google Workspace Marketplace, such as Coefficient and Xappex’s G-Connector, target the gaps in Google’s connector. They sell more frequent refresh, several data sources in one sheet, scheduled or rule-based writeback, and alerts. They are subscriptions, and each one is another app holding a Salesforce token.
Review what scopes it requests and who in your org can install it.
Zapier, Make and other iPaaS
An iPaaS fits events, not bulk loads: “when a row is added to this sheet, create a lead,” or “when an opportunity closes, add a row to the commissions sheet.” Pricing is per task or operation, so a flow that touches thousands of rows a day gets expensive fast.
Two habits keep these flows clean. The flow writes a status column after success, and it does a lookup by email or external ID before creating anything, so a re-run updates instead of duplicating. If the rows come from a website form, a direct form-to-Salesforce flow is often cleaner; see our Salesforce website integration guide.
Apps Script and the Salesforce REST API
Apps Script is Google’s JavaScript runtime inside Sheets. A script can call the Salesforce REST API with UrlFetchApp, run a SOQL query, write the results to a tab, and send rows back with upserts on an external ID. It is a good fit for custom rules that no add-on supports, at modest volume.
The limits come from Google’s published Apps Script quotas, as of October 2026:
- 6 minutes per script execution.
- 20,000 URL Fetch calls a day for consumer accounts and 100,000 for Google Workspace accounts.
- Total trigger runtime of 90 minutes a day on consumer accounts and 6 hours on Workspace accounts.
- Time-driven triggers can run as often as every minute; add-ons are limited to once an hour.
On the Salesforce side, every call counts against your org’s daily API request allocation, which depends on edition and licenses. Authenticate with OAuth through an external client app rather than a stored password.
Run the script as a dedicated integration user that can see only the objects and fields the script touches. Our Salesforce integration user guide covers that setup, and the Salesforce API integration guide covers the API choices. Store tokens in script properties, never in a cell.
Pitfalls and how to fix them
| Problem | What happens | Fix |
|---|---|---|
| Writeback overwrites newer data | A sheet exported this morning pushes old values over changes reps made since | Refresh right before any update; write back only the changed columns; compare LastModifiedDate |
| Accidental mass delete | Delete removes the highlighted records from production, not just the rows | Limit Delete to admins; test on a sandbox; know how your team restores from the Salesforce Recycle Bin |
| Duplicates from new rows | Each re-run or edited row creates another lead | Status column; upsert on email or an external ID; Salesforce duplicate rules on |
| Picklist mismatch | “Closed Won ” with a space, or a renamed stage, fails or creates a bad value | Data validation in the sheet with the exact Salesforce values; change picklists in both places together |
| Refresh wipes edits | A scheduled import overwrites notes or formulas in the import range | Separate import and working tabs; protect the import range |
| Sync tied to one person | The connection and schedule run under someone’s login and stop when they leave | A dedicated account or integration user the team controls, documented in your runbook |
| Sheet grows too big | Full-history imports slow the file and approach the Sheets cell limit | Filter by date or owner; archive old tabs; move history to a warehouse |
| Quota or API limit errors | Scripts stop mid-run; API calls fail late in the day | Batch queries, cache results, run at off-peak times, and alert on failures |
Security: a sheet is a copy outside Salesforce
This is the risk most teams underestimate. Inside Salesforce, sharing rules, roles and field-level security decide who sees which record. Once rows land in a sheet, the only control left is who can open the file.
- Import the minimum. Leave out personal data, notes and financial fields the readers don’t need.
- Share with named people, not “anyone with the link,” and turn off downloading, printing and copying for viewers where it matters.
- Remember version history. Removing a column today doesn’t remove it from earlier versions of the file.
- Watch the importer’s access. An admin who imports a report sees everything; the sheet then shows everything to whoever opens it.
- Own the file in a shared drive, so it doesn’t disappear or change hands when its creator leaves.
- Review add-on access in the Google Admin console and Salesforce connected app usage, and remove tools nobody uses.
When reports, dashboards or a warehouse are the better answer
A sheet is the right tool for one-off analysis, modeling and bulk edits by one or two people. It is often the wrong tool for the rest:
- Team reporting. If a sales manager needs pipeline every morning, a Salesforce report or dashboard is live, respects sharing rules and can be emailed on a schedule with a subscription. No copy, no refresh to break.
- History and joins. If finance wants three years of bookings joined with billing and product usage, the data belongs in a warehouse. Sheets can sit on top of it as a front end. Our Salesforce data integration guide covers pipelines and warehouses.
- Large volumes. In September 2026, Google made a limit of up to 20 million cells per spreadsheet generally available in Sheets. That is a lot for a sheet and little for a warehouse table.
- Operational sync. If another system reads the sheet as its source, the sheet has become a fragile database. Replace it with a real integration between the two systems.
Teams on Microsoft 365 face the same choices with different tools; see our Excel Salesforce integration guide.
When a custom integration makes sense
A custom build earns its cost once the sheet has become part of a process. Typical signs: rows trigger approvals, writeback needs validation and an audit trail, several Salesforce orgs feed one report, or volumes keep hitting Apps Script quotas.
A typical build is a small service that reads Salesforce through the REST or Bulk API and applies your rules. It writes to Sheets or a warehouse through Google’s APIs and logs every write, with retries and alerts.
If Google’s connector or a short Apps Script covers your job, these numbers don’t apply. When they do, our API integration cost guide, the source of these ranges, explains what drives the price. For the wider picture of patterns and tools, see the Salesforce integration guide.
Go-live checklist
A sheet with live CRM data in it deserves the same review as any other integration. Check off what you have done; the score suggests your next step.
Salesforce Google Sheets go-live
FAQ
Can I connect Salesforce to Google Sheets for free?
Does the Google Sheets Salesforce connector update Salesforce?
How often does Salesforce data refresh in Google Sheets?
Which Salesforce editions work with Google Sheets?
How do I send Google Sheets rows to Salesforce automatically?
Is it safe to keep Salesforce data in Google Sheets?
Where Gilzor fits
Often the right answer is Google’s free connector and a few rules about tabs and sharing. If you aren’t sure, Gilzor can help you choose between that connector, an add-on or an iPaaS. As a software development company, our team in Poland and Cyprus builds and maintains Salesforce integrations.
Where the sheet has become part of a process, we set up controlled writeback or build a custom integration on the Salesforce and Google APIs, and support it after launch. Our Salesforce integration services page explains how that work is scoped.
No sales pitch
Get a straight answer for your project
Tell us what you’re building. We’ll reply with options, a rough cost and timeline. If we’re not the right fit, we’ll say so.

Head of Mobile Development at Gilzor. Leads iOS and Android delivery and the mobile app audits, from release process to architecture.
LinkedIn →Gilzor · Web Development partner
Need a team for your web product?
Services
Web DevelopmentCustom websites and web apps — front-end, back-end, launch and support.→By company type
Selected projects






The team behind them





