Google Sheets
Renta allows you to send data from your data warehouse directly to Google Sheets. Define a data model once, and Renta keeps a worksheet tab in sync with it, so your team works with live warehouse data instead of manual exports.
Authentication
Renta uses a GCP Service Account to authenticate with Google Sheets. You upload a JSON key file once, and every spreadsheet shared with the service account email becomes available for syncing.
Before connecting the destination, prepare the service account:
- In Google Cloud Console, go to IAM & Admin > Service Accounts and create a service account, or pick an existing one.
- Enable the Google Sheets API and the Google Drive API in the service account's GCP project.
- On the Keys tab, click Add Key > Create new key, select JSON, and download the file.
- Share each spreadsheet you want to sync with the service account email as Editor.
The service account email is in the client_email field of the JSON key file. After you connect the destination, Renta also shows it on the connection card.
Connect Google Sheets destination
Follow these steps to add Google Sheets as a Reverse ETL destination in Renta.
- Navigate to the Connections > Catalog section in the left sidebar and open the Destinations tab.
- Open the Analytics category and click the Google Sheets card.

Click Upload a Service Account JSON file and select the key file you downloaded from Google Cloud Console. Renta validates the key and creates the connection.

Finish the setup:
- Destination name.
Specify a name for this destination. This is used exclusively in the Renta interface.
Click Save to finish.

The new destination appears in the Destinations list with the Active status. You can now use it in Reverse ETL pipelines.

Create a pipeline
Once the destination is connected, create a pipeline to sync a data model into a spreadsheet.
A Reverse ETL pipeline reads from a data model: a SQL query saved in the Data models section that defines which warehouse data to sync. Create the data model before setting up the pipeline.
Create a Google Sheets pipeline
Link your data warehouse to Google Sheets and configure the pipeline.
In the left sidebar, click New pipeline. On the Source step, choose your data warehouse connection (for example, Google BigQuery) and click Next step.

On the Destination step, switch the toggle to Reverse ETL, select Google Sheets under Already connected, and click Next step.

Choose the Google Sheets connection you created earlier and click Next step. Each card shows the service account email — the one your spreadsheets must be shared with.

Pipeline configuration
On the final step, choose which data model to sync and where it lands in the spreadsheet.
Sync settings
Point the pipeline at a data model and a spreadsheet.

- What would you like Renta to sync.
Select Worksheet to mirror your data model into one worksheet tab. - Data model.
Choose the data model to sync. The columns available for mapping depend on this choice. - Spreadsheet.
Choose the Google spreadsheet. The list shows every spreadsheet shared with the service account email. The sync itself requires Editor access: with Viewer access the run fails with a permission error.
Worksheet
Choose the tab the data lands in. The tab is fully rewritten on every sync.

-
Worksheet Sync into an existing tab or let Renta create a new one.
Mode Description Use an existing worksheet Pick a tab from the spreadsheet. Renta overwrites its contents on every sync. Create a new worksheet Enter a name, and Renta adds the tab to the spreadsheet when the pipeline is created. -
Existing worksheet For the existing mode, select the tab to sync into.
A new worksheet name must be unique within the spreadsheet, up to 100 characters, and cannot contain the characters
: / \ ? * [ ].
Field mapping
Map data model columns to worksheet columns. Each mapped column becomes a column in the worksheet, and the column name becomes the header text in row 1.

All model columns are pre-mapped when the pipeline is created — remove the ones you don't need or rename the worksheet columns. Use Add mapping to add more:
| Mapping type | Description |
|---|---|
| Standard | Maps a data model column to a worksheet column. |
| Static | Writes a fixed value you specify into every row. |
| Variable | Writes a system value, such as the sync timestamp or the data model name, into every row. |
Then set the Integration name — a display name for this pipeline. Edit it to match your preferences.
Schedule
Choose how often the pipeline runs.

| Schedule type | Description |
|---|---|
| Manual | The pipeline runs only when triggered manually through the interface or via API. |
| Daily | The pipeline runs once a day at the specified update time. |
| Interval | The pipeline runs at specified time intervals. |
| Cron Expression | The pipeline runs on a schedule defined by a cron expression. |
For Daily schedules, set the Update time, the exact time each run starts, then click Create pipeline.

Renta also supports API triggers and integration with external orchestrators such as Apache Airflow, Dagster, and Prefect. See the full scheduling documentation for details.
The new pipeline appears in the Pipelines section under the Reverse ETL tab, where you can track its runs and progress.

Sync strategy
Every sync fully rewrites the worksheet tab so it exactly matches the current state of the data model.
On each run, Renta executes the data model query in your warehouse, resizes the tab to exactly the size of the result, writes the headers into row 1, and fills the rows below with the query results. Rows that were removed from the model are also removed from the sheet, so the tab always matches the model without stale rows or duplicates. If the model returns no rows, the tab keeps only the header row.
- Renaming the tab is safe.
Renta tracks the worksheet by its internal ID, so the sync continues into the renamed tab. - Deleting the tab is recoverable.
If the tab no longer exists, Renta creates a new one with the configured name on the next sync. - Manual edits are overwritten.
Renta rewrites all cell values and removes rows and columns outside the synced range, while cell formatting, protection, and data validation rules within the range are preserved. Keep formulas, charts, and notes in other tabs of the same spreadsheet and reference the synced tab from there.
Limits
- Cells per sync.
A sync can write up to 5 million cells: the number of rows, including the header row, multiplied by the number of mapped columns. If the data model exceeds this limit, the run fails before any data is written and the existing worksheet contents stay intact. Reduce the number of rows in the model or the number of mapped columns. - Cells per spreadsheet.
Google Sheets itself caps a spreadsheet at 10 million cells across all tabs. If the spreadsheet is over this limit, the sync fails with a message suggesting to remove unused sheets or columns, or to sync into a new spreadsheet. - Value formatting.
Renta writes values the same way a user would type them, so Google Sheets applies its usual parsing: numbers become numbers, and date-like strings become dates. Empty model values become empty cells.
Ready to get started?
Build your data pipeline today or get a personalized demo. Start free!
Need help?
Get expert support to ensure your project succeeds. We're here to help!
Feature requests?
Help shape our product! Share your ideas for new features and integrations.