# Урок 2: Меню самообслуживания

В этом уроке вы узнаете, как с помощью Metabot24 создать бота с меню, который сможет проинформировать клиента о товаре и принять от него заявку.

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

<p class="callout info align-left">Подробнее изучить работу бота вы можете с помощью нашего примера — бота в Telegram: [**@MenuMetabot**](https://t.me/MenuMetabot)</p>

### Инструкция по разработке: Подготовка бота

**1.** Первым делом требуется создать бота и скрипт-приветствие в нем.

<p class="callout info align-left">Как это сделать вы можете узнать из урока **["Hello Humans: ваше руководство по быстрому старту"](https://docs.metabot24.ru/books/3-ucimsya-na-primerax/page/hello-humans-vase-rukovodstvo-po-bystromu-startu "Hello World: ваше руководство по быстрому старту")**</p>

**2.** В созданном скрипте добавьте команду **Отправить текст**, нажав на кнопку **Добавить команду** и выбрав ее в открывшемся окне. Напишите текст сообщения. Текст может содержать эмодзи для эмоционального окраса вашего приветствия.

Вы так же можете добавить в скрипт команду отправки изображения и еще команды отправки текста.

[![image.png](https://docs.metabot24.ru/uploads/images/gallery/2024-03/scaled-1680-/ZIA8WAjVqgESps39-image.png)](https://docs.metabot24.ru/uploads/images/gallery/2024-03/ZIA8WAjVqgESps39-image.png)

<p class="callout info">Вы можете создавать несколько последовательных записей с командой **Отправить текст**. К пользователю такие сообщения будут приходить последовательно, тем самым клиент не будет засыпан вашей информацией и что-то пропустит в сообщениях.</p>

### Создание разделов меню

**1.** Создайте новый скрипт "Меню", в котором будет описано меню самообслуживания, то есть цепочки сценариев, которые пользователь будет выбирать самостоятельно.

Блок **Команды** в данном скрипте оставляем пустым, а в блоке **Меню** добавим пункты меню.

Для данного бота достаточно создать меню из 4-х разделов:

- О нас;
- Контакты;
- Каталог;
- Сделать заказ.

<p class="callout info">**Внимание!** При создании пункта меню если поле **<span class="font-italic">Перейти в скрипт, после получения кода</span>** оставить не заполненным, т.е. по умолчанию со значением \[создать...\], то для этого пункта будет создан одноименный скрипт. Используйте данную функцию для удобства при добавлении новых пунктов меню.</p>

[![image.png](https://docs.metabot24.ru/uploads/images/gallery/2024-03/scaled-1680-/YNStJnxBTRsr1Zd9-image.png)](https://docs.metabot24.ru/uploads/images/gallery/2024-03/YNStJnxBTRsr1Zd9-image.png)

**2.** Откройте редактор скрипта, нажав на кнопку **Перейти в редактор скрипта**, расположенную напротив только, что созданного пункта меню **О нас**.

[![меню.png](https://docs.metabot24.ru/uploads/images/gallery/2024-03/scaled-1680-/EdF3MuHUpWSQBC9x-menyu.png)](https://docs.metabot24.ru/uploads/images/gallery/2024-03/EdF3MuHUpWSQBC9x-menyu.png)

Пункт меню **О нас** может содержать краткую информацию о кондитерском магазине, тематическую картинку и инструкцию для пользователя.

[![image.png](https://docs.metabot24.ru/uploads/images/gallery/2024-03/scaled-1680-/Rdxcv2OALXYza6z2-image.png)](https://docs.metabot24.ru/uploads/images/gallery/2024-03/Rdxcv2OALXYza6z2-image.png)

<p class="callout info">Блок **Меню** в данном случае необходимо оставить пустым для того, чтобы бот автоматически вернул нам предыдущий уровень после выполнения команд. Если в скрипте, описывающем пункт меню, нет вложенного подменю, то при работе бот вернет пользователю предыдущее меню.</p>

**3.** Далее перейдем в скрипт **Контакты**.

Скрипт **Контакты** создаем аналогичным способом, наполняя его командами <span class="font-italic">**Отправить текст**</span> с сообщениями по смыслу данного раздела.

[![image.png](https://docs.metabot24.ru/uploads/images/gallery/2024-03/scaled-1680-/CEAI7dn2KTpSshz9-image.png)](https://docs.metabot24.ru/uploads/images/gallery/2024-03/CEAI7dn2KTpSshz9-image.png)

**4.** Пункт меню **Каталог** создаем аналогичным способом. Отличие данного пункта от предыдущих в том, что его наполним и командами и вложенным меню, т.е. будет содержать подменю.

В качестве меню можно указать 2 товара и возврат в меню:

- Торт "Сердце";
- Торт "Звезда";
- Вернуться в меню.

[![image.png](https://docs.metabot24.ru/uploads/images/gallery/2024-03/scaled-1680-/BdUpjuZRjAvUHkuN-image.png)](https://docs.metabot24.ru/uploads/images/gallery/2024-03/BdUpjuZRjAvUHkuN-image.png)

Пункты меню о тортах, могут содержать команды **Отправить текст** и **Отправить изображение**, в которых вы расскажете о данном продукте.

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

<p class="callout warning">Обратим внимание, что пункт меню **Вернуться в меню** обязательно надо создавать, так как при вложенном подменю возврат в главное меню автоматически не производится!</p>

**5.** Пункт меню **Заказать** — это пункт, который будет содержать скрипт с ответом на вопрос пользователя и переводом диалога на оператора:

- Добавьте команду **Установить статус** лида со статусом **Заказ**;
- Добавьте одну или несколько команд **Отправить текст**, разместив там инструкции для действия пользователя;
- Добавьте команду **Стоп**.

[![image.png](https://docs.metabot24.ru/uploads/images/gallery/2024-03/scaled-1680-/X2TFtjnK2sIKhlYY-image.png)](https://docs.metabot24.ru/uploads/images/gallery/2024-03/X2TFtjnK2sIKhlYY-image.png)

**6.** Вернемся к редактированию скрипта **Приветствие** и добавим в него **Меню**, чтоб пользователю после приветственных сообщений предлагалось меню самообслуживания:

- Добавьте команду **Выполнить скрипт**, в качестве выполняемого скрипта указать скрипт **Меню**;
- Так же добавьте команду **Установит статус лида** со статусом **Первичное касание**.

[![меню.png](https://docs.metabot24.ru/uploads/images/gallery/2024-03/scaled-1680-/Bi3UwZvT6umuJI3s-menyu.png)](https://docs.metabot24.ru/uploads/images/gallery/2024-03/Bi3UwZvT6umuJI3s-menyu.png)

**7.** Создайте последний скрипт в вашем боте, который будет выполняться в том случае, если пользователь выбрал не верный пункт меню:

- Укажите название скрипта. Например: "Некорректный ввод";
- Тип скрипта - **Fallback**;
- Остальные параметры без изменения.

[![меню.png](https://docs.metabot24.ru/uploads/images/gallery/2024-03/scaled-1680-/kOZ8BQy2YYZMexuv-menyu.png)](https://docs.metabot24.ru/uploads/images/gallery/2024-03/kOZ8BQy2YYZMexuv-menyu.png)

Добавьте команду **Отправить текст**, в которой вы сообщите пользователю, что его вопрос не распознан. Напишите текст сообщения, например, "Вы ввели неправильную цифру. Попробуйте, пожалуйста, ещё раз.";

Добавьте команду **Повторить вопрос**.

[![image.png](https://docs.metabot24.ru/uploads/images/gallery/2024-03/scaled-1680-/qeeCV0UqZm6LgR1v-image.png)](https://docs.metabot24.ru/uploads/images/gallery/2024-03/qeeCV0UqZm6LgR1v-image.png)

<p class="callout warning">**Внимание!** Команда **<span class="font-italic">Повторить вопрос</span>** вернет пользователю предыдущее меню.</p>

Основные скрипты для работы бота созданы, далее рассмотрим создание маршрутов для взаимодействия бота с пользователями.

### Создание маршрутов

**1.** Создадим маршрут, который будет ссылаться на стартовый скрипт.

<p class="callout info align-left">Как это сделать вы можете узнать из инструкции [**"Маршруты"**](https://docs.metabot24.ru/books/2-instrukciya-polzovatelya/page/marsruty "Маршруты")</p>

**2.** Создайте маршрут, который будет запускаться когда пользователь передумал общаться с оператором и решил позвать бота.

- В качестве **Названия** укажите "Меню";
- В качестве скрипта выберите скрипт **Меню**;
- В Регулярном выражении напишите фразу: \\s\*бот\\s\*|\\s\*меню\\s\*
- В качестве статуса выберите **Заказ**.

[![меню.png](https://docs.metabot24.ru/uploads/images/gallery/2024-03/scaled-1680-/438NMuwLkWSLAEek-menyu.png)](https://docs.metabot24.ru/uploads/images/gallery/2024-03/438NMuwLkWSLAEek-menyu.png)

<p class="callout info">Это выражение означает, что бот будет реагировать на ввод текста "бот" или "меню" от пользователя.</p>

### Запуск бота в Telegram

**1.** Создадим канал Telegram.

<p class="callout info align-left">Как это сделать вы можете узнать из инструкции **["Интеграция канала Telegram с платформой Metabot"](https://docs.metabot24.ru/books/3-nastroika-botov/page/telegram "Telegram")**</p>

**2.** Далее перейдите в приложение Telegram, откройте ваш бот и нажмите кнопку **/start**. Если вы все сделали правильно, ваш бот поприветствует вас.

[![image.png](https://docs.metabot24.ru/uploads/images/gallery/2024-03/scaled-1680-/3NJ9gOXyh1xvJHxV-image.png)](https://docs.metabot24.ru/uploads/images/gallery/2024-03/3NJ9gOXyh1xvJHxV-image.png)

Поздравляем вас с созданием вашего бота с меню самообслуживания на платформе Метабот24!

<p class="callout info align-left">Рекомендуем так же ознакомиться с остальными нашими уроками по созданию ботов, например **[ Урок 3: Вывод фото в боте по REST API](https://docs.metabot24.ru/books/2-ucimsya-na-primerax/page/urok-3-vyvod-foto-v-bote-po-rest-api "Автоматизируем службу поддержки")**</p>