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

# Google Sheets

> Google Sheets is a web-based spreadsheet offered by Google as part of their Drive office services. It makes it easy to create, edit and collaborate with others from any device.

## Overview

Hightouch lets you pull data stored in Google Sheets and push it to downstream destinations. Before connecting your Google Sheets, it's best to make sure they meet formatting requirements.

## Google Sheets formatting requirements

* Your Google Sheet must be a Sheets file, not an `.XLS` or `.XLSX` file. If this is the case, you need to convert it to a Sheets file. To do so, go to [**File > Save as Google Sheets**](https://support.google.com/docs/answer/9331167?hl=en#2.5).
* Your Google Sheet must have column names in the first row of your sheet. In the following image, you can see that the column names are `id`, `created_at`, `name`, `website`, and `description`.

![Google Sheet Example](https://mintcdn.com/hightouch-3c037897/L_vQfA0JQEpeGUUo/images/sources/source-google-sheet-example.png?fit=max\&auto=format\&n=L_vQfA0JQEpeGUUo\&q=85\&s=721570a1bfd97b424298d2eb1957e973)

## Connection configuration

To get started, go to the [**Sources** overview page](https://app.hightouch.com/sources?from=docs) and click the **Add source** button. Select **Google Sheets** and follow the steps below.

### Authorize connection

1. Click **Log in to Google Sheets** and select the desired Google Account.
2. After reading what authorization you're giving to Hightouch, select **Allow**.
3. Select the **Spreadsheet** containg the data you wish to sync from the dropdown.
4. Click **Continue**.

> [!NOTE]
>
> Remember that [`.XLS` or `.XLSX` file types aren't supported](#google-sheets-formatting-requirements) and won't appear in the dropdown.

## Test your connection

When setting up Google Sheets as a source for the first time, Hightouch checks that you have the correct permissions. Once the test passes, click **Continue** to finish setup.

## Create models

Once your source configuration has passed the necessary validation, your source setup is complete. Next, you can set up [models](https://docs.hightouch.com/getting-started/concepts.md#models) to define which data you want to pull from Google Sheets.

### Model setup

1. In Hightouch, go to the [**Models** overview page](https://app.hightouch.com/models?from=docs).
2. Click **Add model.**
3. Select the Google Sheets source you previously created.
4. Select the **Sheet name** of the data you want to sync. Hightouch treats each sheet as a separate table. If you want to sync data from multiple sheets, you need to set up a separate model for each one.
5. Preview your model's query results.
6. Click **Continue**.
7. Name your model and select its [**primary key**](https://docs.hightouch.com/models/creating-models.md#unique-primary-key-requirement). Hightouch uses the primary key to determine which rows have been added, changed, or removed since the last sync.

## Tips and troubleshooting

If you run into an issue this page doesn't cover, [contact support](#pylon-chat).

### Internal error encountered

This error may occur when the spreadsheet you're syncing to contains sheets with charts or pivot tables.
Try moving the data you would like to update with Hightouch to a separate spreadsheet.
Then reference this data's range using a formula like [`IMPORTRANGE`](https://support.google.com/docs/answer/3093340?hl=en) in the spreadsheet with your charts and analysis.
This way, the sheet that Hightouch updates won't have the timeout issue, and you can still see the data on the sheet that contains charts or pivot tables.

### Unable to parse range

This error indicates that the spreadsheet (in the source configuration) or the sheet (in the model configuration) have either been renamed or deleted. You can fix this by ensuring that both the source and model are querying data from an existing spreadsheet and sheet.
