# Google Sheets

{% hint style="warning" %}
We do not recommend using Google Sheets as the **Production** database due to Google API limitations of the number of requests per minute per data source. If you have a large database and require stable performance, we recommend using the [UI Bakery Postgres](/extras/ui-bakery-postgres.md) database instead.
{% endhint %}

## Configuration

To connect your Google Sheets, follow the instruction below:

1. On the **Data sources** page, click **Connect**, and select *Google Sheets* in the Data sources list.
2. Specify the data source name and add the *link* to your sheet.

{% hint style="info" %}
Make sure that the data in Google Sheets is **structured** and each column has a name. This will allow UI Bakery to recognize [types of columns and data](/concepts/components/work-with-components/field-types-and-types-recognition.md) and present it in a correct way.
{% endhint %}

{% hint style="danger" %}
Also make sure that your file is NOT in the **.xlsx** format as it will not be processed by UI Bakery.

<img src="/files/PfOjs61UqbbdseT8EP4D" alt="" data-size="original">
{% endhint %}

3. Next, select the **Permissions** type - *Read and write* or *Read only*.
4. Click **Connect to Google Sheets** to authorize the access.\
   You'll be prompted to the Google Authorization page where you need to allow UI Bakery access to your Google Sheets.\
   :exclamation:<mark style="color:red;">Do NOT miss this step as the connection won't be established without it</mark>:exclamation:
5. Once you've authorized the access, click **Test connection** to check whether the data source can be connected, and then click **Connect Datasource** to complete the setup.

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

## Usage

When the connection with Google Sheets is established, you can start managing your data. The following *action steps* are supported with this data source:

* [SQL Query](/reference/working-with-actions/sql-query.md)
* [Load Table](/reference/working-with-actions/load-table-action.md)
* [Load Row](/reference/working-with-actions/load-row-action.md)
* [Create Row](/reference/working-with-actions/create-row-action.md)
* [Bulk Create Rows](/reference/working-with-actions/bulk-create-rows-action.md)
* [Update Row](/reference/working-with-actions/update-row-action.md)
* [Delete Row](/reference/working-with-actions/delete-row-action.md)

You can run the action and make sure the data is loaded in the **Result** tab.

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

After that, you might also want to transform or map your data and display it in a component. Check out the following pages for more information:point\_down:

{% content-ref url="/pages/FlXv8DDV9LepOxZWK1Z5" %}
[Data mapping & transforming](/build-from-scratch/getting-started/transform-data-with-javascript/mapping-and-transforming-data.md)
{% endcontent-ref %}

{% content-ref url="/pages/A1K6ffkaBf0Sq0hH1au3" %}
[Bind data to UI](/build-from-scratch/getting-started/bind-data-to-ui.md)
{% endcontent-ref %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.uibakery.io/reference/data-sources/google-sheets.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
