Как построить сценарий диалога
Процесс (flow) — это визуальная схема диалога: звенья (шаги) соединены переходами. У бота «НашБанк — Контакт-центр» главный процесс выглядит так:

Как он устроен. Звено «Начало» проверяет, здоровался ли бот с клиентом. На первое сообщение бот отвечает через звено «Приветствие»: здоровается, запоминает это в сессии и переходит к звену «Главное_меню», которое показывает меню из пяти пунктов. Все следующие сообщения идут в звено «Маршрутизация»: если клиент нажал кнопку меню, оно ведёт в процесс этого пункта, иначе передаёт сообщение звену «Определить_намерение». То сверяет намерение, которое распознал NLU, а если ничего не подошло, запасной переход «Иначе» ведёт в процесс Не_понял.
Меню завершает процесс намеренно: пока клиент находится «внутри» процесса, ответы из базы вопросов-ответов не срабатывают (подробнее в разделе «База вопросов-ответов»). Поэтому следующее сообщение клиента снова начинается со звена «Начало».
Шаг за шагом: создать новый процесс
- В боковой панели раздела «Процессы» нажмите «+» рядом с заголовком «Процессы».
- Укажите название процесса — например,
Проверка_баланса. Название процесса, как и название звена, может содержать буквы (включая кириллицу), цифры, пробелы, дефисы и подчёркивания — используйте пробелы там, где это делает название понятнее для коллег, которые будут читать схему позже. - Новый процесс появится в списке слева и откроется для редактирования — в нём уже будет одно пустое звено «Начало» (
entry).
Шаг за шагом: добавить звено в процесс
- Откройте нужный процесс в боковой панели.
- Перетащите нужный тип звена из плавающей панели инструментов (слева от холста) на пустое место холста, либо скопируйте и вставьте существующее звено, если новое должно быть похоже на него.
- Кликните по звену, чтобы открыть его настройки в правой панели инспектора.
- Настройте, что бот делает на этом шаге:
- Что бот говорит — выберите готовое содержимое (текст, карточку, меню с вариантами) или создайте новое прямо здесь.
- Ждёт ли бот ответа пользователя — включите «Ждать ответ», если без реакции пользователя сценарий дальше вести нельзя (например, после меню с вариантами).
- Настройте переходы — условия, по которым диалог идёт дальше (см. ниже).
- Проверьте результат в панели «Эмулятор» справа, не покидая страницу — подробнее в разделе «Тестирование».
Переходы и условия
Каждое звено может вести к одному или нескольким следующим звеньям — список таких правил виден прямо на звене, под его содержимым. Переход добавляется кнопкой «+» в разделе «Переходы» инспектора; существующий переход открывается двойным щелчком по нему прямо на звене, в том числе на звене навыка. В окне перехода две части: условие и что сделать, когда оно выполнено.

Условия выбираются из списка, писать код не нужно:
- Всегда (безусловно) — переход срабатывает всегда; подписывается как «всегда». Используется, когда после звена нет развилки, например из «Приветствие» в «Главное_меню».
- Если нажата кнопка — выберите элемент с кнопками и нужную кнопку. В списке элементов перечислены все «Одиночные выборы» и «Выборы значения» бота; каждый подписан именем звена, которое его показывает, и текстом вопроса в скобках, например «Маршрутизация (Чем я могу вам помочь?)». Элементы текущего звена стоят первыми, а если звено показывает меню, оно уже выбрано. Так устроены переходы звена «Маршрутизация»: «Проверить баланс» ведёт в процесс
Проверка_баланса. Условие срабатывает и когда клиент нажал кнопку, и когда он набрал её название текстом (так же работают автотесты); у двух разных элементов кнопки могут иметь одинаковые значения, переход всё равно привязан к своему элементу. Подпись перехода подставляется из названия кнопки. Для навыка «Выбор» кнопками считаются его варианты, а условие записывается так, как его понимает сам навык, поэтому переходы навыка открываются в том же виде. Пока в боте нет ни одного элемента с кнопками, вместо списков показывается подсказка, где их создать. - Если распознано намерение — на звене такой переход подписан названием намерения: «Если «валютный-платеж»», а при пороге уверенности ещё и «(≥ 0.6)». Выберите намерение из списка и при желании порог уверенности (доля от 0 до 1, обычно 0,5–0,7): переход сработает, только если NLU уверен в намерении не меньше порога. Так работает звено «Определить_намерение». Пока намерений нет, окно подсказывает, где их создать.
- Если соответствует параметрам — сравнение переменной диалога: выберите, где она хранится (данные пользователя
user, сессияsession, временные данныеtempили переменные ботаbot), укажите имя переменной и условие, например=== trueили> 100. Кнопка со значком кода подставляет имя известной переменной. Так устроена пара «Успех / Ошибка» после действий:temp.validи!temp.valid(см. раздел «ИИ-агент на основе GPT»). - Выражение на JavaScript — любое условие в контексте диалога для случаев, которые не покрыты списком, например
temp.valid && temp.response.status === 200. Условия, собранные конструктором, тоже хранятся как выражения: открыв такой переход, вы увидите его в конструкторе, а не в виде кода.
Если ни одно условие не подошло, бот останется на этом звене и будет ждать более подходящего сообщения (если включено ожидание ответа). Поэтому в конце списка переходов звеньев «Маршрутизация» и «Определить_намерение» стоит запасной пункт «Иначе» с условием «всегда»: он срабатывает, только если ни один из более ранних пунктов не подошёл, и уводит в процесс Не_понял, который вежливо объясняет, что сказать по-другому. Порядок переходов важен: проверяются сверху вниз, первый подошедший выигрывает; порядок меняется перетаскиванием в инспекторе.
Переход в другой процесс и обратно
Во второй части окна перехода выберите, что сделать: Завершение процесса, Переход к звену (список звеньев текущего процесса), Переход к подпроцессу или Вернуться к предыдущему процессу.
Переход к подпроцессу: выберите процесс из списка и звено в нём (по умолчанию «Начало подпроцесса»). Так каждый процесс бота «НашБанк» заканчивается возвратом в главное меню: переход к процессу «Начало», звено «Главное_меню». В инспекторе такой переход подписан «Процесс → Звено».
Вернуться к предыдущему процессу: возвращает в звено, из которого вошли в текущий процесс. Если включить «выполнить звено заново», переходы вызвавшего звена проверяются ещё раз без повтора его содержимого: так подпроцессы навыков, например ИИ-агента, передают управление обратно звену, у которого есть переходы «Успех» и «Ошибка». Для возврата в меню, которое показывает вопрос и ждёт ответ, этот вариант не подходит: переходы меню проверили бы последнее сообщение клиента ещё раз.
Навигация между соседними процессами в списке — кнопки «К предыдущему процессу» / «К следующему процессу» в верхней панели конструктора.