# Маршруты От маршрутов зависит по какой из цепочки сценариев пойдет бот при общении с пользователем. **Маршруты** — это начальная точка взаимодействия бота и пользователя при получении очередного сообщения пользователя ботом. Маршруты позволяют настроить условия запуска созданных скриптов. ​ Бот взаимодействует с пользователем, анализирует полученное сообщение, находит с списке подходящий маршрут и затем стартует скрипт, а дальше бот выполняет сценарий уже по скрипту.

Если не найден ни один маршрут, то выполняется резервный скрипт с типом **Fallback**.

Маршруты необходимо создавать в разделе главного меню **Настройки бота** подраздел **Маршруты**. На экранной форме следует нажать кнопку **Создать маршрут**. [![image.png](https://docs.metabot24.ru/uploads/images/gallery/2023-02/scaled-1680-/dMxGL1y5iNC0XuO1-image.png)](https://docs.metabot24.ru/uploads/images/gallery/2023-02/dMxGL1y5iNC0XuO1-image.png) При создании нового маршрута необходимо заполнить следующие параметры: - **Название** — логически понятное название маршрута , например, "Основной маршрут"; - **Скрипт** — из списка скриптов выбрать скрипт, который будет запущен при старте данного маршрута; - **Регулярное выражение** — параметр маршрута, слова по которым бот должен будет запуститься. Например: - **.\*** — это выражение означает, что старт бота произойдет при любом введенном слове или символе со стороны пользователя; - **бот|меню** — синтаксис написания выражения. Данное выражение позволит настроить запуск бота после остановки или при намерении пользователя вернуться в главное **Меню**.

Как составить свое произвольное регулярное выражение можно узнать на странице **[Регулярные выражения](https://docs.metabot24.ru/books/metabot-platform/page/regulyarnye-vyrazeniya "Регулярные выражения")**.

- **Статус лида** — значение выбирается из списка , означает при каком статусе лида будет выполняться данный маршрут; - **Контекст лида** — параметр маршрута, который задается командой в скрипте бота и означает выполнение маршрута удовлетворяющего данному условию. [![image.png](https://docs.metabot24.ru/uploads/images/gallery/2023-02/scaled-1680-/KqimL6G0wO5jbAMz-image.png)](https://docs.metabot24.ru/uploads/images/gallery/2023-02/KqimL6G0wO5jbAMz-image.png) В регулярном выражении есть возможность указания флагов маршрута в формате:
**рег\_выражение:FLAGS\[список флагов через запятую\]**

Регулярное выражение можно не указывать, тогда запись будет выглядеть так **:FLAGS\[список флагов через запятую\]**

Например:
**.\*:FLAGS\[EMPTY,NO\_RUN\]**
Доступные флаги: - **EMPTY** — позволяет выполнять проверку v8 условия и запустить маршрут, если во входящем вебхуке от пользователя не указан текст, например, если прислали файл, локацию и т.д. - **ANY** — любой текст. Идентично регулярному выражению **.\*** При данном флаге регулярное выражение не проверяется. - **NO\_RUN** — не запускать скрипт маршрута, чтобы не сбрасывать беседу лида. Флаг необходимо использовать с пустым параметром **Запускаемый скрипт** в маршруте. Этот флаг необходимо указывать, если в условии маршрута выполняется **bot.scheduleJob** и **return true**.

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

В разделе **Маршруты** располагается список маршрутов данного бота с доступными операциями: - **Перейти в редактор скрипта** — будет произведен переход в скрипт для редактирования, который указан в свойствах маршрута; - **Редактировать свойства маршрута**; - **Удалить маршрут**. [![image.png](https://docs.metabot24.ru/uploads/images/gallery/2023-02/scaled-1680-/9CJyLte6tbquBkxm-image.png)](https://docs.metabot24.ru/uploads/images/gallery/2023-02/9CJyLte6tbquBkxm-image.png) #### Маршруты разделены на 2 группы: - Обычные маршруты; - Маршруты с диплинками. Каждая группа маршрутов обладает своей сортировкой. Сортировка влияет на порядок поиска (и запуска) маршрута. Запускается только первый маршрут подходящий под все условия отбора. Если маршрут найден, то очищается беседа и запускается скрипт указанный в маршруте.

Убедитесь, что в стартовом маршруте НЕ проставлена галочка в пункте **Действует в диалоге**.

Для всех маршрутов с диплинками считается, что у них включена опция **Действует в диалоге**. Даже если эта опция отключена, при обработке маршрута с диплинком считается, что она включена.

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

**Более подробно как опция на логику:** если включена опция **Обработка Deep Link**, то после сохранения маршрута (редактирование/создание), на бэке будет автоматически установлена опция **Действует в диалоге***.*