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

Використовуючи спеціальну функцію, розроблену командою MaviBot, ваш AI-чатбот може інтелектуально зчитувати значення з Google Sheet і зберігати їх у **системну змінну в налаштуваннях вашого проєкту**. Це створює синхронізоване, динамічне джерело даних для вашого асистента.

#### **Практичне застосування**

Ця можливість є важливою для таких сценаріїв, як:

* **Асистент каталогу товарів:** AI, який консультує клієнтів щодо вашого **поточного асортименту товарів, цін і наявності** в режимі реального часу.
* **Розумний бот для промоакцій:** бот, який **просуває ваші пропозиції** динамічно підсвічуючи функції, характеристики або акції, взяті безпосередньо з вашої таблиці.

### **Як підготувати вашу таблицю до інтеграції**

Щоб почати, перейдіть до розділу таблиць:

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

Далі ви побачите кнопку "Додати таблицю", яка відкриває модальне вікно, де потрібно ввести назву таблиці:

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

Введіть назву таблиці та натисніть кнопку "Готово". Потім у проєкті буде створено нову таблицю, і вона з’явиться в розділі "Таблиці":

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

### Налаштування таблиці

Після створення таблиці потрібно додати рядки та стовпці. Для цього знайдіть кнопку "Перейти до" на картці потрібної таблиці та натисніть її.

Далі ви бачите такі налаштування:

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

Щоб додати стовпець із назвою, натисніть кнопку "+":

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

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

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

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

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

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

Скопіюйте (запам’ятайте) ID таблиці: для цього натисніть на адресний рядок:

<div data-with-frame="true"><figure><img src="/files/8db8243f78346348e0e4f9a7e4ec875bc4983e6b" 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/bc2fc47c299c77125e85cfe245ddf34ab844e4a5" alt=""><figcaption></figcaption></figure></div>

Визначте змінну (вона буде використовуватися для знань AI-асистента): у цьому прикладі змінна — 'record'.

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

<mark style="color:green;">`project.`</mark><mark style="color:red;">`record`</mark>` ``=`` `<mark style="color:orange;">`get_records_from_table`</mark>`(1)`

1. <mark style="color:green;">`project. - це конструктор для встановлення змінної в конфігурації проєкту;`</mark>
2. <mark style="color:red;">`record - назва змінної;`</mark>
3. <mark style="color:orange;">`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/0e4690ce80f0cde8a456d008b22586402e803895" 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/7c677467dae40e2164d8e8a194abcf34218f1645" alt=""><figcaption></figcaption></figure></div>

"Цей блок також може передавати завершальне повідомлення від бота, наприклад: 'Я передаю інформацію менеджеру! Менеджер зв’яжеться протягом 10 хвилин.'"

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

{% hint style="success" %}

## Зверніть увагу

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

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

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

### Читання таблиці

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

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

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

**Щоб перевірити вручну:**

1. Перейдіть на вкладку **Налаштування проєкту** розділ.
2. Знайдіть змінну, щоб переглянути її поточні дані.

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

На вкладці "Змінні" в налаштуваннях проєкту ви побачите вашу змінну зі значеннями, доданими до неї з таблиці. Отже, тепер у вашому проєкті є змінна з товарами, вартістю та всім, що ви вказали в таблиці.

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

Перейдіть до розділу "AI-асистент" і запустіть чатбот із налаштуваннями AI.

Вам потрібно вибрати роль "Асистент з продажів":

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

Також ми встановимо додаткові налаштування:

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

### &#x20;Налаштування AI-асистента

У налаштуваннях бота запишіть такі дані:

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

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

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

`"Якщо все правильно, виконайте команду "start_block_from_ai 11956"`, де замість N записано ID блоку з фінальним повідомленням: блок Chat передає дані на картку клієнта:

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

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

У полі "Знання бота" передайте змінну, яка раніше була кешована як блок із тригером.

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

Знання бота.

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

Таким чином, бот братиме інформацію зі змінної в налаштуваннях проєкту та консультуватиме ваших клієнтів щодо доступного асортименту товарів.

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

У форматі переданих даних ви самостійно вказуєте дані, які збираєте (наприклад, товар), потім вводите фразу з "ключем" і призначаєте значення цьому ключу.

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

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

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

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

На цьому етапі налаштування AI-асистента завершено.&#x20;

Інші параметри можна налаштувати на власний розсуд:

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

## Тестування бота

"Якщо у вас уже запущені боти, вкажіть у умові запуску AI-асистента, щоб запуск відбувався лише у вікні тестування."

Крок 1. Натисніть на конструктор тригерів

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

Крок 2. Виберіть вкладку з тестовим вікном і натисніть "Додати тригер":

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

Тепер у умові тригера ви побачите таке значення:

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

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

Після налагодження бота видаліть цю умову.
{% endhint %}

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

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

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

Це повідомлення надсилається в t[естовому режимі через команду "Block call <mark style="color:red;">**3124105**</mark>](/doc/uk/chatbot/ai/assistant.md#data-transfer-format)

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

Після тестування та налагодження бота запишіть у налаштуваннях бота команду "start\_block\_from\_ai <mark style="color:red;">**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/uk/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.
