# AI чат-бот для онлайн-бронирования

Mavibot services — это один из разделов, связанных с CRM-системой, который позволяет автоматизировать заполнение расписания сотрудников с помощью онлайн-записи через бота.

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

Для работы с онлайн-записью и чат-ботом на основе искусственного интеллекта нам понадобится:

1. Настроенная ветка с категориями и самими услугами, а также заполненное расписание сотрудников.

{% hint style="warning" %}
Обратите внимание! \
Не забудьте назначить сотрудникам должность в настройках услуги, иначе функция чтения услуг не будет работать!
{% endhint %}

2. В конструкторе воронки есть два блока;
3. ИИ-ассистент.&#x20;

## Конструктор сценариев

Шаг 1. Перейдите в конструктор воронки и создайте блок "Start":

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

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

Кроме того, информация из переменной будет доступна всем вашим клиентам.

Для этого перед объявленной переменной напишите project, затем имя переменной service\_info, после чего присвойте ей значение функции чтения доступных услуг в ветке get\_info\_for\_booking.

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

Итого получаем: project.service\_info = get\_info\_for\_booking().

Чтобы понять, что блок запустился, добавьте любое системное сообщение, а также для отображения значений, хранящихся в переменной, выведите её с помощью конструкции #{}:

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

Далее перейдите в окно тестирования бота и запустите блок для кеширования переменной в настройках проекта:

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

Если вы всё сделали правильно, вы получите ответ от бота в виде сообщения, которое указали в этом блоке (в нашем примере, "Переменная обновлена") и значения, содержащегося в переменной.

{% hint style="success" %}
Обратите внимание!

После настройки ИИ-чатбота и онлайн-записи не удаляйте блок "Start"

Он понадобится вам, если вы обновите список услуг или добавите новых сотрудников.

Чтобы обновить переменную service\_info в проекте, просто запустите этот блок в окне тестирования, и тогда обновлённые данные будут включены в значение переменной.
{% endhint %}

Шаг 2. Создайте второй блок — “Chat”, где необходимо зарегистрировать:

1. Функцию создания записи

&#x20;Функция create\_booking\_by\_name (service\_name, date, date\_time, company\_id) создаёт запись на основе данных, переданных системой от ИИ-ассистента.

Для генерации записи функция принимает три обязательных параметра:

<table><thead><tr><th width="297">параметры</th><th>description</th></tr></thead><tbody><tr><td><mark style="color:$danger;"><strong>!</strong></mark> service_name</td><td>обязательный параметр, название услуги</td></tr><tr><td><mark style="color:$danger;"><strong>!</strong></mark> date</td><td>дата в формате dd.mm.yyyy</td></tr><tr><td><mark style="color:$danger;"><strong>!</strong></mark> date_time</td><td>время услуги в формате hh:mm</td></tr><tr><td>company_id</td><td>ID филиала, необязательный<br>Если он указан, будет создана запись на услугу с указанным названием, относящуюся именно к этому филиалу.<br>Этот параметр может понадобиться, если в нескольких филиалах есть услуги с одинаковым названием.</td></tr></tbody></table>

2. project.service\_info = get\_info\_for\_booking() — это нужно для настройки и создания записи в CRM-системе; эти бесплатные услуги были предоставлены пользователям благодаря наличию дополнительной информации об услугах.

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

В поле блока сообщения укажите нужный ответ бота после того, как клиент выберет услугу и время.

## Как работает ИИ-ассистент

Далее перейдите в ИИ-ассистент, где нужно настроить параметры для онлайн-записи.

Выберем роль ассистента — это должна быть онлайн-запись:

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

Готовые настройки можно выбрать на своё усмотрение:

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

От чего зависит выбор наших настроек?:

1. Минимизация фантазии — это опция, необходимая для того, чтобы бот был менее креативным и советовал клиенту только на основе доступных данных.
2. Пошаговый ввод данных — потребуется вводить данные поэтапно для формирования заявки и переменных.
3. Не обучаться на сообщениях — чтобы ограничить влияние третьих лиц на бота и предотвратить его порчу злоумышленниками.
4. Кнопки — чтобы клиент не вводил самостоятельно дату, время и услугу в процессе оформления заявки в боте.

Далее перейдите в настройки бота, где мы опишем его основные задачи:

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

#### **Важное примечание по настройке**

Эта роль уже предварительно настроена разработчиками MaviBot с основной функциональностью. В настройках вам нужно указать только **дополнительные ключевые команды** которые выходят за пределы предполагаемой базы знаний бота.

**Рекомендация:**

Нет необходимости объяснять боту его основное назначение — он уже полностью способен консультировать клиентов по вашим услугам. Вместо этого сосредоточьтесь на уникальных сценариях, конкретных деталях продукта или исключительных случаях.

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

{% hint style="success" %}

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

**Выбор услуги с помощью кнопок**

С предустановленными **"Button"** настройками ИИ-ассистент показывает доступные услуги в виде интерактивных кнопок.

**Ключевое преимущество:** клиентам больше не нужно вручную вводить названия услуг — они могут просто нажать на нужную кнопку для мгновенного выбора.
{% endhint %}

После того как клиент нажмёт на кнопку, ИИ проконсультирует его по стоимости и самой услуге:

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

б) Далее бот самостоятельно покажет свободные дни и время для услуги, выбранной клиентом, поскольку это также настроено в параметрах бота.

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

2. Обратите внимание на следующую команду в настройках бота:

**Напишите без изменений start\_block\_from\_ai N**

Эта команда гарантирует, что ИИ-ассистент отвечает без изменения исходной логики, заданной в `start_block_from_ai` .

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

"Затем выполните команду “start\_block\_from\_ai <mark style="color:зелёный;">**11916**</mark>" — вместо чисел, отмеченных зелёным, впишите ID блока "Chat", который был создан ранее в конструкторе воронки. В нём содержится необходимая функция для создания записи в системе бронирования:

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

Скопируйте ID блока и задайте его в команде 'Then execute command  "start\_block\_from\_ai N"', подставив вместо N ID.

### Другие настройки ассистента

**Чтобы использовать кешированную переменную:** Ссылайтесь на переменную, сохранённую в **«Start»** блоке в настройках знаний бота.

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

В знаниях бота переменную нужно указывать как переменную с помощью конструкции #{}

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

В поле «Формат передаваемых данных» введите значение и ключ:

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

Эти переменные будут переданы в систему после вызова блока, и с помощью нашей функции create\_booking\_by\_name(service\_name, date, date\_time) будет создана запись.

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

В том же **"Chat"** блоке мы повторно регистрируем `service_info` переменную. Это гарантирует, что после завершения клиентом бронирования переменная, заполненная её функцией, автоматически обновится с учётом последних доступных слотов времени.

Теперь давайте протестируем ассистента, чтобы убедиться, что процесс обновления работает корректно.

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

Ассистент сработал корректно.

В примере вы увидели, что в последнем сообщении, отправленном клиенту, отображается результат функции: после отладки работы ИИ-ассистента с функцией онлайн-записи вы можете удалить переменную `#{result}` из сообщения в **Chat** .

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

После тестирования и отладки ИИ-ассистента с онлайн-записью вы можете удалить `#{result}` конструкцию из сообщения в блоке Chat конструктора чатбота.

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

Теперь посмотрим на календарь в разделе "Booking":

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

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

В Календаре автоматически создаётся соответствующая запись с учётом длительности, необходимой для забронированной услуги.

{% 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/online-booking.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.
