# 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](https://docs.uibakery.io/extras/ui-bakery-postgres) 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](https://docs.uibakery.io/concepts/components/work-with-components/field-types-and-types-recognition) 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="https://837703843-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FUX6zPRMFFK0yrTghj7cY%2Fuploads%2Fgit-blob-b1448069c4755f62e94ed517420f5250384742c1%2FScreenshot%202021-10-12%20at%2010.51.35.png?alt=media" 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="https://837703843-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FUX6zPRMFFK0yrTghj7cY%2Fuploads%2FUJ1GsQe10MtUlPvjQe10%2FCleanShot%202025-04-16%20at%2013.30.40%402x-min.png?alt=media&#x26;token=ccc50536-1d41-442a-a4c5-a03380692933" 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](https://docs.uibakery.io/reference/working-with-actions/sql-query)
* [Load Table](https://docs.uibakery.io/reference/working-with-actions/load-table-action)
* [Load Row](https://docs.uibakery.io/reference/working-with-actions/load-row-action)
* [Create Row](https://docs.uibakery.io/reference/working-with-actions/create-row-action)
* [Bulk Create Rows](https://docs.uibakery.io/reference/working-with-actions/bulk-create-rows-action)
* [Update Row](https://docs.uibakery.io/reference/working-with-actions/update-row-action)
* [Delete Row](https://docs.uibakery.io/reference/working-with-actions/delete-row-action)

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

<figure><img src="https://837703843-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FUX6zPRMFFK0yrTghj7cY%2Fuploads%2FgT5OcZyJ2W6OKSSc09H0%2FCleanShot%202025-04-16%20at%2013.45.26%402x-min.png?alt=media&#x26;token=882ad236-46f7-44d9-9077-912ad2f9e785" 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="../../build-from-scratch/getting-started/transform-data-with-javascript/mapping-and-transforming-data" %}
[mapping-and-transforming-data](https://docs.uibakery.io/build-from-scratch/getting-started/transform-data-with-javascript/mapping-and-transforming-data)
{% endcontent-ref %}

{% content-ref url="../../build-from-scratch/getting-started/bind-data-to-ui" %}
[bind-data-to-ui](https://docs.uibakery.io/build-from-scratch/getting-started/bind-data-to-ui)
{% endcontent-ref %}
