· Simple Data Foundry Team · Guides · 4 min read
Get data into Google Sheets without an add-on
Every major Sheets data tool is an add-on you install, authorise and keep updated inside the spreadsheet. Here is how to schedule the same imports without one.

Short answer: an add-on runs inside your spreadsheet, which ties the refresh to that one file, that one installer’s account, and Google’s add-on runtime. A scheduled cloud job runs outside it and writes in, so the sheet stays an ordinary sheet — copyable, shareable, and not dependent on anyone keeping an extension installed.
What an add-on actually costs you
The dominant tools in this space — Coefficient, Supermetrics, API Connector, Sheetgo — are Google Workspace add-ons. That is a real architecture with real consequences, not a marketing detail.
It is installed per user, per workspace. The person who set up the refresh owns it. When they leave, or their OAuth grant lapses, the report stops.
It travels badly. Copy the sheet and the connection usually does not come with it. Hand the file to a client and they need the add-on too.
It usually wants broad Drive access. Most Sheets add-ons request scopes over your whole Drive, because they need to enumerate spreadsheets to let you pick one.
It cannot write anywhere else. An add-on that lives in Sheets writes to Sheets. The moment the same data needs to go to Airtable or a database, you are buying a second tool.
Admins can turn it off. Workspace administrators can restrict Marketplace installs, and in many organisations they have.
The alternative: write in from outside
A scheduled job holds the connection, pulls on a schedule, and writes into a tab using the Sheets API. Nothing is installed in the spreadsheet. The sheet has no special properties — it is a normal sheet that happens to receive fresh rows.
Practical differences:
- The sheet is disposable. Copy it, template it, share it. The job writes to a spreadsheet ID and a range, and you can point it at a different one.
- The credential is held once, centrally, not per installer.
- The same job can write elsewhere. Airtable or Postgres, from the same pull, with the same column mapping.
- It runs when nobody has the file open. Add-on triggers depend on the Workspace runtime; a server-side schedule does not.
On scopes, specifically
Worth being concrete, because this is where “we ask for less” is easy to claim and easy to check.
The Google Sheets connection here requests the spreadsheets scope and deliberately does not request drive.readonly. Drive access is a restricted scope under Google’s policy — it requires an independent security assessment, and it hands the tool read access to every file in your Drive, not just the sheet you picked.
The trade-off is honest: without Drive access there is no file-picker that browses your whole Drive, so you paste a spreadsheet URL or ID instead. One extra copy-paste, in exchange for a tool that cannot read the rest of your Drive.
What you can pull today
- Stripe — customers, invoices, subscriptions, charges, products, prices, payment intents and balance transactions, filtered by created date. Stripe to Google Sheets →
- PostgreSQL — a table or an arbitrary query. Postgres to Google Sheets →
- Any REST API — with the credential stored rather than pasted into a cell. REST API to Google Sheets →
- A file at a URL — CSV, TSV, JSON, JSONL or Excel, compressed or not. File URL to Google Sheets →
The full list, with each connector marked live or coming soon, is at /integrations.
Append or overwrite
The Sheets destination writes two ways, and the choice matters more than it looks:
- Overwrite replaces the target range. Right for a snapshot — “current open invoices”, “yesterday’s numbers”.
- Append adds rows below what is there. Right for a log you are accumulating over time.
There is no upsert for Sheets: a spreadsheet has no primary key. If you need rows updated in place rather than added, that is an Airtable upsert or a Postgres upsert.
When an add-on is genuinely the better answer
Being fair about it:
- You want to push edits back from the sheet into the source system. Two-way sync is a different product, and Coefficient does it well.
- You want a formula that pulls a value inline, mid-calculation.
- You need a connector we do not have. We ship a focused catalogue, not 200+ sources, and pretending otherwise would waste your afternoon.
If what you actually need is “this tab should be current every morning, and it should still work when I copy the file” — that does not want an add-on.



