Стрелки (соединения)
Статья поможет вам разобраться в правилах работы с соединениями(стрелками)
Last updated
Статья поможет вам разобраться в правилах работы с соединениями(стрелками)
Last updated
Виды стрелок:
Стрелки - это условия перехода. По сути, стрелка выполняет роль распределителя: если клиент выбрал "Ответ 1", он переместится в блок №1, если выбрал "Ответ 2", то переместится в блок №2 и т.д.
Наведите мышь на стрелку и увидите меню действий над стрелкой:
При клике на шестеренку откроется форма настроек стрелки:
Как видите, структура формы настроек стрелки содержит разделы настройки таймера перехода, условного перехода и основные настройки для стрелок со сбором данных.
Стрелки не могут существовать сами по себе, они являются элементом соединения двух блоков.
Чтобы соединить два блока стрелкой, наведите указатель мыши на блок. Появится белый кругляшок внизу блока - узелок связи. Кликните по нему левой кнопки мыши и, удерживая кнопку, тяните к следующему блоку. Отпустите кнопку - стрелка создана.
Перейдем к изучению основных видов стрелок, для этого рассмотрим пример на представленной ниже схеме. Здесь используются все виды стрелок:
Задача: Бот-секретарь должен поприветствовать клиента и спросить номер телефона для последующей связи, если клиент пришел оформить заказ.
Логика работы: при входе клиента бот приветствует его и интересуется, желает ли клиент оформить заказ. Если "Да", то спрашиваем номер телефона и передаем менеджеру, если "Нет", прощаемся, в любом другом случае говорим, что не понимаем, о чем идет речь, и возвращаемся к вопросу "Желает ли клиент оформить заказ?". Если клиент ответил, что да, но по какой-то причине не ввел номер телефона, то через n-количество времени напомним о необходимости ввода.
Давайте подробнее остановимся на основных видах стрелок.
Стрелка с условием - это стрелки, переход по которым осуществляется, если выполнилось некое условие.
Условие перехода может быть задано: - по некоему слову (коллбэку) - задается в поле Условие, в нашем случае по нажатию кнопки НЕТ бот выдает сообщение "Удачного Вам дня!". Подробнее читать тут При этом могут быть заданы слова (коллбэки), на которые стрелка не должна реагировать (в основном используется, когда Условие пустое) - по анализу на значение переменных - задается в поле Переменная для сравнения. Подробнее читайте тут
При этом есть возможность создания клавиатурных (reply) кнопок. Для этого достаточно указать в поле Условие текст для кнопки и включить ползунок Отображать как кнопку.
Также в условии стрелки можно прописать проверку для вводимого пользователем значения с помощью регулярного выражения:
А также использовать переменную для сравнения:
Однако в условии, в соответствии с лексическими правилами, вы не можете прописать несколько условий для сравнения по одной переменной:
Если вам необходимо проверять сразу несколько значений в условии, то воспользуйтесь операторами and (&&), or (||) и др.
Подробнее о сравнении переменных читайте в одноименной статье.
Стрелка без условия - это такой тип стрелок, которые срабатывают на любой ответ клиента, что-то вроде альтернативного пути. Так, например, в нашей схеме такая стрелка выходит из блока с вопросом "Желаете оформить заказ?". Если клиент ответит что-то помимо "Да" или "Нет", сработает как раз стрелка без условия, и бот ответит: "Я не понял ваш ответ", а далее вновь спросит "Желаете оформить заказ?".
Стрелка без условия имеет приоритет выше, чем блок "Начало диалога". Если в вашей схеме, вам необходимо, чтобы блок отрабатывался первее, чем переход по стрелке, используйте блок "Первостепенная проверка условия".
Стрелка с таймером - это стрелки, переход по которым будет осуществлен через заданный промежуток времени. Отображаются они пунктирными линиями и отображается время заданной задержки. На нашей схеме несколько таких стрелок. Первая выходит из ярко-зеленого блока "Добрый день". На этой стрелке стоит задержка в 0 секунд. Принцип работы: после того как бот ответит клиенту "Добрый день", тут же вдогонку летит следующий вопрос "Желаете оформить заказ?".
Итак, для того чтобы задать задержку перед ответом, заполните соответствующее поле в форме настроек. Таким же образом могут быть указаны конкретные дата и время отправки сообщения. Для этого следует заполнить поля "Время отправки"
Справа от поля "Задержка перед ответом" можно выбрать меру измерения "Секунды, минуты, часы, дни".
Если используете задержки и при этом условия на сравнение переменных, отключив "Отменить сообщения с таймером", то прописывайте в "Строки, на которые не отвечать" #{question}
Стрелки со сбором данных с пользователей - это стрелки без условия, но они "запоминают" ответы клиентов в указанную в настройках переменную. На конце этих стрелок ромб. Принцип работы: бот спрашивает клиента "Укажите свой номер телефона", клиент вводит номер, происходит переход по стрелке в следующий блок, при этом бот записывает в переменную ответ клиента. Данный тип стрелок можно использовать для сбора любых данных с клиентов (имя, город, район, метро и т.д.).
За необходимость сбора данных отвечает ползунок "Пользователь вводит данные" и в поле "Вводимые данные" вписываем название переменной, в которую бот запишет введенные клиентом данные. В нашем случае это "phone". Жмем готово. Стрелка создана.
ВАЖНО! Стрелка со сбором данных работает БЕЗ ЗАДЕРЖКИ в настройках данной стрелки. Это значит, что бот будет ждать, пока пользователь ответит на этот вопрос.
Чтобы пользователи не останавливались надолго в блоке перед ответом на вопрос, продумайте логику воронки и добавьте догоняющее сообщение, если нужно напомнить о себе.
В завершении хотим упомянуть о том, что стрелки могут принимать любую форму ломанной линии. Для этого наведите мышь на стрелку, зажмите и потяните в сторону. Таким образом вы можете задать приятное и простое визуальное оформление своему проекту и никогда не запутаетесь в цепочке (Рисунок 6).
Чтобы удалить ненужный узел в стрелке, дважды кликните на этот узел левой кнопкой мыши.
Для лучшего понимания работы стрелок с задержками и таймерами рекомендуем познакомится с публикацией: