> ## Documentation Index
> Fetch the complete documentation index at: https://www.integrate.io/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# ETL: Google Sheets Destination

> Configure the Google Sheets destination component in Integrate.io ETL to write pipeline output to a spreadsheet with OAuth, target range, and append modes.

Use the Google Sheets destination component to write data from your Integrate.io ETL pipeline into a Google Sheets spreadsheet.

## Connection

Select an existing Google Sheets connection or create a new one. For setup instructions, see [Allowing Integrate.io ETL access to Google Sheets](/etl/allowing-integrateio-etl-access-to-my-data-on-google-sheets)

## Destination Properties

The destination component is configured in **Step 02** of the component editor.

<Frame>
  <img src="https://mintcdn.com/integrateio/vPmzup7uAj66abcx/images/creating-packages/using-components-google-sheets-destination/image-1.webp?fit=max&auto=format&n=vPmzup7uAj66abcx&q=85&s=bc4a24fd6efd9145068c7f193ac4c8c4" alt="Google Sheets destination component configuration" width="1200" height="738" data-path="images/creating-packages/using-components-google-sheets-destination/image-1.webp" />
</Frame>

### Spreadsheet

Select the spreadsheet to write to. The dropdown lists all spreadsheets that have been shared with the service account. Use the search field to filter by name.

*If your spreadsheet is not listed, make sure it has been shared with the service account's email address with Editor access. See Step 5 in the connection setup guide.*

Click the **Refresh** button to reload the spreadsheet list if you have recently shared a new spreadsheet.

### Sheet

Select the sheet (tab) within the spreadsheet to write to. You have two options:

* **Select existing sheet.** Choose a sheet from the dropdown. The dropdown is populated automatically after a spreadsheet is selected.
* **Create new sheet.** Type a new sheet name in the text field. If the typed name does not match any existing sheet, a 'Create' option will appear in the dropdown. Click it to confirm. The connector will create the sheet tab automatically when the job runs. If a sheet with the same name already exists, the connector will write to the existing sheet.

### Operation Type

Select how records are written to the sheet on each pipeline run:

* **Append.** New rows are added after the last row of existing data. Existing data is preserved. This is the default.
* **Overwrite.** All existing data in the sheet is cleared before writing. Only the new data from the current job run will remain.

## Column Mappings

The **Column Mappings** section (**Step 03**) allows you to map fields from the upstream pipeline to columns in the Google Sheets spreadsheet.

For each mapping, configure:

| Field              | Description                                                         |
| ------------------ | ------------------------------------------------------------------- |
| Source Field       | The field from the incoming pipeline data.                          |
| Destination Column | The column name that will appear as the header in the target sheet. |

## Limits and Considerations

* **Google Sheets API quotas**: Google applies rate limits to the Sheets API. For large datasets, consider using a database or cloud storage destination instead. See [Google Sheets API usage limits](https://developers.google.com/sheets/api/limits) for details.
* **Cell limit**: Google Sheets has a maximum of 10 million cells per spreadsheet. Jobs that exceed this limit will fail.

## Related

<CardGroup cols={2}>
  <Card title="Google Sheets Source" icon="arrow-right" href="/etl/using-components-google-sheets-source" horizontal />

  <Card title="Connecting to Google Sheets" icon="arrow-right" href="/etl/allowing-integrateio-etl-access-to-my-data-on-google-sheets" horizontal />
</CardGroup>
