Маршруты
От маршрутов зависит по какой из цепочки сценариев пойдет бот при общении с пользователем.
Маршруты — это начальная точка взаимодействия бота и пользователя при получении очередного сообщения пользователя ботом. Маршруты позволяют настроить условия запуска созданных скриптов.
Бот взаимодействует с пользователем, анализирует полученное сообщение, находит с списке подходящий маршрут и затем стартует скрипт, а дальше бот выполняет сценарий уже по скрипту.
Если не найден ни один маршрут, то выполняется резервный скрипт с типом Fallback.
Маршруты необходимо создавать в разделе главного меню Настройки бота подраздел Маршруты.
На экранной форме следует нажать кнопку Создать маршрут.
При создании нового маршрута необходимо заполнить следующие параметры:
- Название — логически понятное название маршрута , например, "Основной маршрут";
- Скрипт — из списка скриптов выбрать скрипт, который будет запущен при старте данного маршрута;
- Регулярное выражение — параметр маршрута, слова по которым бот должен будет запуститься. Например:
- .* — это выражение означает, что старт бота произойдет при любом введенном слове или символе со стороны пользователя;
- бот|меню — синтаксис написания выражения. Данное выражение позволит настроить запуск бота после остановки или при намерении пользователя вернуться в главное Меню.
Как составить свое произвольное регулярное выражение можно узнать на странице Регулярные выражения.
- Статус лида — значение выбирается из списка , означает при каком статусе лида будет выполняться данный маршрут;
- Контекст лида — параметр маршрута, который задается командой в скрипте бота и означает выполнение маршрута удовлетворяющего данному условию.
В регулярном выражении есть возможность указания флагов маршрута в формате:
рег_выражение:FLAGS[список флагов через запятую] |
Регулярное выражение можно не указывать, тогда запись будет выглядеть так :FLAGS[список флагов через запятую]
Например:
.*:FLAGS[EMPTY,NO_RUN] |
Доступные флаги:
- EMPTY — позволяет выполнять проверку v8 условия и запустить маршрут, если во входящем вебхуке от пользователя не указан текст, например, если прислали файл, локацию и т.д.
-
ANY — любой текст. Идентично регулярному выражению .* При данном флаге регулярное выражение не проверяется.
- NO_RUN — не запускать скрипт маршрута, чтобы не сбрасывать беседу лида. Флаг необходимо использовать с пустым параметром Запускаемый скрипт в маршруте. Этот флаг необходимо указывать, если в условии маршрута выполняется bot.scheduleJob и return true.
Данный функционал используется при работе с геолокацией.
В разделе Маршруты располагается список маршрутов данного бота с доступными операциями:
- Перейти в редактор скрипта — будет произведен переход в скрипт для редактирования, который указан в свойствах маршрута;
- Редактировать свойства маршрута;
- Удалить маршрут.
Маршруты разделены на 2 группы:
- Обычные маршруты;
- Маршруты с диплинками.
Каждая группа маршрутов обладает своей сортировкой. Сортировка влияет на порядок поиска (и запуска) маршрута. Запускается только первый маршрут подходящий под все условия отбора. Если маршрут найден, то очищается беседа и запускается скрипт указанный в маршруте.
Убедитесь, что в стартовом маршруте НЕ проставлена галочка в пункте Действует в диалоге.
Для всех маршрутов с диплинками считается, что у них включена опция Действует в диалоге. Даже если эта опция отключена, при обработке маршрута с диплинком считается, что она включена.
Даже если случайно сбросим эту опция в базе данных, то на логику это не повлияет.
Более подробно как опция на логику: если включена опция Обработка Deep Link, то после сохранения маршрута (редактирование/создание), на бэке будет автоматически установлена опция Действует в диалоге.
Нет комментариев