Переходы
Переход — дорога из шага в шаг и условие, при котором бот по ней пойдёт.
Как протянуть связь
У правого края карточки есть кружок. Потяните от него к другому шагу.

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

- Что проверяем — вид условия. Выбираете вид и жмёте «Добавить условие».
- В какой шаг — куда ведёт переход. Здесь же переход переставляют на другой шаг, не создавая новый.
- Что проверяется раньше — очередь. Меньше число — раньше проверка.
Условий может быть несколько — тогда они должны сойтись все сразу.
Виды условий
| Что проверяем | Когда подходит |
|---|---|
| Клиент сказал | Бот распознал запрос: «дорого», «хочу записаться» |
| Поле клиента | Поле заполнено, пустое, равно значению — или больше и меньше числа |
| Заказ клиента | Только у агента с заказом: пуст ли он, всё ли уточнено |
| Отметка бота | Служебные пометки, которые бот ставит сам |
| Запись клиента | Есть ли визит, сколько до него часов, чем кончилась операция |
| Время и день недели | Час и день по времени агента |
| Ход разговора | Сколько раз клиент написал и сколько раз вернулся на шаг |
| Остальные случаи | Подходит всегда — запасной путь |
Поле клиента: не только «равно»
Кроме «заполнено», «пустое», «равно» и «не равно» поле сравнивают с числом: больше, больше или равно, меньше, меньше или равно. Так разводятся дороги по сумме заказа, оценке или числу гостей, не заводя поле-выбор.
Сравнение числовое, и в поле должно лежать число. Если бот записал туда «дорого» или поле пустое, условие не сработает ни в одну сторону: ни «больше», ни «меньше».
Отметка бота
Пометки, которые бот ставит сам по ходу разговора: в базе знаний нет ответа, оператора уже позвали, заявка уже сохранена, заказ оформлен, разговор был завершён.
Отсюда удобно уводить в обход: «оператора уже позвали» — в шаг ожидания, чтобы бот не звал дважды; «заявка уже сохранена» — мимо повторного сбора тех же данных.
Запись клиента
Условие для тех, у кого настроена «Запись».
| Что проверяем | Когда подходит |
|---|---|
| У клиента есть запись | Есть будущий визит, который можно отменить или перенести |
| У клиента нет записи | Бот искал и не нашёл. Пока не искал — молчит |
| До визита меньше / больше, чем | Сравнение с числом часов |
| Чем кончилась операция | Что бот сделал на этом ходу |
Исходы операции: записал, отменил, перенёс, трогать было поздно (правила записи не дали), время успели занять, расписание отказало, перенос сорвался и записи не осталось.
Последний исход — единственный, после которого клиент не записан никуда: прежний визит сняли, новый не создали. Такую ветку уводят к человеку.
Исход появляется после действия шага. Пока бот к расписанию не сходил, условие о нём молчит. У агента без записи молчит всегда.
Время и день недели
Время суток — интервал часов. Начало входит, конец нет; интервал через полночь (21:00–09:00) считается как ночь. День недели — отмеченные дни.
Считается по часовому поясу агента, а у агента с записью — по поясу точки. «После 18:00» — это его вечер, а не вечер сервера.
День недели без единой отметки не сработает никогда. Отметьте хотя бы один.
Ход разговора
Клиент написал столько раз — считаются только его сообщения и только в текущем разговоре, а не за всю переписку. Годится, чтобы после пятой реплики звать человека.
На этот шаг пришли столько раз — сколько раз разговор попадал на шаг, считая нынешний. Годится, чтобы не переспрашивать третий раз одно и то же, а пойти другой дорогой.
Как бот выбирает дорогу
После каждой реплики клиента бот смотрит все переходы текущего шага разом и уходит по тому, у кого условие сошлось и число очереди меньше.
Отсюда два правила:
Особенное — раньше общего. Возражение «дорого» должно проверяться раньше, чем «поле заполнено», иначе клиент, который назвал машину и сказал «дорого», покатится дальше по сценарию, а возражение останется без ответа.
Запасной путь — последним. «Остальные случаи» ставьте с большим числом (99): он подходит всегда и заберёт клиента раньше нужного, если стоит первым.
Самая частая ошибка при достройке сценария — забытый обход. Добавили шаг посередине — пройдите переходы соседей и посмотрите, не ведёт ли какой-нибудь из них мимо нового шага.
Переход без условия — нормально. Такой шаг просто передаёт разговор дальше, когда бот на нём закончил.
Три ловушки, на которых спотыкаются чаще всего
«Остальные случаи» рядом с условием. Свежая связь приходит с этим условием, и оно подходит всегда — бот уйдёт по переходу, даже если клиент ничего не ответил. Условие ставится вместо него, а не рядом.
Одно условие там, где вопросов два. Шаг спрашивает и дату, и число гостей, а условие проверяет только первое — бот уходит после первого ответа. Условий на переходе может быть несколько, они складываются.
Развилка по значению без просьбы заполнить поле. Если дороги расходятся по полю («равно „малый“»), кто-то должен попросить бота это поле записать — иначе оно останется пустым, ни одно условие не сойдётся, и бот будет повторять свой вопрос. Пишите это прямо в указании шага, а не только в описании поля.
Сравнение значения точное: «до 300 тысяч» и «до 300 000» — разные строки. Поэтому варианты полей-выборов делают короткими словами («малый», «средний», «крупный»), а расшифровку кладут в описание поля.
Чего условия не умеют
Работать на всех шагах сразу. Перехват «хочу отменить» вешается на конкретные шаги. Общего «на любом шаге» в кабинете нет: повесьте переход на те шаги, где клиент реально может передумать.
Разбирать реплику своими правилами. Условие смотрит на то, что бот уже понял: намерение, поле, заказ. Написать «если в сообщении есть слово „скидка“» переходу нельзя — для этого заводят намерение.
Aisell