Главная · Блог · Примеры условий в чат-боте: восемь развилок, которые нужны почти каждому боту

Примеры условий в чат-боте: восемь развилок, которые нужны почти каждому боту

· Команда ЧБТ · Сценарии, Сегменты

Восемь развилок, которые нужны почти каждому боту, — в блоке «Условие»: постоянный клиент — «Тег» «задано»; крупный бюджет — «Переменная» «≥» с проверкой ввода «Число»; город — «в списке»; канал — «Канал» «=» telegram; выходные — «День недели» «в списке» 0, 6; результат теста — баллы и «≥»; формат номера — «regex»; уже известный телефон — «задано». Ниже — правило для каждой развилки и ошибки, из-за которых ветка молча не срабатывает.

Пример 1. Новый или постоянный клиент

Задача: постоянным — короткое приветствие и сразу меню, новым — знакомство с компанией.

  1. Когда клиент впервые доходит до заявки или покупки, сценарий ставит «Действие» → «Добавить тег» клиент.
  2. В начале приветственного сценария — «Условие»: ветка «Постоянный» с правилом «Тег» клиент «задано».
  3. «Иначе» — ветка для новых.

Почему тег, а не переменная: переменные живут, пока идёт сценарий, а при новом запуске сбрасываются. Тег остаётся в карточке клиента навсегда — это правильное место для того, что бот должен «помнить» между разговорами. Как выстроить систему тегов — в статье о тегах.

Пример 2. Бюджет больше или меньше порога

Задача: крупные заявки — сразу менеджеру, небольшие — в обычную очередь.

  1. «Сбор данных» спрашивает бюджет. В «Проверка ввода» выберите «Число», в «В переменную» — budget.
  2. «Условие»: ветка «Крупная» — «Переменная» budget «≥» 300000.
  3. Ветка «Крупная» ведёт к «Действие» → «Уведомить оператора» и блоку «Оператор», «Иначе» — к стандартному продолжению.

Порог удобно держать круглым и понятным команде: «от 300 000 — сразу к старшему менеджеру». Если порогов несколько — например, до 100 000, до 300 000 и выше, — делайте три ветки сверху вниз от большего к меньшему: «≥ 300000», «≥ 100000», «Иначе».

Проверка «Число» важна: без неё клиент напишет «около 300 тысяч», и сравнение «≥» не сработает — в переменной окажется текст, а не число.

Пример 3. Город из списка

Задача: доставка есть только в нескольких городах, остальным — самовывоз или отказ.

  • Ветка «Доставляем» — «Переменная» city «в списке» Москва, Химки, Мытищи, Королёв.
  • «Иначе» — «Пока доставляем только по Москве и ближайшим городам. Можно забрать самовывозом».

«в списке» сравнивает значение целиком с каждым элементом через запятую. «москва» с маленькой буквы со списком не совпадёт. Надёжнее спросить город кнопками и сохранять в переменную значение кнопки — тогда опечаток не будет вовсе.

Если городов много, а выбор нужен только «доставляем или нет», подойдёт и «regex» — один шаблон вместо длинного списка, без учёта регистра: ^(москва|химки|мытищи|королёв)$. Тогда «Москва», «москва» и «МОСКВА» попадут в одну ветку.

Пример 4. Разный ответ для разных каналов

Задача: часть возможностей есть только в одном канале. Например, счёт в звёздах Telegram Stars работает только в Telegram, а клиентам MAX и ВКонтакте нужна ссылка на кассу.

  • Ветка «Telegram» — «Канал» «=» telegram → блок «Оплата» со звёздами.
  • «Иначе» → блок «Оплата» с кассой.

Значения поля «Канал»: telegram, max, vk и web — чат на сайте. Так же можно разводить ссылки: в Telegram — на канал, в MAX — на канал в MAX, на сайте — на страницу каталога. Подробнее об оплате — в статье о приёме оплаты в боте.

Пример 5. Выходные и будни

Задача: в выходные менеджеров нет, и бот должен честно сказать, когда ответят.

  • Ветка «Выходные» — «День недели» «в списке» 0, 6: воскресенье — 0, суббота — 6.
  • «Иначе» — обычная передача оператору.

В ветке «Выходные» бот собирает вопрос и телефон и обещает ответ в понедельник. Праздников «День недели» не знает: перед праздниками поменяйте текст ветки вручную. Развилку по часам работы строят на поле «Время» — пошаговый разбор с примерами в статье о боте в нерабочее время.

Пример 6. Результат теста или квиза

Задача: по итогам теста из нескольких вопросов показать разный результат.

  1. После каждого ответа — «Действие» → «Начислить баллы» к переменной score: за правильный ответ +1 или по шкале.
  2. В конце — «Условие»: ветка «Отлично» — score «≥» 8, ветка «Хорошо» — score «≥» 5, «Иначе» — «Есть куда расти».

Порядок веток здесь решает всё: «≥ 8» должна стоять выше «≥ 5», иначе 9 баллов попадут в «Хорошо» — ветки проверяются сверху вниз. Тот же приём работает для квалификации заявок — подробно в статье о скоринге лидов.

Пример 7. Проверить, что ответ похож на нужный

Задача: клиент ввёл номер заказа или ИНН, и его нужно проверить по формату, прежде чем отправлять дальше.

  • Номер заказа из шести цифр — «Переменная» order «regex» ^\d{6}$.
  • ИНН — «regex» ^(\d{10}|\d{12})$.
  • Ответ, где есть слово «срочно», — «содержит» срочно.

«Иначе» — вежливое «Похоже, номер неполный — проверьте и пришлите ещё раз» и возврат к вопросу. Чтобы бот не спрашивал бесконечно, считайте попытки «Начислить баллы» в переменную tries и при tries «≥» 3 передавайте диалог оператору. Телефон и e-mail проверять так не нужно: у «Сбора данных» для них есть своя «Проверка ввода».

Пример 8. Уже знаем телефон — не спрашиваем снова

Задача: в одном сценарии телефон может прийти раньше — например, клиент оставил его в первой анкете, — и спрашивать его второй раз неловко.

  • Ветка «Телефон есть» — «Переменная» phone «задано» → сразу к следующему шагу.
  • «Иначе» → «Сбор данных» с вопросом о телефоне и «В переменную» phone.

Работает в пределах одного запуска сценария: переменная заполнена, пока сценарий идёт. Чтобы «помнить» между разговорами, ставьте после сбора телефона тег, например есть-телефон, и проверяйте уже его.

Несколько правил в одной ветке

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

  • Ветка «VIP в Telegram»: «Тег» клиент «задано» и «Канал» «=» telegram и «Тег» vip «задано».
  • Ветка «Постоянный»: «Тег» клиент «задано».
  • «Иначе» — каталог для новых.

Обратите внимание на порядок: самая узкая ветка стоит первой. Если поменять местами первую и вторую, VIP-покупатели попадут в общую ветку постоянных — она подходит им тоже, а проверяется раньше.

Почему ветка не срабатывает

  • «≠» по тегу. Для поля «Тег» работают только «=», «задано» и «не задано». Чтобы проверить, что тега нет, выбирайте «не задано».
  • Переменная из прошлого разговора. При новом запуске сценария переменные сбрасываются. Долгая память — в тегах.
  • Ответ не сохранён в переменную. «Сбор данных» пишет ответ в карточку, а «Условие» читает переменные — заполните «В переменную».
  • Текст вместо числа. «>», «<», «≥» и «≤» сравнивают числа — включите «Проверка ввода» «Число».
  • Неудачный порядок веток. Широкая ветка выше узкой забирает всё себе.
  • Пустое «Иначе». Если ни одна ветка не подошла, а «Иначе» никуда не ведёт, диалог остановится.

Как проверить условия

Откройте «Проверить сценарий» и пройдите каждую ветку по очереди: с маленьким и большим бюджетом, с городом из списка и без, с тегом и без. Тест-чат ведёт свой проверочный контакт, поэтому нужный тег проще всего поставить тем же сценарием: временно добавьте перед «Условием» «Действие» → «Добавить тег» и уберите его после проверки. Удобно завести короткий список проверки: какие значения ведут в какую ветку, — и пройти его после каждой правки условий.

Одна особенность: тест-чат редактора работает как чат на сайте, поэтому «Канал» в нём всегда web. Ветки по Telegram, MAX и ВКонтакте проверяйте из настоящего мессенджера. Подробнее — в статье как протестировать чат-бота.

Ещё в блоге