Import Salesforce data into Google Sheets
Pull object records into a sheet
Open and build your query:
- Object — pick any standard or custom object (Account, Opportunity, your
__cobjects, …). - Fields — select the columns you need, including lookup and formula fields. Reorder them by drag & drop.
- Filters — add any number of conditions (equals, contains, starts/ends with, greater/less than, is null, in list, …) and combine them with AND or OR.
- Sorting — order the result by one or more fields.
Click Pull and the records stream into the active sheet page by page — large result sets are handled automatically. Optionally enable Link to record to make each row's ID a clickable link that opens the record in Salesforce.
Refresh modes
Each query has an On Refresh behavior that controls what happens when the query is refreshed (manually or by schedule):
- Overwrite (default) — clear the previous result and write the fresh data in place.
- Append — keep existing rows and add the new result below them, e.g. to build a history log.
- New sheet — write every refresh into a new, timestamped tab and keep old results untouched.
- Smart merge — match rows by Salesforce
Id: update changed rows in place, add new records at the bottom and keep rows that disappeared from the query result. Your manual notes in extra columns survive the refresh.
Saved pull templates
Save any query as a named template. Use to rerun, edit or delete saved queries, and to re-execute every template in the spreadsheet with one click. Templates are also what the scheduler and webhooks execute.
Query rows: enrich a range of IDs or values (VLOOKUP-style)
Already have record IDs, emails or names in a sheet? Select the range, open , and choose:
- the object to query,
- the match field your selected values are compared against (exact or contains match),
- the fields to return.
The add-on fetches the matching records and writes the requested columns to the right of your selection — like a VLOOKUP against live Salesforce data, without formulas.
Caching
Query results are cached for 30 minutes to save API calls. If you need fresh data immediately, modify the query (any change counts) or wait for the cache to expire — see the FAQ entry on caching.