Справочник узлов сценария
Что умеет бот в диалоге: строительные блоки сценария — фразы, вопросы, меню, свободный диалог с ИИ, вебхуки, перевод на оператора.
Сценарий — YAML-документ: граф из узлов, по которому идёт диалог. Этот справочник — клиентская выжимка полной спецификации сценариев: что умеет каждый узел и когда его применять. Сценарии готовятся командой Rechedar по вашему описанию, но понимать строительные блоки полезно, чтобы формулировать задачу.
Общие понятия
- Узел — шаг диалога: сказать фразу, задать вопрос, позвать оператора… В каждый момент активен ровно один узел.
- Переходы (
next) — куда идти дальше; можно ветвиться по ответам. - Переменные — сохранённые ответы (
{name},{score}), подставляются во фразы и условия. - Barge-in — абонент может перебить ботa фразой, бот слушает всегда.
- Тишина / «не понял» — у каждого вопроса есть ретраи (по умолчанию 2): бот вежливо переспрашивает, потом идёт по ветке отказа.
- Голос — выбирается в редакторе сценария из библиотеки: системные голоса платформы и ваши клоны (загружаются на экране «Голоса» из 3–30 секунд чистой записи — как это сделать, см. голоса). Смена голоса не требует правки сценария.
Узлы
say — произнести фразу
Односторонняя реплика бота, ответ не ждётся. Приветствие, информирование о записи, прощание. Поддерживает подстановку переменных.
ask — вопрос с ожиданием ответа
Речь абонента распознаётся (ASR — «ухо» платформы) и сопоставляется с
ожиданиями: да/нет, число, свободная фраза, дата. Ответ сохраняется в
переменную. Основной узел опросов: «Оцените сервис от 1 до 10» →
{score}.
menu — меню с кнопками телефона
Абонент выбирает клавишами (DTMF) или голосом: «Нажмите 1 или скажите
„да“». Надёжнее ask для точных выборок (да/нет/не знаю), работает на
любых трубках.
llm_dialog — свободный диалог с ИИ
Бот с языковой моделью ведёт беседу в рамках заданной роли и цели: обрабатывает возражения («дорого», «не интересно»), задаёт уточняющие вопросы, фиксирует результат. Модель видит весь разговор и переменные; есть лимит реплик и защиты от ухода от темы. Это самый «человеческий» режим — например, анкетирование с уточнениями.
У узла есть два «навыка», включаемых флагами в сценарии (ниже — отдельными разделами).
Навык: база знаний (kb)
Бот отвечает по вашим документам. Загрузите текст или FAQ «вопрос;ответ» в разделе «База знаний» кабинета — и на каждую реплику абонента платформа найдёт самые подходящие фрагменты и подсунет их модели. Бот перестаёт «фантазировать» и цитирует ваши тарифы/условия. Перед запуском проверьте в кабинете песочницу вопросов («Проверить вопрос»): что нашли вы — то увидит и бот.
Навык: память об абоненте (memory)
Бот учитывает, что платформа уже знает об этом человеке из прошлых звонков и чатов: удобное время, о чём просил, статус клиента. Работает во всех каналах; накопленное видно на экране «Контакты» — у каждого контакта список фактов с источником (из какого диалога). Отдельный факт можно стереть по требованию абонента; накопление целиком отключается в «Настройках».
Оба навыка действуют только внутри узлов, где включены: точечный
kb для «справочных» диалогов, memory — для персональных. Если
сервис подсветки документов временно недоступен, диалог продолжается
без подсказок — звонок не рвётся.
webhook — запрос к вашей системе
HTTP-вызов вашего сервиса в середине диалога: проверить статус клиента в CRM, получить персональные данные (сумму долга, дату доставки), записать ответ во внешнюю систему. Возможности узла:
- метод и заголовки настраиваются, тело — JSON с подстановкой переменных
(
{"phone": "{phone}", "code": "{code}"}); - поля ответа можно разложить в переменные (
items[0].id→{order_id}) и использовать дальше во фразах и ветвлениях; - есть режим «не ждать ответа» (послали и пошли дальше) и повторы при сбоях;
- авторизационные секреты (API-ключи) подставляются шаблоном
{{ secret.имя }}— значение хранится зашифрованным, не виден в сценарии и логах; выдаёт команда Rechedar при подключении; - розетка плагина: поле «Плагин преобразования ответа» прогоняет ответ вашей системы через ваш WASM-модуль до разложения в переменные — удобно для неудобных форматов (SOAP/XML, вложенность). Модули — раздел «Плагины» (меню «Ещё»), там же галерея готовых модулей платформы (адреса, время перезвона, извлечение контакта и другие) — установка в один клик без компиляции; узел без плагина работает как обычно.
Ответ синхронный, с таймаутом (до 30 секунд — дольше абонент слушает тишину; долгие операции лучше в режиме «не ждать»).
transfer — перевод на живого оператора
Соединение абонента с вашим номером/очередью (внутренней АТС, колл-центра): когда скрипт исчерпан или абонент просит человека. Бот выходит из разговора, дальше — ваш оператор.
hangup — завершить звонок
Терминальный узел: вежливое прощание и отбой. Обязателен у каждого сценария (успешный финал и финалы отказов — свои ветки).
set — присвоить переменные
Служебный узел: вычислить/сохранить значение (например, отметить контакт «горячий») для ветвления и выгрузки.
branch — ветвление
Управление потоком по условию: если {score} >= 8 → ветка «спасибо,
отлично», иначе → ветка «что улучшить». Читается как обычное «если».
Возражения и отказы — что платформа делает сама
Помимо узлов сценария, бот слушает абонента на каждом шаге и распознаёт типовые возражения и отказы (библиотека + нейросеть):
- Возражения («дорого», «откуда вы взяли мой номер», «я занят», «перезвоните позже») — бот отвечает подготовленной репликой отработки и продолжает диалог. На каждый класс — до двух попыток, затем вежливый выход. Какие классы отрабатывать и чем прощаться при отказе — настраивается в сценарии (секция «возражения»); история каждой попытки видна в аналитике.
- Отказ от звонков («не звоните мне больше», «удалите мой номер») — бот сразу вежливо завершает разговор, а номер навсегда исключается из обзвона: повторные кампании его не набирают. Это работает всегда, независимо от сценария, — право абонента на отказ не зависит от настроек. Реестр отказов виден в кабинете (раздел «Не звонить»); снять отказ может только ваш оператор по обращению абонента.
Типовые связки
- Опрос NPS:
say(представление) →ask(оценка 0–10) →branch(критик/доволен) →ask(комментарий) →hangup. - Подтверждение записи:
say→menu(подтвердить/перенести/ отменить) →branch→ … →hangup. - Обработка возражений:
say→llm_dialog(роль: договориться о встрече, возражения отрабатывать мягко) →set(результат) →hangup. - Долг с проверкой:
webhook(баланс из вашей БД) →llm_dialog(сообщить и предложить оплату) →transfer(оператор, если спор) →hangup.