Data Flow Destinations
Send Data Flow results to Google Sheets or supported database tables and choose how each run writes its rows.
A destination controls where each run writes its result and how new rows interact with existing data.
Google Sheets
Google Sheets is the only Free test and Starter destination. A delivery can:
- Write to an existing tab
- Create a tab in an existing spreadsheet
- Create a new spreadsheet
Write Modes
| Mode | Behavior | Best for |
|---|---|---|
| Update or add rows | Keep one row for each merge key. Matching keys update their existing row, new keys add rows, and rows missing from later runs remain. | Customer, campaign, or inventory tables with a reliable unique ID |
| Replace with latest data | Clear the destination tab and write only the latest result. | Dashboards and reports that should always show current data |
| Append every run | Add every run's rows without editing existing rows. Duplicates are possible. | Activity logs, archives, and preserving every run |
Choosing Merge Keys
Merge keys are the columns that decide whether an incoming row is the same row as one already at the destination. Choose the smallest set of columns that uniquely identifies a row: for a daily campaign report, date plus campaign ID keeps one row per campaign per day.
Two failure modes to avoid:
- Too few keys merges rows that should stay separate. Using only campaign ID on a daily report leaves one row per campaign that is overwritten each day, silently discarding history.
- Too many keys never matches, so every run inserts instead of updating and the destination grows without bound. Including a column that changes on every pull — a timestamp, a computed rate — has this effect.
Replace with latest data clears the destination before writing, including rows you added by hand and rows earlier runs delivered. If a run returns no rows, the destination ends up empty. Point this mode at a tab or table dedicated to the flow.
You can change a Google Sheets destination after creating the flow. The flow page keeps destination change history for Sheets destinations.
Database Tables
Database destinations are available on Max and Enterprise for:
- Snowflake
- BigQuery
- PostgreSQL
- Supabase
- MySQL
- SQL Server
Database tables support Update or add rows, Replace with latest data, and Append every run.
Flows that read from Tableau can deliver to Google Sheets but not to a database table, because Tableau does not report the complete physical tables behind its data.
The database connection and table target are fixed when you create the flow. Choose the intended database, schema, and table carefully before saving.
Writing to a production database has requirements a spreadsheet does not — network allowlisting, a dedicated writer role, the tables Better Analyst manages alongside yours, and how columns are typed. Database destinations covers all of it.
BigQuery destinations require a service-account connection. A BigQuery connection created with OAuth cannot be used as a Data Flow destination.