Настройка узла

Узел – это 1 отдельный этап/шаг сценария, который может содержать в себе несколько действий чат-бота, запускающихся при определённых условиях.

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

Когда пользователь пишет в чат - чат-бот запускает сценарий и при каждом последующем ответе пользователя переходит на следующий узел (этап/шаг). В каждом узле может быть сразу несколько разных действий, которые чат-бот выполняет последовательно друг за другом.

Также при определенных условиях чат-бот может выполнить сразу несколько узлов (этапов/шагов) подряд.

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

Есть три типа узлов:
  • Начальный узел - узел с которого начинается сценарий, его нельзя удалить, он может быть только один в сценарии. Имеет синий индикатор сверху.
  • Обычный узел - узел, который можно удалить, скопировать, связать с ответами из других узлов. Такие узлы не ограничены в количестве и имеют розовый индикатор сверху
  • Отработка неизвестных команд - узел, необходимый для обработки ситуаций, когда чат-бот не может понять пользователя. В первых версиях приложения, чат-бот попадал в этот узел каждый раз, когда не мог определить, что делать по ответу пользователя. В настоящее время в каждом узле можно задать конкретное поведение бота в случае, если пользователь отвечает не по заданному сценарию. Данный узел обязательный в главном сценарии, опционален в остальных сценариях, он может быть только один в сценарии. Его нельзя скопировать и к нему нельзя добавить связь от ответа из другого узла, также нельзя указать команду. Имеет зелёный индикатор сверху.
 


Каждый узел содержит 3 секции:
  • Действия бота до ответа - совокупность действий чат-бота, которые выполнятся сразу при запуске узла. Действие не выполнятся в том случае, если у него стоит определённое условие на выполнение, а также в том случае, если перед ними был перевод в другой узел.
  • Ответ пользователя - секция узла, позволяющая настроить, какую реакцию от пользователя ждать чат-боту. Данная секция позволяет настроить возможные варианты ответов пользователя, проверку корректности ответа, а также определить поведение бота после выбора одного из ответов. Варианты ответов не будут показаны при том условии, если в секции "действия бота до ответа" было запущено действие перевода в другой узел. Подробно о доступных вариантах настройки этой секции читайте в инструкции.
  • Действия бота после ответа - совокупность действий чат-бота, которые выполняются после ответа пользователя, но только если данный узел является активным, в иных случаях данная секция игнорируется.

Секции действий "до ответа" и "после ответа" имеют разный набор доступных действий. Например, в секции "после ответа" не доступны действия, предполагающие отправку сообщений в чат.



Параметры узлов
  • Название узла. Изменение названия не доступно в узле отработки неизвестных команд. Параметр не обязателен для заполнения. Если оставить параметр пустым - название установится автоматически.
  • Команда. Если пользователь напишет в чате данную команду - чат-бот запустит соответствующий ей узел. Команда в чате должна обязательно начинать со слеша, например "/start", в настройках узла она указывается без слеша, например "start". Параметр не обязателен для заполнения. Нельзя изменить в начальном узле главного сценария. Также не доступна в узле отработки неизвестных команд. Может содержать только цифры и английский алфавит, без пробелов. 
  • Считать количество заходов в этот узел. Позволяет посчитать, сколько раз в процессе работы бота он посетил данный узел. Включение этого параметра создаёт специальную числовую переменную "счётчик заходов в узел". Данный счётчик будет увеличиваться при каждом выполнении узла.

Рассмотрим на примере
Предположим, у нас есть 4 узла:
Отработка неизвестных команд, начальный узел и 3 обычных узла.
В каждом узле есть действие "Отправить текст", который в нашем случае отправляет сообщение в чат с название узла.
Начальный узел ведёт в обычный узел 1, который в свою очередь ведёт в обычный узел 2.
Начальный узел имеет команду "test".



Давайте запустим в чате команду /test.

Мы видим, что выполнилось действие "Отправить текст" в узле "Начальный узел" и секции "Действия бота до ответа". Вспоминаем, что эта секция выполняется сразу.
В начальном узле также есть секция "Ответ пользователя" с двумя ответами. Но она не выполнилась, потому что в секции "Действия бота до ответа" был перевод в другой узел.  Секция "Действия бота после ответа" также была проигнорирована ботом, так как текущий узел не являлся активным на данный момент.

Итак, из начального узла был выполнен переход в узел "Обычный узел 1", в котором в секции "Действия бота до ответа" выполнилось действие "Отправить текст". В обычном узле 1 также есть секция "Ответ пользователя" с двумя ответами. В отличии от начального узла она выполнилась, так как в секции "Действия бота до ответа" нет перевода в другой узел. В итоге чат-бот вывел список ответов в чат. Секция "Действия бота после ответа"  была проигнорирована ботом, так как текущий узел также не являлся активным на данный момент.



Давайте снова что-нибудь напишем. Любой текст, например "привет".

Вспоминаем, что сценарий в данном чате остановился на узле "Обычный узел 1" - это значит, что данный узел на данный момент является активным.
А если у активного узла установлена секция "Действия бота после ответа" - она выполняется в первую очередь. В данной секции у нас действие перевода в другой узел. Поэтому далее запускается "Обычный узел 2", а секция "Ответ пользователя" игнорируется.

В узле "Обычный узел 2" у нас одно действие в секции "Действия бота до ответа" - "Отправить текст", поэтому чат-бот отправляет сообщение в чат.



Если бы мы выбрали предложенный ответ, то всё равно секция "Ответ пользователя" проигнорируется, так как секция "Действия бота после ответа" в приоритете.



Давайте в узле "Обычный узел 1" удалим перевод в другой узел.



И выберем снова ответ из предложенных вариантов ответов.

На этот раз выполняется секция "Ответ пользователя", так как в секции "Действия бота после ответа" нет перевода в другой узел. Так как данная секция выполняется как реакция активного узла на ответ пользователя, то список ответов на этот раз не выводится, а проверяется совпадение ответа пользователя с вариантами ответов. Выбранный ответ ведёт в узел "Ответ C", поэтому чат-бот выполняет действие "Отправить текст" из данного узла.