Your SQL database in Google Sheets, kept fresh
Rowferry runs your SQL against MySQL, PostgreSQL, SQL Server or Oracle and puts the results in your spreadsheet, on demand or every hour, day or week. Edit rows and send them back if you want, after you review every change.
Email us to get Rowferry See pricingWhat it does
MySQL, MariaDB, PostgreSQL, SQL Server, Azure SQL and Oracle. Self-hosted or on Amazon RDS, Google Cloud SQL, Azure, DigitalOcean, Supabase or Neon.
WHERE region = {{Inputs!B1}}. Values are bound, never pasted into the SQL. A column becomes an IN (...) list; {{today-7}} and {{month_start}} work too.
Hourly, every 6 hours, daily or weekly, with the sheet closed. Replace the results, or add rows below to keep a history.
Numbers stay numbers, dates become dates, zip codes keep leading zeros and 64-bit IDs keep every digit.
Optional. See every old and new value, then send it in one transaction. Conflicts are skipped and nothing is ever deleted.
Stored in your Google account, not in the sheet and not on our servers. Collaborators can't see or use it.
Set it up
- Install Rowferry, open a Google Sheet, then choose Extensions > Rowferry > Open.
- Add a connection: database type, host, port, database, user and password. Use a user that can only read what you need.
- Allow Google's IP ranges in your database firewall. Apps Script connects from Google's servers, not from your computer. Click Allow Google's IPs for the current list as plain lines, pg_hba.conf lines, an AWS security group command, or Azure and Cloud SQL commands.
- Click Test. If it fails, Rowferry tells you which of the usual causes to check.
- Write a query, click Preview, pick a tab and a schedule, then Save and run.
SELECT id, customer, status, total, ordered_at
FROM orders
WHERE region = {{Inputs!B1}}
AND status IN ({{Inputs!B2:B}})
AND ordered_at >= {{month_start}}
ORDER BY ordered_at DESC
Pricing
Unlimited queries, connections, schedules and spreadsheets for one Google account. Hourly refresh and write-back included.
Same features, billed yearly (two months free compared with monthly).
50 runs or 14 days, whichever comes first. Previews, connection tests and reviewing edits don't count. No card needed.
No surprise charges. We never charge you unless you start a checkout yourself. The add-on shows your trial status from the first minute. When the trial ends, runs and schedules pause (nothing is charged) and the add-on tells you why.
Renewal. Subscriptions renew automatically at the same price until you cancel. Cancel any time from Plans and billing in the add-on, in one step. You keep access until the end of the period you paid for.
Right to cancel (UK and EU). If you're a consumer in the UK or EU, you can cancel within 14 days of buying and get a full refund. Email hello@greatwork.company, or cancel in Plans and billing and reply to the receipt.
Mistakes. Charged twice or by accident? Email us and we'll refund it.
Prices are in US dollars and exclude any sales tax or VAT that applies where you live. Payments are processed by Stripe; we never see your card number.
What it can and can't reach
| Works | MySQL 5.7+, MariaDB, PostgreSQL 10+, SQL Server 2012+, Azure SQL, Oracle 12c+ (thin driver), on any host that Google's servers can reach on port 1025 or higher, with TLS 1.2+ when encrypted. |
|---|---|
| Doesn't | Engines without one of those drivers (MongoDB, Snowflake, SQLite files, Microsoft Access, DynamoDB and others), and any database on localhost, a home or office network or a VPN with no public address. Rowferry never relays your data through its own servers to get around this. |
Why people switch
| What people run into | What Rowferry does |
|---|---|
| Setup is the hard part: the database has to allow Google's IP addresses | Fetches Google's current list and formats it for your firewall, then tells you exactly which check failed. |
| DECIMAL columns arrive as text; dates shift by a time zone | Numbers, dates and timestamps land as real cell types, at the wall-clock time the database stored. |
| Passwords in a script or a cell that every editor can read | Passwords live in your Google account only. |
| Write-back that overwrites someone else's change | Three-way check, one transaction, every change reviewed, never deletes. |
| "Listed as free, then charged" | Price shown before install and inside the add-on. Nothing is charged unless you subscribe. |
| Support that doesn't answer | A person answers hello@greatwork.company within one business day. |
Help
"Failed to establish a database connection"
That message covers several problems. In order of how often we see them: the firewall doesn't allow Google's IP ranges; the database listens only on a private address; the user may only connect from localhost (in MySQL, create it as 'user'@'%'); the SSL setting doesn't match the server. The connection's Test button walks through them.
My database is on my office network
Google's servers have to reach it over the internet. Give it a public address (or a hosted replica) that allows only Google's IP ranges, on a port of 1025 or higher, with TLS on.
Can a cell value change my query?
No. Every {{...}} value is sent as a bound JDBC parameter, never pasted into the SQL text. Don't put quotes around placeholders.
Does it ever write to my database?
Only if you turn on write-back for both the connection and the query, and only after you confirm the reviewed changes. Imports run read-only and are rolled back.
How often can it refresh?
Google runs add-on schedules at most once an hour and limits total trigger time per day (90 minutes on personal accounts, 6 hours on Google Workspace).
Still stuck?
Email hello@greatwork.company with the message from the Log tab (it never contains your password). A person replies within one business day.
Privacy
- Google data it accesses: only the spreadsheet you open it in. It writes query results there, reads cells you use as parameters, and reads rows you edited when you send edits back. It can't open your other files, your Drive or your Gmail.
- Your database connections: host, user and password are stored only in your Google account's private add-on storage. Never in the spreadsheet, never visible to collaborators, never sent to Great Work.
- Your data: queries run from Google's servers straight to your database, and results go straight into your spreadsheet. They never pass through our servers.
- Saved queries and the run log: stored in the spreadsheet's add-on storage, visible to its editors, never containing passwords.
- What reaches Great Work: your Google account email, the product id and a count of trial uses, for billing. See the full privacy policy.
- Sharing: we don't sell data, use it for ads, or use it to train AI models.
- Rowferry's use and transfer of information received from Google APIs adheres to the Google API Services User Data Policy, including the Limited Use requirements.