# AI-ассистент с таблицами MaviBot

Используя специальную функцию, разработанную командой MaviBot, ваш AI-чатбот может интеллектуально считывать значения из Google Таблицы и сохранять их в **системную переменную в настройках вашего проекта**. Это создаёт синхронизированный, динамический источник данных для вашего ассистента.

#### **Практические применения**

Эта возможность необходима для таких сценариев, как:

* **Ассистент каталога товаров:** ИИ, который консультирует клиентов по вашему **текущему ассортименту товаров, ценам и наличию** в режиме реального времени.
* **Умный бот для промоакций:** бот, который **продвигает ваши предложения** динамически выделяя особенности, характеристики или акции, напрямую взятые из вашей таблицы.

### **Как подготовить таблицу к интеграции**

Чтобы начать, перейдите в раздел таблиц:

<div data-with-frame="true"><figure><img src="/files/f62262d8ebb31d6915b6e0d3b3ac60773126ba0e" alt=""><figcaption></figcaption></figure></div>

Затем вы увидите кнопку «Добавить таблицу», которая открывает модальное окно, в котором нужно ввести название таблицы:

<div data-with-frame="true"><figure><img src="/files/ec9489fe798e77208164776b7fc5c30de0491f83" alt=""><figcaption></figcaption></figure></div>

Введите название таблицы и нажмите кнопку «Готово». Затем в проекте будет создана новая таблица, и она появится в разделе «Таблицы»:

<div data-with-frame="true"><figure><img src="/files/ad23bead932153c2e3b673640e5bf9b1c33a4a44" alt=""><figcaption></figcaption></figure></div>

### Настройки таблицы

После создания таблицы вам нужно добавить строки и столбцы. Для этого найдите кнопку «Перейти» на карточке нужной таблицы и нажмите на неё.

Вы увидите следующие настройки:

<div data-with-frame="true"><figure><img src="/files/5a72f0bd92d397bef380da8e27d3b1bc0d0761d7" alt="" width="563"><figcaption></figcaption></figure></div>

Чтобы добавить столбец с названием, нажмите кнопку «+»:

<div data-with-frame="true"><figure><img src="/files/ff3f37ac9e3be78e5390937d380e9293520123d2" alt=""><figcaption></figcaption></figure></div>

Когда вы нажмёте кнопку, откроется модальное окно, где можно ввести название нового столбца.

После ввода названия столбца нажмите кнопку «Готово», после чего новый столбец будет добавлен в таблицу. Добавьте нужное количество столбцов, а затем строк.

<div data-with-frame="true"><figure><img src="/files/a64e5f55b78e5db37c56e1d1ce4621a2f9c04df5" alt="" width="563"><figcaption></figcaption></figure></div>

&#x20;Теперь ваша таблица выглядит так.

<div data-with-frame="true"><figure><img src="/files/308c35b5cddccc0e968346928830ebb6fd03f4e9" alt="" width="563"><figcaption></figcaption></figure></div>

Скопируйте (запомните) ID таблицы: для этого нажмите на адресную строку:

<div data-with-frame="true"><figure><img src="/files/b001b1f3e338bd80507fbf5f3ba9e233df85b849" alt="" width="563"><figcaption></figcaption></figure></div>

Далее перейдём к настройке блоков в конструкторе.

## Работа в конструкторе чатбота

### Функция get\_records\_from\_table()

Чтобы использовать функцию get\_info\_from\_table(), вам нужен один блок в конструкторе чатбота.&#x20;

Перейдите на соответствующую вкладку в Mavibot и создайте блок с триггером (стартовый блок или блок-триггер):

<div data-with-frame="true"><figure><img src="/files/9fac459d8daeecf834d881e9cfbfef92db9b0eb9" alt=""><figcaption></figcaption></figure></div>

Определите переменную (она будет использоваться для знаний ИИ-ассистента): в этом примере переменная — 'record'.

Пример кода из калькулятора

<mark style="color:зелёный;">`project.`</mark><mark style="color:красный;">`record`</mark>` ``=`` `<mark style="color:оранжевый;">`get_records_from_table`</mark>`(1)`

1. <mark style="color:зелёный;">`project. — это конструктор для задания переменной в конфигурации проекта;`</mark>
2. <mark style="color:красный;">`record — имя переменной;`</mark>
3. <mark style="color:оранжевый;">`get_records_from_table`</mark>`(1) — функция, куда в качестве параметра передаётся ID таблицы.`&#x20;

<details>

<summary>Подробнее о функции get_record_from_table()</summary>

`get_records_from_table(table_id, start_row, count, start_col, end_col)` — для получения записей из таблицы

| Параметр        | Описание                                                                       | Примечание                                                                                                       |
| --------------- | ------------------------------------------------------------------------------ | ---------------------------------------------------------------------------------------------------------------- |
| **!** table\_id | ID таблицы (обязательный параметр)                                             |                                                                                                                  |
| start\_row      | необязательный параметр, целое число. Указывает начальную строку диапазона     | принимает номер строки, с которой начинать чтение значений таблицы, включительно. Должен быть указан без кавычек |
| count           | необязательный параметр, целое число. Указывает количество строк для получения | значение по умолчанию: 1000. Максимум: 5000. Должен быть указан без кавычек                                      |
| start\_col      | необязательный параметр, строка. Указывает начальный столбец диапазона         | принимает имя столбца, с которого начинать чтение значений таблицы, включительно. Должен быть указан в кавычках  |
| end\_col        | необязательный параметр, строка. Указывает конечный столбец диапазона          | принимает имя столбца, до которого читать значения таблицы, включительно. Должен быть указан в кавычках          |

**Чтобы прочитать все данные с определённой точки:** Укажите только **начало** диапазона. **Чтобы прочитать все данные до определённой точки:** Укажите только **конец** диапазона.

</details>

Вместо #{none} мы запишем нашу переменную в сообщение с помощью конструкции #{} , чтобы визуально увидеть, какие данные были записаны в переменную проекта.

<div data-with-frame="true"><figure><img src="/files/57fa937a154c50a08caf293e243c52d59524129f" alt=""><figcaption></figcaption></figure></div>

{% hint style="warning" %}

## Внимание

Переменная, вставленная в сообщение, нужна для проверки, корректно ли бот читает функцию. Когда вы запустите блок в тестовом режиме, бот покажет значения, которые будут присвоены переменной.
{% endhint %}

{% hint style="success" %}

## Обратите внимание

После настройки вызова блока в тестовом режиме и сохранения переменной в настройках проекта не удаляйте этот блок.&#x20;

Он может вам понадобиться: например, если вы добавили в таблицу ещё какие-то значения, просто запустите блок в тестовом режиме. Тогда данные в переменной проекта будут обновлены.
{% endhint %}

{% hint style="info" %}
Имя переменной может быть любым на ваш выбор.
{% endhint %}

### Блок передачи данных&#x20;

Далее мы создадим блок «Чат» для передачи данных в карточку клиента.

<div data-with-frame="true"><figure><img src="/files/14932ccb17004800b44a30c516e6b035c7473aff" alt=""><figcaption></figcaption></figure></div>

«Этот блок также может передавать завершающее сообщение от бота, например: “Я передаю информацию менеджеру! Менеджер свяжется в течение 10 минут.”»

Далее скопируйте ID блока. Он понадобится вам для настройки AI-ассистента в команде "start\_block\_from\_ai 11956" и тестовой команде "Block call 11956", где вместо <mark style="color:красный;">ID блока</mark> из примера нужно вставить ваш ID блока.

{% hint style="success" %}

## Обратите внимание

После тестирования замените "Block call <mark style="color:красный;">31241050</mark>" на команду "start\_block\_from\_ai <mark style="color:красный;">31241050"</mark>.

Команда "Block call <mark style="color:красный;">31241050</mark>" является отладочной и помогает понять, какие данные записывает бот (см. раздел "Тестирование").

Чтобы запустить бота для клиентов, укажите команду "start\_block\_from\_ai <mark style="color:красный;">31241050</mark>".
{% endhint %}

### Чтение таблицы

1. Перейдите в **режим тестирования бота** .
2. Запустите блок, содержащий триггер для чтения данных таблицы.

<div data-with-frame="true"><figure><img src="/files/601463190c6aeb20193fc3918b80361450570899" alt="" width="563"><figcaption></figcaption></figure></div>

Блок сработал корректно. Это подтверждают значения, которые теперь сохранены в соответствующей переменной в настройках вашего проекта.

**Чтобы проверить вручную:**

1. Перейдите на вкладку **Настройки проекта** .
2. Найдите переменную, чтобы посмотреть её текущие данные.

<div data-with-frame="true"><figure><img src="/files/2b1f97056ef60747187107bd762028dbad195fc8" alt="" width="563"><figcaption></figcaption></figure></div>

Во вкладке "Переменные" в настройках проекта вы увидите свою переменную со значениями, добавленными в неё из таблицы. Таким образом, теперь внутри вашего проекта есть переменная с товарами, стоимостью и всем, что вы указали в таблице.

## Работа в AI-ассистенте

Перейдите в раздел "AI assistant" и запустите чатбот с настройками ИИ.

Вам нужно выбрать роль "Sales assistant":

<div data-with-frame="true"><figure><img src="/files/3ff311af2a3e437f3a13912695858d3c19314dc1" alt=""><figcaption></figcaption></figure></div>

Также мы зададим дополнительные настройки:

<div data-with-frame="true"><figure><img src="/files/a26739ef2d2a9f26c7bc3dba423a8ede4276c5b8" alt="" width="563"><figcaption></figcaption></figure></div>

### &#x20;Настройки AI-ассистента

В настройках бота укажите следующие данные:

1. Позиция и инструкции для бота.

<div data-with-frame="true"><figure><img src="/files/3c7d85d26924a829fa93c412e76a4430a2dac4c5" alt="" width="563"><figcaption></figcaption></figure></div>

2. Команда для вызова блока и передачи переменных в систему записывается следующим образом:

`"Если всё верно, выполните команду "start_block_from_ai 11956"`", где вместо N указывается ID блока с финальным сообщением: блок Чат передаёт данные в карточку клиента:

<figure><img src="/files/6df4dde8f676537425adb351ff9359aff48e946f" alt=""><figcaption></figcaption></figure>

### Знания бота

В поле "Bot Knowledge" передайте переменную, которая ранее была сохранена как блок с триггером.

<div data-with-frame="true"><figure><img src="/files/46e3bfc280556dbe2485a788f49820d45c83cf1d" alt="" width="563"><figcaption></figcaption></figure></div>

Знания бота.

<div data-with-frame="true"><figure><img src="/files/0f43a1c18f9252549f549c69af4b7d1338a87ad5" alt=""><figcaption></figcaption></figure></div>

Так бот будет брать информацию из переменной в настройках проекта и консультировать ваших клиентов по доступному ассортименту товаров.

### Формат данных

В формате передаваемых данных вы сами указываете, какие данные собираете (например, товар), затем вводите фразу с "key" и назначаете ключу значение.

`имя клиента с ключом client_name, номер телефона клиента с ключом phone_number, город и адрес с ключом city_address, выбранный товар с ключом product, количество товара с ключом quantity, общую сумму заказа с ключом total_amount.`

<div data-with-frame="true"><figure><img src="/files/2419bdd0013192e2eb3beb76e82e37f4d474e499" alt=""><figcaption></figcaption></figure></div>

Таким образом, при вызове блока переменные будут переданы в карточку клиента: затем вы сможете работать с переменными, например, в конструкторе чатбота:

<div data-with-frame="true"><figure><img src="/files/174455694196184c7be5abab861e7c3a27bab9f8" alt="" width="563"><figcaption></figcaption></figure></div>

На этом этапе настройка AI-ассистента завершена.&#x20;

Остальные параметры можно настроить по своему усмотрению:

<div data-with-frame="true"><figure><img src="/files/aa2a18e862e68854ec6b2bde3454d974ae9bff87" alt="" width="563"><figcaption></figcaption></figure></div>

## Тестирование бота

«Если у вас уже запущены боты, укажите в условии запуска AI-ассистента запуск только в окне тестирования.»

Шаг 1. Нажмите на конструктор триггеров

<div data-with-frame="true"><figure><img src="/files/4c54c111b7eb1f0c251098463e1a5e63ee246404" alt=""><figcaption></figcaption></figure></div>

Шаг 2. Выберите вкладку с окном тестирования и нажмите "Добавить триггер":

<div data-with-frame="true"><figure><img src="/files/9bc5c64844a19289ac74de2710a3b0a8b8bd8cb4" alt=""><figcaption></figcaption></figure></div>

Теперь в условии триггера вы увидите следующее значение:

<div data-with-frame="true"><figure><img src="/files/e90dc68abb90625bfa86e578856b35e7511ee1d7" alt="" width="563"><figcaption></figcaption></figure></div>

{% hint style="info" %}
Таким образом бот будет запускаться только в окне тестирования и нигде больше.

После отладки бота удалите это условие.
{% endhint %}

<div data-with-frame="true"><figure><img src="/files/21fc05029167189eb05b94a645a489a9e3ab9270" alt="" width="375"><figcaption></figcaption></figure></div>

<div data-with-frame="true"><figure><img src="/files/2d86c61060d55e07bcbb980408ee151f0ec1386e" alt="" width="375"><figcaption></figcaption></figure></div>

<div data-with-frame="true"><figure><img src="/files/f95a957c86b8b15d9f5361892d03869910d0180e" alt="" width="375"><figcaption></figcaption></figure></div>

Это сообщение отправляется в t[естовом режиме благодаря команде "Block call <mark style="color:красный;">**3124105**</mark>](/doc/ru/chatbot/ai/assistant.md#data-transfer-format)

<div data-with-frame="true"><figure><img src="/files/54925cf6df10d1207e6da06eb9350b82360e26f1" alt="" width="375"><figcaption></figcaption></figure></div>

После тестирования и отладки бота пропишите в настройках бота команду "start\_block\_from\_ai <mark style="color:красный;">**31241050**</mark>".

{% hint style="success" %}
Этот подход позволяет вам создавать **любой тип интернет-магазина** и использовать **любые значения данных** хранящиеся в вашей таблице.

Единственное настоящее ограничение — ваше воображение.
{% endhint %}


---

# 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.mavibot.ai/doc/ru/chatbot/ai/tables.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.
