Version 0.9.0 · on the Chrome Web Store

SheetConnect for Salesforce

A side panel for the Google Sheets™ spreadsheet you already have open, connected to the Salesforce organization you are already signed in to. Import objects, list views, your own SOQL, and reports into a worksheet, then send confirmed record changes back. There is no developer-operated backend and no Apps Script to install.

SheetConnect is an independent product and is not affiliated with, endorsed by, or sponsored by Salesforce or Google.

The SheetConnect side panel importing a Salesforce object into a worksheet beside a spreadsheet of Account records
Coming in version 0.11.0

Ask the Agent, in your own words

An optional chat beside the tools, off until you turn it on. Ask for what you need, such as “import open opportunities closing this quarter” or “put each account's Id next to its name”, and the Agent finds the objects and fields, checks the query or formula against your sheet, and prepares the work as a card in the chat. Nothing runs until you press Run, and a write to Salesforce still waits for your confirmation.

It starts from the right object

Each chat begins from its main object: one you opened lately, or one found by name. When two could be meant, the Agent asks with buttons instead of guessing, and you can change it later.

Cards, never actions

Imports, lookups and roll-ups, write-backs, validation rules and Apex come back as cards, each checked against your sheet first. You run them; the Agent never does.

Skills for everyday jobs

/import, /lookup, /update and /check guide the common tasks, and you can write skills of your own.

Metadata only

It reads names, labels and counts. No record's or cell's value is sent, and your Salesforce session and Google access stay in the browser.

Free to start

Free within an allowance that renews every 5 hours and every 30 days; the allowance may change.

In your language

Ask in English, Japanese or another language and it answers in the one you wrote in, reading your org's own labels as it goes.

Move Salesforce data in and out of a worksheet

Objects and list views

Pick any Salesforce object and import from a List View, with inline field suggestions that include relationship paths.

Your own SOQL

Write the query yourself when a list view is not the right shape, and import its results into the worksheet you choose.

Every report, not the recent ones

Search reports by ID, name, developer name, or folder, then import the one you need.

Grouped report structure

Groupings, aggregates, subtotals, and grand totals import intact. Optional detail rows arrive for that run without changing the report in Salesforce.

Complete result sets

Object imports follow every result page, so a large query is not capped at its first batch.

Insert, update, upsert, delete

The worksheet acts as the input table. An optional data range limits the run to exactly the rows and columns you select.

Validation before anything runs

Headers map to field API names or unambiguous labels, and permissions, required fields, types, duplicate headers, and ID prefixes are all checked first.

Batch, or Bulk for large data

Send the worksheet in requests of 1 to 200 rows and decide whether one failed row rolls back the request it was in, or send it all as one Bulk API job that keeps going after the panel closes. Each run first saves the values it will change to a backup worksheet, with the steps to undo it, and Undelete brings deleted records back from the Recycle Bin.

fx — VLOOKUP against Salesforce

Look a column up in Salesforce and write what it finds beside it, a column per field you name. The column you typed is left alone. Rows that match nothing say so, and a row matching several records gets the newest of them plus a note listing the rest.

fx — ROLLUP over child records

Count or total the child records behind each row — one aggregate query per column rather than one per row — with an optional condition, so the total answers the question you asked.

Your own Apex

When the other three tools are not enough, run anonymous Apex over the selected range. It arrives as input and whatever you leave in output is written back. What your code changes in input goes back to the sheet too. Twenty-seven templates to start from, each compiled against a real org.

English and Japanese

The whole panel is available in both, using Salesforce's own Japanese terminology. A Japanese browser opens in Japanese; the selector in the panel header overrides it either way.

Import, write back and fx wait for a named confirmation

Select

Choose the org, the worksheet, the source or operation, and the data range that the run is allowed to touch.

Validate

Review the header mapping and the record, error, and request counts before the run is offered.

Confirm

Every run names the org, object, worksheet, operation, and record count, and waits for you. Apex is the one exception, and the panel says so on the button itself: one press runs your code in Salesforce and writes what it returns to the worksheet, with no confirmation in between.

The optional status column is inserted after your data, shifting later columns right rather than overwriting them, and it is off by default.

See SheetConnect in action

Every frame is the shipping side panel driven through its own code paths. The records are invented; no live Salesforce org, Google account, or customer data appears in them.

Your credentials stay put

  • The Salesforce session cookie is read locally, sent only to that same organization, never copied into extension storage, and never passed to the side panel.
  • Google access is requested only when you choose Connect Google, and the token stays in Chrome's own token cache.
  • Requests go to the Salesforce org you selected and to the Google Sheets API for the spreadsheet you have open. From version 0.11.0 there is one exception, the optional Agent: it is off until you turn it on, and then what you write to it and the small results of its read tools go through DinaLab's server to OpenAI, as the privacy policy sets out. Your Salesforce session and your Google Sheets access still never leave the browser.
  • No ads, no analytics, no telemetry, and no remotely hosted executable code.

Permissions

Installing grants Salesforce access only. Google access is a separate, later decision.

  • cookies: reads the existing Salesforce sid cookie locally to list the orgs you are signed in to and authenticate the API calls you request.
  • identity: obtains a Chrome-managed Google OAuth token for the Google Sheets API, only after you select Connect Google. The only Google OAuth scope requested is https://www.googleapis.com/auth/drive.file, which reaches only the spreadsheets you hand over yourself through Google’s own file picker.
  • sidePanel: presents the interface beside the open spreadsheet.
  • storage: remembers the selected org, the per-org and per-worksheet source mapping (80 most recent), Apex you save as a named template (at most 50), the titles of spreadsheets you have opened (30 most recent, with no cell values), and SHA-256 fingerprints of sessions you chose to hide (at most 50).
  • tabs: enables the toolbar action only on Google Sheets tabs, and confirms before every read or write that the worksheet is still the one open in the active tab.
  • Salesforce host access: discovers signed-in orgs and calls their documented APIs for schema, list views, SOQL, reports, and confirmed record operations.
  • Google host access is optional and is not requested at install. The extension asks only when you select Connect Google, and does nothing with Google until you grant it; declining leaves the panel on its connect prompt. It covers the documented Google Sheets API for the worksheet you selected, the Google Drive API to list the files you granted, and Google’s revocation endpoint when you disconnect. The extension reads no Google file you have not handed it through the picker.

Release status

Version 0.9.0 is published on the Chrome Web Store and anyone can install it. It added the Apex tool and turned Convert into fx, with VLOOKUP and ROLLUP. Every released build passes its unit tests, source validation, and archive validation before it is packaged. Sign-in, import, and Salesforce record updates have been run end to end against a real Salesforce organization and a real Google account, and the aggregate queries ROLLUP issues have since been run against live organizations too.

Version 0.10.0 is prepared but not yet submitted. It adds LABEL and VALUE, which translate a picklist without querying at all, and lets write-back send requests of a size you choose, from 1 to 200 rows, while large data still goes as one Bulk API job; each run can back up what it changes to a worksheet first, and Undelete restores deleted records. Insert, update, upsert and delete have been run against a live organization.

The Google OAuth consent screen is In production, and Google’s verification of the requested scope is still open. In production is the OAuth publishing status; it does not by itself mean the app is Google-verified. Until verification completes you will see Google’s unverified-app screen when you connect your Google account, and the number of accounts that can authorize is capped. The privacy policy is publicly available.

The Google authorization has been narrowed from https://www.googleapis.com/auth/spreadsheets, which reached every spreadsheet in your Drive, to https://www.googleapis.com/auth/drive.file, which reaches only the spreadsheets you hand over yourself through Google’s own file picker. That narrowing shipped: drive.file is the only scope the released extension requests. It is a reduction in what the extension can see, not an addition.

This product was called DinaConnect during development and was renamed to SheetConnect before release. The draft store item was created under the old name; uploading the package renames it in place, because the manifest key pins the extension ID.