# How to work with Mavibot sheets

The **"Sheets"** section in MaviBot is a tool for convenient data storage and management within the platform. You no longer need to switch between different services—all your sheets are now available in a single project.

<div data-with-frame="true"><figure><img src="https://3082172314-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2IhL1FJdHq200VfDspKS%2Fuploads%2FFciLeuNjtJK2tJ9wytVM%2FScreenshot%202025-12-03%20at%2012.57.21.png?alt=media&#x26;token=fa7b55a8-0a75-4c8e-96c5-f2fcf496915b" alt="" width="563"><figcaption></figcaption></figure></div>

**Features:**

* Create sheets with any number of rows and columns.
* Store and edit data without third-party tools or services.
* Enter values, edit rows and columns, or delete them directly through the chatbot using functions.

**Advantages:**

* **Simplifies data management:** you can enter information into a table directly from the bot.&#x20;
* **Flexible and easy to use:** create as many tables as you need and customize them for your business tasks.

{% hint style="success" %}

#### **Manage your tables without leaving Mavibot**

Tables help businesses structure their data and speed up processes.
{% endhint %}

## How to create sheets

To get started, go to the **"Sheets"** section in the required project:

<div data-with-frame="true"><figure><img src="https://3082172314-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2IhL1FJdHq200VfDspKS%2Fuploads%2FWZn6LZxduHNjMGq9SDo0%2F%D0%A1%D0%BD%D0%B8%D0%BC%D0%BE%D0%BA%20%D1%8D%D0%BA%D1%80%D0%B0%D0%BD%D0%B0%202026-03-18%20%D0%B2%2014.29.20.png?alt=media&#x26;token=20a52047-52ca-49ce-a813-873e96b40d54" alt="" width="222"><figcaption></figcaption></figure></div>

Next, you will see the **"Create a sheet"** button. Click it to open a modal window where you need to enter the table name:

<div data-with-frame="true"><figure><img src="https://3082172314-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2IhL1FJdHq200VfDspKS%2Fuploads%2Fy3AXjz7jVK9VAcfGeKVO%2F%D0%A1%D0%BD%D0%B8%D0%BC%D0%BE%D0%BA%20%D1%8D%D0%BA%D1%80%D0%B0%D0%BD%D0%B0%202026-03-18%20%D0%B2%2014.30.01.png?alt=media&#x26;token=05877899-7de8-42b8-a227-a07cdb3ded1d" alt="" width="563"><figcaption></figcaption></figure></div>

Enter a name for the table and click **"Done"**. The new table will then be created in the project and appear in the **"Sheets"** section.

### Sheets settings

After creating the sheet, you need to add rows and columns. To do this, find the "Go to" button on the desired table and click it:

<div data-with-frame="true"><figure><img src="https://3082172314-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2IhL1FJdHq200VfDspKS%2Fuploads%2FB8r4A9ruO1JXRSO0ZD1V%2F%D0%A1%D0%BD%D0%B8%D0%BC%D0%BE%D0%BA%20%D1%8D%D0%BA%D1%80%D0%B0%D0%BD%D0%B0%202026-03-18%20%D0%B2%2014.39.42.png?alt=media&#x26;token=546ca51e-56e5-4aa8-b6f4-d1fea6f3c7ef" alt=""><figcaption></figcaption></figure></div>

You'll see the following settings:

<div data-with-frame="true"><figure><img src="https://3082172314-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2IhL1FJdHq200VfDspKS%2Fuploads%2Fj86wFRui1MozWSQ4K0TG%2FScreenshot%202025-12-03%20at%2013.03.40.png?alt=media&#x26;token=bbbef7b3-58ee-4fed-b97a-aca506103149" alt="" width="563"><figcaption></figcaption></figure></div>

1. Function for adding columns:

а) to add lettered columns

<div data-with-frame="true"><figure><img src="https://3082172314-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2IhL1FJdHq200VfDspKS%2Fuploads%2FhYGPPxDLyjcZsxk6LMEJ%2FScreenshot%202025-12-03%20at%2013.04.43.png?alt=media&#x26;token=fbc14f94-f553-40d3-a9e6-96f6e910aef8" alt="" width="350"><figcaption></figcaption></figure></div>

The button adds columns labeled A to Z to the table.

b) to add columns with custom names

<div data-with-frame="true"><figure><img src="https://3082172314-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2IhL1FJdHq200VfDspKS%2Fuploads%2FfwB7BgXLUGAUpZCBwCnt%2FScreenshot%202025-12-03%20at%2013.05.38.png?alt=media&#x26;token=38caf505-1628-4860-a93f-0247f9f134ff" alt="" width="339"><figcaption></figcaption></figure></div>

Clicking the button opens a modal where you can name the new column.

<div data-with-frame="true"><figure><img src="https://3082172314-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2IhL1FJdHq200VfDspKS%2Fuploads%2FcMdiBYakrj41l770ihWV%2FScreenshot%202025-12-03%20at%2013.11.23.png?alt=media&#x26;token=caf4aef3-92e8-40ec-8a65-2e6ec393690c" alt=""><figcaption></figcaption></figure></div>

Enter a name and click **"Done"** to add the column to the table.

<div data-with-frame="true"><figure><img src="https://3082172314-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2IhL1FJdHq200VfDspKS%2Fuploads%2FY7i7UVqwrXJN4BsTSst4%2FScreenshot%202025-12-03%20at%2013.13.47.png?alt=media&#x26;token=44c0c268-1f79-4f0b-a471-d2d0ce251e17" alt="" width="563"><figcaption></figcaption></figure></div>

<div data-with-frame="true"><figure><img src="https://3082172314-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2IhL1FJdHq200VfDspKS%2Fuploads%2F1DtlDgIhrQhYgpb2OFlp%2FScreenshot%202025-12-03%20at%2013.14.47.png?alt=media&#x26;token=e81fa38f-1c3e-43e6-b0b2-3fd20aa0a5f9" alt="" width="563"><figcaption></figcaption></figure></div>

2. Button for adding strokes:

<div data-with-frame="true"><figure><img src="https://3082172314-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2IhL1FJdHq200VfDspKS%2Fuploads%2FWh5yTJrQpyyJ0YbWlrwe%2FScreenshot%202025-12-03%20at%2013.17.09.png?alt=media&#x26;token=d07d23c9-0cbc-4cf5-a024-67580d0f60f9" alt="" width="563"><figcaption></figcaption></figure></div>

3. Sheet export

<div data-with-frame="true"><figure><img src="https://3082172314-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2IhL1FJdHq200VfDspKS%2Fuploads%2FWts1edlU2MkoyEV0dHRh%2FScreenshot%202025-12-03%20at%2013.18.47.png?alt=media&#x26;token=947d85da-fdbb-4354-8cff-4987996dac82" alt="" width="563"><figcaption></figcaption></figure></div>

Allows you to export the sheet in CSV format with all data and values, for example, to move the sheet to another Mavibot project or to another spreadsheet service.

4. The **Import CSV** feature enables you to upload data from an external service.

<div data-with-frame="true"><figure><img src="https://3082172314-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2IhL1FJdHq200VfDspKS%2Fuploads%2F3cRIezOortnF6TvaH8Nt%2FScreenshot%202025-12-03%20at%2013.19.32.png?alt=media&#x26;token=0179b3d4-e957-44f2-b701-c0414444335a" alt="" width="563"><figcaption></figcaption></figure></div>

### Other features

There is a dropdown menu that allows you to quickly browse sheets without leaving the main section.

<div data-with-frame="true"><figure><img src="https://3082172314-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2IhL1FJdHq200VfDspKS%2Fuploads%2FOp6TmvXzK3QfNN8hi5Xz%2FScreenshot%202025-12-03%20at%2013.22.25.png?alt=media&#x26;token=ce36ebc9-71ed-4568-a282-57ad820b606a" alt=""><figcaption></figcaption></figure></div>

You can also create new tables directly from the side menu.

To delete a sheet, go to the main section:

<div data-with-frame="true"><figure><img src="https://3082172314-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2IhL1FJdHq200VfDspKS%2Fuploads%2FdWVRYPtDlmaYDwZ6GVhp%2F%D0%A1%D0%BD%D0%B8%D0%BC%D0%BE%D0%BA%20%D1%8D%D0%BA%D1%80%D0%B0%D0%BD%D0%B0%202026-03-18%20%D0%B2%2014.46.57.png?alt=media&#x26;token=ae6d6dfb-face-44e5-ad95-5d7f476a0167" alt=""><figcaption></figcaption></figure></div>

Then, find the **Delete** button on the card of the table you want to remove.

{% hint style="danger" %}
Warning!

Deleted tables cannot be restored.
{% endhint %}

### How to enter values into the sheet

You can enter values into the sheet manually:

<div data-with-frame="true"><figure><img src="https://3082172314-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2IhL1FJdHq200VfDspKS%2Fuploads%2FUc82lRuGvNgLKR3RNzVK%2FScreen%20Recording%202025-12-03%20at%2013.26.42.gif?alt=media&#x26;token=8372e314-e402-43f5-9a92-952f22e64565" alt="" width="513"><figcaption></figcaption></figure></div>

Or by using functions in the chatbot.

### **How to find a sheet ID**

You will need a Sheet ID to use chatbot functions related to this table.

1. **Navigate to your table.** Find the desired table in the list and click on its name to open it.
2. **Locate the Table ID in the address bar.** Click on the address bar of your browser — the Table ID is the unique string of characters at the end of the URL.

<div data-with-frame="true"><figure><img src="https://3082172314-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2IhL1FJdHq200VfDspKS%2Fuploads%2FkyfKw9wZrjiEZoAB3VPH%2FScreenshot%202025-12-03%20at%2013.34.42.png?alt=media&#x26;token=d1afd0d9-93d4-403c-80be-db2007fd68bd" alt="" width="563"><figcaption></figcaption></figure></div>

3. **Example:**\
   In a URL like `https://mavibot.ai/projects/11111/table/2`\
   the Table ID is **`2`**.
4. **Copy the ID**\
   Select and copy this number from the address bar to use in your chatbot configuration.

<div data-with-frame="true"><figure><img src="https://3082172314-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2IhL1FJdHq200VfDspKS%2Fuploads%2F1WR8sxosv23aroqADcyC%2FScreenshot%202025-12-03%20at%2013.33.31.png?alt=media&#x26;token=38f6809d-cae7-4d87-a425-6e490a4f7292" alt="" width="563"><figcaption></figcaption></figure></div>

### How to create a new record in the sheet

new\_record(table\_id, data) – create a new entry in the table with the specified values.

table\_id – the ID of the table

data – a dictionary containing the data to be entered. Example: {"column\_name1": "value1", "column\_name2": "value2"}. If a column does not exist, it will be created. Response: the ID of the new entry

### Example

<div data-with-frame="true"><figure><img src="https://3082172314-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2IhL1FJdHq200VfDspKS%2Fuploads%2F0CP6BzWsEoMmMSRRKFEU%2FScreenshot%202025-12-03%20at%2013.41.53.png?alt=media&#x26;token=2ae2aa08-30be-4152-9be8-aa00863c6ab1" alt="" width="375"><figcaption></figcaption></figure></div>

### How to edit an existing record in the sheet

edit\_record(table\_id, record\_id, data)

table\_id – the ID of the table

record\_id – the ID of the entry to be edited

data – a dictionary containing the data to be updated. Example: {"column\_name1": "value3", "column\_name2": "value4"}. If a column does not exist, it will NOT be created.

Response: Returns the full data of the edited entry in the format {"column\_name1": "value3", "column\_name2": "value4"}

### Example

<div data-with-frame="true"><figure><img src="https://3082172314-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2IhL1FJdHq200VfDspKS%2Fuploads%2FI1Ih5RUI5izikUhRDa4L%2FScreenshot%202025-12-03%20at%2013.52.26.png?alt=media&#x26;token=ba42c2a5-85b6-4b27-8514-4ae820e91205" alt="" width="375"><figcaption></figcaption></figure></div>

### How to delete a sheet record by its ID

delete\_record(table\_id, record\_id)

table\_id – the ID of the table

record\_id – the ID of the entry to delete

Response:

{'message': 'Deleted entries: 1'}

### How to find the first record with the specified value in a sheet

find\_record(table\_id, value, find\_in, return\_from)

table\_id – the ID of the table

value – the value to search for

find\_in – optional. The name of the column to search in. If not specified, the search will be performed across all columns

return\_from – optional. The name of the column from which to return the value

Response: If return\_from is specified, the value of the specified column will be returned (if it exists in the table). If return\_from is not specified or the column does not exist, the full data of the found entry will be returned: {"column\_name1": "value3", "column\_name2": "value4"}

### Example

<div data-with-frame="true"><figure><img src="https://3082172314-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2IhL1FJdHq200VfDspKS%2Fuploads%2FxUuoL6nYrAeQoIJ81pgY%2FScreenshot%202025-12-03%20at%2013.54.54.png?alt=media&#x26;token=1706fd16-fb5f-49a0-99fe-d7493ac6d42f" alt="" width="375"><figcaption></figcaption></figure></div>

### How to get values from the specified record

get\_record\_data(table\_id, record\_id, return\_column )&#x20;

table\_id – the ID of the table

record\_id – the ID of the entry to retrieve values from

return\_column – optional. The name of the column from which to return the value

Response: If the entry is found, returns a dictionary like {"column\_name1": "value1", "column\_name2": "value2"}. If return\_column is provided and the column exists, only the value from that column will be returned.

### How to retrieve all values when searching across multiple columns&#x20;

find\_records\_multiple\_cols\_list(table\_id, column\_data, return\_col, with\_index, delimiter, algorithm) – Use this function when you need to search across multiple columns at once and retrieve a list of values from a column in rows where all values are found. (This is similar to the sheet\_search\_in\_multiple\_cols\_return\_list function for Google Sheets.)

**table\_id** — the ID of the table

**column\_data** — the search query, i.e., what you want to find

**return\_col** — the column number from which to return values

**with\_index** — index or numbering in the list of found values (0 – numbering (1, 2, 3,…); 1 – row index; "" – list of values on new lines without indexes or numbering)

**delimiter** — separator between the index and the value

**algorithm** — search algorithm (F – exact match, K – keyword match, R – regular expression, 1–100 – similarity percentage (see details above))

Example:

table\_id = 7

data = {"age": "26", "city": "New York"}

return\_col = "name"

with\_index = 1

delimiter = " - "

algorithm = "F"

res = find\_records\_multiple\_cols\_list(table\_id, data, return\_col, with\_index, delimiter, algorithm)

res\_list = res\["list"]

<div data-with-frame="true"><figure><img src="https://3082172314-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2IhL1FJdHq200VfDspKS%2Fuploads%2FRrjzfAW43amjZ0kEYKFe%2FScreenshot%202025-12-03%20at%2014.01.11.png?alt=media&#x26;token=165667ab-82ff-495e-ba73-bc29e3467b1b" alt="" width="375"><figcaption></figcaption></figure></div>

If the query executes successfully, the response is a dictionary containing the status and all cells with values:&#x20;

{"status":true,"rows\_index":\[2,3],"quantity":2,"list":"2 - John\n3 - Anna"}

**status** — the search result

**rows\_index** — an array with the numbers of the found rows

**quantity** — the number of rows found

**list** — a string with all values from the selected column

If an error occurs, the response will be status: false along with an error description: {"status": false, "error": "Error or description"}

### How to retrieve the first value when searching across multiple columns

find\_first\_record\_multiple\_cols\_row(table\_id, column\_data, algorithm) – use this function when you need to search across multiple columns at once and retrieve the first matching row. (This is similar to the sheet\_search\_in\_multiple\_cols\_return\_row function for Google Sheets.)

**table\_id** — the ID of the table

**columns** — the search query, i.e., what you want to find

**algorithm** — the search algorithm (F – exact match, K – keyword match, R – regular expression, 1–100 – similarity percentage (see details above))

Example:

table\_id = 7

data = {"age": "26", "city": "New York"}

algorithm = "F"

res = find\_first\_record\_multiple\_cols\_row(table\_id, data, algorithm)

row\_data = res\["row\_data"]

row\_id = row\_data\["ID"]

row\_name = row\_data\["name"]

row\_age = row\_data\["age"]

<div data-with-frame="true"><figure><img src="https://3082172314-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2IhL1FJdHq200VfDspKS%2Fuploads%2FVfjgTTezkZigRY2IjAju%2FScreenshot%202025-12-03%20at%2014.03.53.png?alt=media&#x26;token=73437dda-fecf-4e70-931e-4bb2d8b4e392" alt="" width="563"><figcaption></figcaption></figure></div>

If the query executes successfully, the response is a dictionary containing the status and all cells with values.

{"status":true,"rows\_index":\[2,3],"quantity":2,"row\_data":{"ID":2,"name":"John","age":"26","city":"New York"},"row":2}

**status** — the search result

**rows\_index** — an array with the numbers of the found rows

**row\_data** — data from the found row

**row** — the number of the found row

If an error occurs, the response will be status: false along with an error description: {"status": false, "error": "Error or description"}
