Условия

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

Существует 4типа сравнения условия, расскажем о них подробнее.

Рисунок 1

Во всех типах сравнения символ точка с запятой ; разделяет условия. Например, если вам надо создать блок на все возможные стартовые слова мессенджеров, вы можете указать следующее условие: старт;start;get started;начать

Игнорируя ошибки и неточности

Основной тип сравнения. Позволяет работать с описками, неточностями, пропусками букв, а также их перестановками. Условие срабатывает, если строки похожи более чем на 70%.

Пример: Для условия привет сработают следующие слова: привед, првед, превет

При данном сравнении для строк длинной до 4 слов используются перестановки.

Пример: Для условия привет мой хороший человек сработают следующее условие: хароший мой чилавек преет

По наличию ключевых слов

Мощный тип сравнения, который позволит сделать человекоподобного консультанта.

При данном типе сравнения каждое слово из условия должно быть в вводимой пользователем строке. В любом порядке, в любом месте.

Пример: Для условия привет человек сработают следующее условие: я хочу поприветствовать этого замечательного человека

При данном типе сравнения также используется поле "Строки, на которые не надо отвечать". Данное поле работает аналогично полю условие, только наоборот, если условие поля "Строки, на которые не надо отвечать" срабатывает, то общее условие не работает.

Вариативность

Дополнительное условие можно добавить также через точку с запятой, но что делать если нужно одно из нескольких вариантов слов? Например, обработать одним условием фразы У меня не работает интернет, У меня не работает компьютер, у меня сломался компьютер. Очевидно, перебор всех вариантов ключевиков путь в никуда. Для этого придуман синтаксис ИЛИ. Чтобы указать один из нескольких равнозначных ключевиков, надо их все поместить в круглые скобки и разделить символом вертикальной черты.

Например: условие (тар план |тариф) (перейт|подключ|менит|помен) сработает на вопросы: Здравствуйте, как подключить новый тариф. Как сменить тарифный план.

Разберем условие. (тар план |тариф) говорит, что в строке должно быть тар И план ИЛИ тариф И ОДНОВРЕМЕННО перейт ИЛИ подключ ИЛИ менит ИЛИ помен

Несколько других примеров, они интуитивно понятные. мен пароль (каб|лк) (забыл|сброс|восста|вспомнить|принимает|подходит|не верный|не тот|не помн) парол (не могу| не удается) (восстановить|изменить) пароль логин в договоре;(потер|утеря|где лежит|не знаю|где| не найти|нет) догов (приостанов|заблок|блок|откл) (услуг|интер|инет|списан); (спасан|спаст) ден; постав на паузу;уезжа автоплат; оплат;заплатить;реккурентн плат;подключ плат

Ответы на свободные вопросы с использованием ключевых слов

Полное совпадение

Здесь все просто. Условие срабатывает только есть если происходит полное совпадение вводимой строки и условия.

Сравнение происходит без учета регистра, то есть если условие привет, а пользователь введет ПРИВЕТ, то условие сработает. Это необходимо учитывать.

Регулярное выражение

Регулярные выражения - это условие, с помощью которого бот может проверять формат введенных данных (например, что человек ввел именно номер телефона, а не что-то иное)

При сборе данных пользователь часто вводит не то, что его просят ввести. Приведу типовую схему проверку корректности ввода номера телефона. В случае, если пользователь ввел не номер телефона, бот попросит его повторить ввод.

Из блока, спрашивающего номер телефона идет 2 соединения. Одно без условия, а второе с условием регулярное выражение российского номера телефона:

^((8|\+7)[\- ]?)?(\(?\d{3}\)?[\- ]?)?[\d\- ]{7,10}$

Соединение с условием как раз добавляет его в заявку и сработает только тогда, когда встретится корректный номер телефона. Второе соединение сработает во всех других случаях, так как у него ниже приоритет. По второму соединению пользователю скажут что он ввел некорректные данные и по переходу с таймером направят обратно вводить номер телефона.

Список полезных регулярных выражений можно увидеть по ссылке.