Главная · Блог · Примеры условий в чат-боте: восемь развилок, которые нужны почти каждому боту
Примеры условий в чат-боте: восемь развилок, которые нужны почти каждому боту
Восемь развилок, которые нужны почти каждому боту, — в блоке «Условие»: постоянный клиент — «Тег» «задано»; крупный бюджет — «Переменная» «≥» с проверкой ввода «Число»; город — «в списке»; канал — «Канал» «=» telegram; выходные — «День недели» «в списке» 0, 6; результат теста — баллы и «≥»; формат номера — «regex»; уже известный телефон — «задано». Ниже — правило для каждой развилки и ошибки, из-за которых ветка молча не срабатывает.
Пример 1. Новый или постоянный клиент
Задача: постоянным — короткое приветствие и сразу меню, новым — знакомство с компанией.
- Когда клиент впервые доходит до заявки или покупки, сценарий ставит «Действие» → «Добавить тег»
клиент. - В начале приветственного сценария — «Условие»: ветка «Постоянный» с правилом «Тег»
клиент«задано». - «Иначе» — ветка для новых.
Почему тег, а не переменная: переменные живут, пока идёт сценарий, а при новом запуске сбрасываются. Тег остаётся в карточке клиента навсегда — это правильное место для того, что бот должен «помнить» между разговорами. Как выстроить систему тегов — в статье о тегах.
Пример 2. Бюджет больше или меньше порога
Задача: крупные заявки — сразу менеджеру, небольшие — в обычную очередь.
- «Сбор данных» спрашивает бюджет. В «Проверка ввода» выберите «Число», в «В переменную» —
budget. - «Условие»: ветка «Крупная» — «Переменная»
budget«≥»300000. - Ветка «Крупная» ведёт к «Действие» → «Уведомить оператора» и блоку «Оператор», «Иначе» — к стандартному продолжению.
Порог удобно держать круглым и понятным команде: «от 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. Результат теста или квиза
Задача: по итогам теста из нескольких вопросов показать разный результат.
- После каждого ответа — «Действие» → «Начислить баллы» к переменной
score: за правильный ответ +1 или по шкале. - В конце — «Условие»: ветка «Отлично» —
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 и ВКонтакте проверяйте из настоящего мессенджера. Подробнее — в статье как протестировать чат-бота.
Условия и веткиПеременныеЧат-бот в нерабочее времяТеги как система сегментации