> For the complete documentation index, see [llms.txt](https://docs.sprinkledata.com/product/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.sprinkledata.com/product/ingesting-your-data/pipelines/files/google-sheet.md).

# Google Sheet

## &#x20;:tools: Step by Step Guide

On the navigation panel, Click on Ingest -> Pipeline -> Click the "**+ Setup Sources"** Icon

On clicking the “**+"** Icon, a list of Pipeline pops up. In this case, Google Sheet is selected. A new Google Sheet Pipeline is named and created.

![](/files/WlWm1D7ZL7Knm5VK2jg3)

‍

After naming the Pipeline, you can choose either an existing connection or create a new connection.

To create a connection, click on the “**Connect to GOOGLE**” button which pops up a Google login page.\
You can select Advance settings as well for the connection (Refer [here](#advanced-connection-settings))

![](/files/cdpgm9Tf1ocOwqy2FsgI)

Post login, you will be prompted to allow permissions required for sprinkle to read data further. Once you provide consent by clicking on ‘**Allow**’, the connection can be created from Sprinkle.

![](https://uploads-ssl.webflow.com/605c9e03d6553a5d82976ce2/6087c22902b151321325ceea_ds-googlesheet-3.png)

Once the connection is established, you can select **datasets**.&#x20;

<figure><img src="/files/TqXgPqAYWGHdm1ZKeY88" alt=""><figcaption></figcaption></figure>

In the Datasets tab, the user needs to select the **Spreadsheet ID** and then the **tab from the particular sheet** he intends to ingest. Please note that users can ingest only one tab at a time. On selecting the tab, a default table name is created. However, users can rename the table as per their requirements.&#x20;

User can select following skip rows and columns -&#x20;

* **Skip before header** - Specify the number of rows to skip before header line. Should not skip column header itself.
* **Exclude columns** - List of columns to be excluded when reading the CSV.

<figure><img src="/files/LGQFq89sAqD7Jxj5wFwQ" alt=""><figcaption></figcaption></figure>

{% hint style="success" %}
**Note**: There are a few validation checks that Sprinkle does to ensure the quality of the data being ingested.

:digit\_one: Empty Column Headers: No column header should be empty. Use Skip before headers if you want to skip a few rows on the top. In that case, the next row available is used to extract column names.

:digit\_two: Invalid Column Headers: Remove special characters or white spaces. Make sure each column name is unique and begins with an alphabet or underscore.

To guide you through the errors to fix them, in-place error markings are shown on the Preview table.
{% endhint %}

* *Destination Create Table Clause*: Provide additional clauses to warehouse-create table queries such as clustering, partitioning, and more, useful for optimizing DML statements. [Learn more](/product/ingesting-your-data/pipelines/databases/features/destination-create-table-clause.md) on how to use this field.
* **Preview**: Shows the preview of the table. You can change the headers and also change the variable type of the data in the columns.

Next, the user can click on **“Create”.**

Now the dataset is added. You can **edit** the dataset or **add more datasets**. Once done, click on Run and Schedule.

In the Run & Schedule tab, the status of the job will be updated in the tab below once it’s complete.&#x20;

The jobs can also be set to run automatically by enabling autorun. By default, the frequency is set to every night. Frequency can be changed by clicking on More --> Autorun-->Change Frequency.

![](/files/uXRcmov6aAbE8OUrZ9bO)

### Advanced Connection Settings

* **API Read Timeout (In seconds) :**  Maximum time of inactivity between two data packets when waiting for the server's response. The default value is 30 seconds
* **API Connection Timeout (In seconds) :** Time period within which a connection between a client and a server must be established.
* **Retry Limit :** Number of retries allowed when an API call fails. For example if an API call fails and retry limit is 5 then it will check 5 times for that API call and if it succeeded then it will stop checkin&#x67;**.**
* **Retry Sleep Time (In milliseconds) :** Given time, after which retry should happen in case an API call fails.
* **Version :** it gives information about the version of Google Sheet API being used.

‍
