Copy new database records to a spreadsheet
Checks a database table every hour and appends any records it has not copied yet to a Google Sheet.
Apps it connects
Authenticate each one once and the workflow is ready to run.
What it does
Each integration step this workflow runs, in order, what it is for, and the conditions and loops that decide when it runs.
- 1
Google SheetsRead columnReads column A of the sheet to learn which record ids have already been copied across. If
copiedKeysis empty- 2
Google SheetsAppend rowWrites the heading row if the sheet is empty, then appends one row per new record: id, created time, name, email.
- 2
- 3
SupabaseList rowsReads every row of the table you name so new records can be compared against the ids already in the sheet. For each
record- 4
Google SheetsAppend row
- 4
How it works
What happens on each run, in plain English.
Every hour, the workflow reads a table in your Supabase database and appends any record it has not copied before as a new row in a Google Sheet. People who cannot open the database get a live copy of the table in a spreadsheet, and the database itself is only ever read, never changed.
Each row holds the record's id, when it was created, its name and its email. The sheet is the memory: column A holds every copied id, and a record whose id is already there is skipped, so a second run adds nothing new, re-running after a failure is safe, and deleting a row from the sheet has that record copied again. Nothing already in the sheet is overwritten. A record with no id is skipped and reported, since it could never be told apart later, while a record missing a name or email is still copied with that cell left blank.
If the sheet is empty, a heading row is written first. The whole table is read on each run, so it suits tables up to a few thousand rows.
Start from a workflow that already works.
Add "Copy new database records to a spreadsheet" to your workspace, connect its apps, and make it yours.
Free plan, no credit card