Перейти к основному контенту

Маршруты

От маршрутов зависит по какой из цепочки сценариев пойдет бот при общении с пользователем.

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

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

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

Маршруты необходимо создавать в разделе главного меню Настройки бота подраздел Маршруты.

На экранной форме следует нажать кнопку Создать маршрут.

image.png

При создании  нового маршрута необходимо заполнить следующие параметры:

  • Название — логически понятное название маршрута , например, "Основной маршрут";
  • Скрипт — из списка скриптов выбрать скрипт, который будет запущен при старте данного маршрута;
  • Регулярное выражение — параметр маршрута, слова по которым бот должен будет запуститься. Например: 
    •  .* — это выражение означает, что старт бота произойдет при любом введенном слове или символе со стороны пользователя;
    • бот|меню — синтаксис написания выражения. Данное выражение позволит настроить запуск бота после остановки или при намерении пользователя вернуться в главное Меню.

Как составить свое произвольное регулярное выражение можно узнать на странице Регулярные выражения.

  • Статус лида — значение выбирается из списка , означает при каком статусе лида будет выполняться данный маршрут;
  • Контекст лида — параметр маршрута, который задается командой  в скрипте бота и означает выполнение маршрута удовлетворяющего данному условию.

image.png

В регулярном выражении есть возможность указания флагов маршрута в формате:

рег_выражение:FLAGS[список флагов через запятую]

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

Например:

.*:FLAGS[EMPTY,NO_RUN]

Доступные флаги:

  • EMPTY — позволяет выполнять проверку v8 условия и запустить маршрут, если во входящем вебхуке от пользователя не указан текст, например, если прислали файл, локацию и т.д.
  • ANY — любой текст. Идентично регулярному выражению .* При данном флаге регулярное выражение не проверяется.

  • NO_RUN — не запускать скрипт маршрута, чтобы не сбрасывать беседу лида. Флаг необходимо использовать с пустым параметром Запускаемый скрипт в маршруте. Этот флаг необходимо указывать, если в условии маршрута выполняется bot.scheduleJob и return true.

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

В разделе Маршруты располагается список маршрутов данного бота с доступными операциями:

  • Перейти в редактор скрипта — будет произведен переход в скрипт для редактирования, который указан в свойствах маршрута;
  • Редактировать свойства маршрута;
  • Удалить маршрут.

image.png

Маршруты разделены на 2 группы:

  • Обычные маршруты;
  • Маршруты с диплинками.

Каждая группа маршрутов обладает своей сортировкой. Сортировка влияет на порядок поиска (и запуска) маршрута. Запускается только первый маршрут подходящий под все условия отбора. Если маршрут найден, то очищается беседа и запускается скрипт указанный в маршруте.

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

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

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

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