Настройка и редактирование Голосового робота: Конструктор идеального диалога
Создание сложного и эффективного диалогового сценария требует мощного и гибкого инструментария. Страница редактирования Голосового робота UniTalk — это визуальный конструктор, где вы строите дерево диалога (Flowchart), управляя каждой его ветвью через систему узлов (Nodes), условий и действий. Это дает вам возможность не просто автоматизировать ответы, а точно контролировать, как клиент движется по сценарию, обеспечивая максимальную релевантность и скорость обработки его запроса. Давайте детально рассмотрим элементы управления, которые превратят вашу идею в рабочий алгоритм.
На страницу редактирования Голосового робота можно перейти только со страницы Голосового робота, нажав на кнопку «Редактировать», «Добавить» или «Копировать».

У Голосового робота есть основные настройки, которые открываются нажатием на шестеренку вверху страницы и из дерева диалога.

Дерево диалога состоит из узлов.

Узлы имеют следующие составляющие:
- условия перехода на узел — это условия, при выполнении которых будет выполнен переход из родительского узла на текущий.

- действие узла, которое будет выполнено при переходе на узел. При нажатии на блок действия откроется панель настройки действия узла.

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

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

- кнопка удаления узла — кнопка, которая при нажатии удаляет узел из дерева. Отсутствует у корневого (самого первого) узла.

- id (идентификатор узла) — используется при выводе ошибок хранения, может отправляться в вебхуках обработки событий. Уникален в пределах одного робота.

Управление Голосовым роботом
1. Кнопка «Сохранить» сохраняет Голосового робота.

2. Кнопка «Основные настройки» открывает панель с основными настройками робота.

3. Кнопки увеличения и уменьшения масштаба увеличивают и уменьшают масштаб дерева. Посередине указано текущее значение масштаба. Также масштаб можно изменять прокручиванием колесика мыши.

4. Кнопка «Отменить» позволяет отменить любое изменение робота. Если кнопка серая, она не активна, то есть изменений, которые можно отменить, еще не было.

5. Кнопка «Повторить» отменяет нажатие кнопки «Отменить», то есть возвращает те изменения, которые были отменены. Если кнопка серая, она не активна, то есть кнопка «Отменить» не нажималась.

6. Навигация по полотну с деревом. Если дерево очень большое и не помещается на экран, зажмите левую кнопку мыши на серой зоне и перетаскивайте дерево.

Основные настройки Голосового робота
При нажатии на шестеренку вверху экрана откроются основные настройки робота на боковой панели с настройками.
- Настройка завершения работы
- Панель дополнительных кнопок узла
- Фоновые работы
- Действие «Перейти на другой узел»
- Алгоритм транзитивный
- Алгоритм-приветствие
- Алгоритм обычный
- Действие распознавания речи
- Общие настройки действия узла
- Условия перехода
- Настройка блока условий узла
- Боковая панель с настройками

Меню с основными настройками Голосового робота выглядит так.

- «Название» — название Голосового робота, до 100 символов.
- «Сделать фоновым» — настройка доступна только при создании нового Голосового робота. Если настройка включена, робот будет создан как фоновый. Если он был создан как фоновый, обычным его уже нельзя сделать, как и наоборот.

- «Фоновый робот — перенос звонка» — настройка, которая не влияет на логику работы Голосового робота, используется в истории роботов. Доступна только для фоновых роботов.
- «Настройка распознавания речи» — настройка, которая недоступна для фоновых роботов.
- «Настройки синтеза речи» — выбор профиля настроек синтеза речи, который будет использоваться при синтезе аудио. Обязательно, если в аудио робота присутствует синтез речи.
- «Если не удалось синтезировать аудио» — настройка, которая определяет, что делать в случае неуспешного синтеза аудио. Недоступна для фоновых роботов.
- Фоновые диалоги (кнопка «Добавить фоновый диалог») — настройка фоновых роботов. Недоступно для фоновых роботов.
- «Добавить обработчик события запуска робота» — настройка, которая позволяет добавить до 5 обработчиков событий, которые будут вызваны при запуске робота.
- «Добавить обработчик события завершения робота» — настройка, которая позволяет добавить до 5 обработчиков событий, которые будут вызваны при завершении робота.
Боковая панель с настройками
Боковая панель с настройками нужна в таких случаях:
- при редактировании основных настроек робота (если нажать на шестеренку вверху)
- при редактировании настроек условий узла (если нажать на блок условий узла)
- при редактировании настроек действия узла (если нажать на блок действий узла)
Во всех случаях панель работает по одинаковому принципу.
Для сохранения настроек необходимо нажать кнопку «Применить изменения» справа вверху, но это лишь сохранение настроек в памяти браузера, сохранение робота при этом не происходит.

Для сохранения робота необходимо нажать кнопку «Сохранить», которая находится вверху по центру.

Например, если у вас уже есть созданный робот и вы хотите изменить его основные настройки, вам необходимо выполнить следующие действия:
- нажать на шестеренку
- изменить необходимые настройки
- нажать на кнопку «Применить изменения» на панели с настройками
- нажать на кнопку «Сохранить» вверху страницы
Панель закрывается после нажатия на крестик, кнопку «Применить изменения» или при нажатии клавиши Esc.
В настройках условий описываются условия, при которых может быть выполнен переход на текущий узел.
Настройка блока условий узла
В настройках условий описываются условия, при которых может быть выполнен переход на текущий узел.

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

После нажатия на блок условий открывается боковая панель с настройками условий перехода на узел.

Описание настроек условий
- Название — название блока с условиями, которое отображается в узлах дерева. Максимальная длина названия — 25 символов. Справа от поля также есть emoji, нажав на который можно добавить смайлик. Если нужного смайлика вы не нашли в списке, можете из любого места скопировать и вставить в поле.

- Приоритет блока условий — от 1 до 10, определяет, в каком порядке будут проверяться условия соседних узлов. Чем выше приоритет — тем раньше проверяется. Пример: во время звонка Голосовой робот дошел до узла с id=3, у которого есть 2 дочерних узла, в условиях первого (id=4) указан приоритет 5, у второго (id=5) — приоритет 10.

Когда абонент произносит фразу, робот получает уже распознанный текст и может быть ситуация, что он подходит к обоим дочерним узлам. Однако, если были указаны приоритеты, и в этом случае он выше у второго узла. Поэтому сначала мы проверяем его условия, убеждаемся, что текст подходит к ним и переходим на дочерний узел 2. Условия узла 1 можно не проверять.
- Если условия подошли, записать распознанный текст в переменную звонка. Это позволяет сохранить распознанный текст в переменную звонка и использовать его в дальнейшем в динамических значениях обработки событий. Переменные сохраняются в течение длительности звонка, а не только пока работает робот. Если в пределах одного звонка в одну переменную значение записывается несколько раз, сохраняется последняя запись.
- Задать условия можно несколькими способами:
1. задать список условий вручную

2. выбрать профиль условий проекта

Увидеть состав профиля можно нажав кнопку «Показать условия профиля», редактировать профиль нельзя.
3. выбрать профиль условий UniTalk

Увидеть состав профиля можно нажав кнопку «Показать условия профиля», редактировать профиль нельзя.
Для удобства к названиям профилей UniTalk добавлены префиксы с коротким названием языка в квадратных скобках — UA, RU, EN и т.д. При выборе профиля в поле поиска можно ввести префикс и увидеть список профилей на том языке, который вас интересует.

Префикс указывает на то, на каком языке фразы должны быть в профиле, но не означает, что в профиле будут фразы только на этом языке. Например, в профилях с префиксом UA есть фразы на двух языках — украинском и русском.
Условия перехода
- Условия перехода состоят из группы условий

- Группы условий состоят из условий

Переход на текущий узел будет выполнен, если распознанный текст на родительском узле будет соответствовать условиям перехода на текущий узел. Текст соответствует условиям, если все условия хотя бы одной из групп выполняются. Например, у текущего узла заданы следующие условия перехода:

Подытожим условия перехода.
- Переход будет выполнен, если распознанный текст будет содержать одну из фраз — «давайте попробуем» или «можно попробовать» и не содержит фразу «не интересует» (т.е. выполняются все условия группы 1)
- или переход будет выполнен, если была расписана любая цифра (то есть выполняются все условия группы 2)
Если говорить технической терминологией, то между условиями в группе стоит логическое «И», а между группами условий стоит логическое «ИЛИ».
Добавление условий
Добавить группу можно нажав кнопку «Добавить условие ИЛИ»:

Добавить условие в группу, нажав кнопку «Добавить условие И»:

После этого появится окно с условиями. Как только вы нажмете на условие, оно будет добавлено в группу.

Вы видите только основные условия. Чтобы показать все, нажмите кнопку «Показать все».

Общие настройки действия узла

В настройках действия описывается, что будет происходить при переходе на текущий узел. При нажатии на блок условий открывается боковая панель с настройками действия узла.

Список настроек отличается в зависимости от того, какой тип действия выбран в настройке «Действие».
Общие настройки (те, которые есть при любом типе действия):
- Название — максимальная длина 40 символов, а справа добавлен смайлик, нажав на который можно добавить эмоджи.
- Действие — тип действия узла.
- Аудио — будет воспроизведено при переходе на узел. Это обязательное поле для типов действия «Распознавание речи» и «Воспроизведение аудио». Можно прослушать, нажав кнопку «Воспроизвести аудио».

- Обработчики событий — можно добавить до 5 обработчиков событий, которые будут вызваны при переходе на узел.
Действие распознавания речи
Корневой узел НЕ фонового робота может иметь тип действия только «Распознавание речи».
Только узлы с типом действия «Распознавание речи» могут иметь дочерние узлы. У узлов с другим типом действия нет кнопки добавления дочернего узла. Если у узла с типом действия «Распознавание речи» есть дочерние узлы и вы измените его тип действия на другой, дочерние узлы будут удалены.

Узел с типом действия «Распознавание речи» не может быть последним узлом ветви, такое дерево не сохранится.

Как будет работать действие распознавания речи и какие настройки дополнительно будут доступны, зависит от настройки «Алгоритм работы действия распознавания речи».

Алгоритм обычный
Распознает слова абонента и в зависимости от распознанного текста переходит на один из дочерних узлов или на один из фоновых роботов (если они указаны в основных настройках).
Специфические настройки:
- Максимальное время ожидания фразы абонента — максимальное время, которое робот будет ждать, пока абонент начнет говорить (от 1 до 60 сек).
- Максимальное время прослушивания абонента — максимальное время, которое робот будет слушать, что говорит абонент, после того как абонент начал говорить (от 1 до 600 сек).
- Альтернативные аудио (Кнопка «Добавить альтернативное аудио») — указывать не обязательно. Можно задать любое количество альтернативных аудио. Проигрываются после выхода из фонового робота, если не указаны, — будет повторно воспроизведено основное аудио.
Альтернативные аудио могут быть полезны, когда вы хотите сделать диалог абонента с голосовым роботом максимально похожим на диалог с живым человеком. Если основной робот перейдет на фонового, после выхода из фонового робота будет возврат на узел, с которого был выполнен переход на фонового робота и снова будет проиграно аудио этого узла. Люди обычно не говорят абсолютно одинаковые фразы. Вы можете указать альтернативное аудио, которое будет похоже на основное аудио, но не точно такое же. Тогда после выхода из фонового робота абонент услышит не точно такую же фразу, а похожую на нее.
Аудио воспроизводятся по кругу. Например, если указано основное и 2 альтернативных аудио, при переходе на узел будет проиграно основное аудио, после перехода на фоновый робот и возврата обратно — альтернативное аудио 1, если еще раз будет осуществлен переход и возврат с фонового робота — альтернативное аудио 2, еще раз фоновый и возврат с него — основное аудио, и так по кругу.
Особенности:
- Может иметь более одного дочернего узла. Обязан иметь хотя бы один дочерний узел.
- В условиях перехода на дочерние узлы можно указать не более одного раза особое условие с типом «Распознан любой текст»
- В условиях перехода на дочерние узлы можно указать не более одного раза особое условие с типом «Абонент молчит и закончилось время ожидания»
- В условиях перехода на дочерние узлы обязательно должно быть указано один раз особое условие «Распознанный текст не соответствует ни одному из условий и истекло время ожидания». По этой причине если нажать на кнопку добавления узла, когда у узла с алгоритмом распознавания речи «Обычный» нет дочерних узлов, добавится не один узел, а сразу два, в одном из них будет задано условие «Распознанный текст не соответствует ни одному из условий и закончилось время ожидания», но не обязательно оставлять этот узел, это условие можно задать и в любом другом узле. Это сделано просто для удобства, поскольку условие обязательно, то почему бы его не добавить автоматически.

Алгоритм работы:
1) Воспроизводится аудио
2) После завершения аудио, если за «Максимальное время ожидания фразы абонента» абонент не начал говорить, выполняется переход на узел, в котором содержится условие «Абонент молчит и истекло время ожидания», или если этого условия нет, выполняется переход на узел с условием «Распознанный текст не соответствует ни одному из условий и истекло время ожидания».
3) Если абонент начал говорить, то ожидаем от системы распознавания речи финальный результат распознавания в течение «Максимального времени прослушивания абонента». Если за это время финальный результат распознавания не будет получен, будет взят последний промежуточный результат распознавания.
4) Полученный результат распознавания форматируется:
- из текста удаляется все, кроме букв, цифр и пробелов
- текст приводится к нижнему регистру
- множественные пробелы между словами заменяются на единичные
- удаляются пробелы в начале и в конце текста
5) После получения результата распознавания происходит поиск узла с соответствующими условиями перехода:
- Сначала проверяются условия перехода на дочерние узлы, кроме особых условий. Узлы проверяются по порядку в зависимости от приоритета, указанного в настройках условий, от наивысшего к наименьшему. Если нашли узел с соответствующей группой условий, выполняем переход на него.
- Если среди дочерних узлов не нашли подходящий, проверяем условия перехода на фоновых роботов (указываются в корневом узле). Фоновые роботы проверяются по порядку в зависимости от приоритета, указанного в настройках условий корневых узлов, от наивысшего к наименьшему. Если нашли фоновый робот с соответствующей группой условий, выполняем переход на него.
- Если фоновых роботов нет или не нашли подходящий фоновый робот, если присутствует дочерний узел с условием «Распознан любой текст», выполняем переход на него, иначе выполняем переход на дочерний узел с условием «Распознанный текст не соответствует ни одному из условий и истекло время ожидания».
Алгоритм-приветствие
Предназначен для приветствия с пользователем. Абонент после того, как возьмет трубку, может сразу что-нибудь сказать, а может молчать, пока ему не скажут что-нибудь, этот алгоритм это учитывает.
При создании нового робота, корневой узел автоматически создается с алгоритмом «Приветствие», но так делать не обязательно, в корневом узле может быть указан любой алгоритм.
Специфические настройки:
- Закончить приветствие, если услышали «Алло» — если голосовой робот получит промежуточный результат распознавания с фразой «Алло», сразу будет воспроизведено аудио и выполнен переход на следующий узел
- Максимальное время ожидания фразы абонента — от 1 до 60 сек
- Максимальное время прослушивания абонента — от 1 до 600 сек
Особенности:
- Может иметь только один дочерний узел. Если переключить алгоритм на «Обычный», добавить несколько дочерних узлов и вернуть обратно алгоритм «Приветствие», настройки робота сохранить не получится и стрелки к дочерним узлам будут мигать красным цветом.

- Переход на фоновый робот не выполняется
- Поскольку дочерний узел всего один и не может быть перехода на фоновый робот, у дочернего узла не нужно указывать условия перехода (они отсутствуют)

Алгоритм работы:
- Если меньше, чем за «Максимальное время ожидания фразы абонента» от системы распознавания речи был получен финальный результат распознавания, будет проиграно аудио и выполнен переход на дочерний узел.
- Если за «Максимальное время ожидания фразы абонента» абонент начал говорить, робот будет ожидать, пока он закончит (до получения финального результата), но не более, чем «Максимальное время прослушивания абонента». После этого будет воспроизведено аудио и выполнен переход на дочерний узел.
- Если за «Максимальное время ожидания фразы абонента» абонент не начал говорить, ожидаем финальный результат распознавания не более, чем «Максимальное время прослушивания абонента».
- Если финальный результат распознавания получен, будет воспроизведено аудио и выполнен переход на дочерний узел.
- Если финальный результат не получен, но абонент не молчал, будет воспроизведено аудио и выполнен переход на дочерний узел.
- Если абонент молчит, звонок завершится.
Алгоритм транзитивный
Этот алгоритм просто воспроизводит аудио и переходит на дочерний узел. Не имеет специфических настроек.
Особенности такие же, как и у алгоритма-приветствия:
- Может иметь только один дочерний узел. При нескольких дочерних узлах стрелки, которые идут к ним, будут мигать красным цветом и настройки робота сохранить не получится.
- Переход на фоновый робот не выполняется
- Для дочернего узла условия не указываются
Алгоритм работы:
- Воспроизводится аудио
- После завершения аудио выполняется переход на дочерний узел. То, что говорит абонент, не проверяется, а если даже говорит, распознанный текст не записывается в историю роботов.
Действие «Перейти на другой узел»
Это действие позволяет перейти на любой узел дерева.
Специфические настройки:
- перейти на узел с id — идентификатор узла, на который будет выполнен переход

Особенности:
- Не имеет дочерних узлов
- К указанному узлу должна вести анимированная пунктирная фиолетовая стрелка

Ограничения:
- запрещен переход на текущий узел
- запрещен переход на узел с типом действия «Перейти на другой узел»
- запрещен переход на родительский узел, если у него нет дочерних узлов, кроме текущего узла
В случаях, описанных в ограничениях и если не указывать id узла для перехода или указывать несуществующий id узла:
- настройки робота нельзя будет сохранить
- возле поля ввода id красным цветом будет описано, в чем проблема

- из текущего узла вниз будет идти красная пунктирная стрелка

Пример:
В работе необходимо задать 2 вопроса подряд и после них выполнить одно и то же действие. Первый вопрос: какой способ оплаты (наличными или картой), второй: какой способ доставки (курьером, почтой), действие: оформление заказа.
Без действия «Переход на другой узел» получится 2 идентичные ветки:

Используя «Переход на другой узел», можно обойтись без дублирования:

Вместо двух действий, где мы спрашиваем о способе доставки, осталось одно, условия «Курьером» и «Почтой» настраивают по одному разу, вместо четырех действий оформления заказа осталось одно, но логика работы осталась той же самой.
Фоновые работы
Есть фразы или вопросы, которые абонент может произнести в любой момент диалога. Чтобы не описывать эту логику на каждом узле, можно использовать фоновые работы
Особенности:
- Фоновые роботы — это роботы, которые можно использовать только в обычных (не фоновых) роботах, указываются в основных настройках. Они могут быть вызваны на любом узле основного робота с типом действия распознавания речи и алгоритмом «Обычный».
- Фоновые роботы считаются частью основного робота:
— в их основных настройках нельзя указать настройки распознавания речи, используются настройки основного робота;
— в истории звонков фоновые роботы не отображаются в переадресациях звонков;
— в историю роботов не записываются, а находятся в переадресациях основных роботов.
- Фоновые роботы работают по тому же принципу, что и обычные. Начиная с корневого узла двигаются к конечному. Если конечный узел фонового робота будет иметь тип действия «Выход из голосового робота», будет выполнен возврат в основной робот на тот же узел, с которого перешли на фоновый робот. При других типах действия конечного узла фонового робота завершится как фоновый, так и основной робот.
- Условия перехода на фонового робота указываются в самом фоновом роботе в блоке условий корневого узла.

- Фоновые роботы нельзя использовать во входящих сценариях, голосовых роботах и API звонках.
- На странице роботов отображаются в разделе «Фоновые диалоги».

Пример:
Абонент в любой момент диалога может сказать «не расслышал», «повторите, пожалуйста» или что-то подобное. Хорошо было бы после этого повторно воспроизвести аудио для абонента. Можно создать фонового робота с условиями перехода «не расслышал», «повторите» и т.д., указать тип действия «Выход из голосового робота» и добавить этот фоновый робот в настройки основного робота.

Каждый раз, когда абонент будет говорить одну из перечисленных фраз, на любом узле дерева с распознаванием речи с алгоритмом «Обычный»:
- будет выполняться переход на фонового робота
- моментальный выход из фонового робота (действие в корневом узле — «Выход из голосового робота»)
- возвращение в тот же узел основного робота
- будет воспроизведено повторно основное аудио узла или альтернативное аудио (если было указано)
Панель дополнительных кнопок узла

При наведении на узел справа появляется панель с кнопками
1) Передвинуть узел влево/вправо в дочерних узлах родительского узла

- на логику работы робота не влияет, меняется только изображение дерева;
- пример перемещения:
до

после (если нажать на узел с id=3, он сместится влево, узлы шли в порядке 2, 3, 4, а теперь 3, 2, 4)

- если у родительского узла есть только один дочерний узел (текущий), то на текущем узле кнопки перемещения влево/вправо отображаться не будут

- если текущий узел самый левый среди дочерних узлов родительского узла, кнопка слева будет неактивной

- если текущий узел самый правый среди дочерних узлов родительского узла, кнопка справа будет неактивной
2) Изменить цвета узла и ветви

- позволяют изменить цвет полосы на левой стороне узла

- кнопка «Цвет» позволяет задать цвет линии текущего узла

- кнопка «Цвет ветви» позволяет задать цвет линии текущего узла

- после нажатия указанных кнопок из палитры можно выбрать цвет

3) копирование узлов и веток

- кнопка «копировать»
- кнопка «копировать ветку»
Можно скопировать узлы в одной работе и вставить в другой, но в рамках одного проекта.
4) Кнопка «Вставить»

- Позволяет вставить скопированные или вырезанные ранее узлы в дочерние узлы текущего узла.
- Вставленные узлы получают новые id.
- После копирования кнопка не будет видна, если текущий узел не может иметь дочерних узлов, или если может иметь только один дочерний узел и он уже есть.
5) Кнопка «Вырезать»

- Позволяет вырезать ветку после нажатия ветка копируется в память, далее, появится кнопка «Вставить». Пока не будет нажата кнопка «Вставить», ветка будет оставаться на своем месте.
- Вставка недоступна в родительский узел и в потомков текущего узла.
Настройка завершения работы
По завершению робота вычисляются различные параметры: причина завершения, длительность, тип узла, на котором завершился робот. Данные о работе робота сохраняются в истории.
1. Причина завершения робота:
- Завершился нормально — робот дошел до конечного узла
- Абонент завершил разговор — абонент положил трубку
- Абонент молчал во время приветствия — абонент молчал все время ожидания на узле с распознаванием речи и алгоритмом «Приветствие»
- Распознан автоответчик — распознан автоответчик
- Ошибка распознавания речи — распознавание речи прервалось по техническим причинам
- Превышен лимит пересеченных узлов — за один запуск робота допускается проход максимум через 200 узлов, в частности, учитываются узлы фоновых роботов. Это защита от зацикливания робота
- Превышен лимит выполненных действий «Перейти на другой узел» — за один запуск робота допускается проход максимум через 20 узлов с типом действия «Перейти на другой», в том числе учитываются узлы фоновых роботов. Это защита от зацикливания робота
- Неизвестная ошибка — неизвестная ошибка во время работы робота
2. Продолжительность робота — продолжительность робота
Длительность указывается в истории роботов и в списаниях. Считается от момента запуска робота до завершения аудио конечного узла (действие конечного узла не входит в длительность) или до момента завершения робота по другой причине. Количество секунд округляется в большую сторону. Например, 14,3 секунд округляется до 15.
3. Тип узла, на котором завершился робот
- Промежуточный — робот завершился на промежуточном (не конечном) узле
- Успешный — робот завершился на конечном узле и в настройках действия тип конечного узла указан как «Успешный»
- Неуспешный — робот завершился на конечном узле и в настройках действия тип конечного узла указан как «Неуспешный»
- Фоновый — звонок завершился на фоновом роботе
- Фоновый — перенос звонка — звонок завершился на фоновом роботе и в основных настройках фонового робота включена галка «Фоновый робот — перенос звонка».
Детальная работа с редактором Голосового робота позволяет вам достичь максимальной точности и эффективности в диалоговой автоматизации. Используя приоритеты условий, фоновые роботы для обработки неожиданных фраз и действие “Перейти на другой узел” для избежания дублирования логики, вы строите сложные, но чистые и управляемые сценарии. Это обеспечивает высокий процент успешного прохождения диалога клиентами, минимизирует ошибки и позволяет вашему роботу функционировать как идеально обученный оператор.