Приветствую, друзья! В предыдущих статьях мы создавали простые сценарии в интерфейсе конструктора голосовых роботов Voicebox. Сегодня возьмем тему чуть посложнее и рассмотрим пару сценариев с переменными. Один из них будет имитировать работу оператора маркетплейса: бот позвонит покупателю и попросит у него подтвердить или отменить заказ. Второй сценарий будет посвящен нелегкому труду сотрудников медицинской клиники. Облегчим им этот труд: теперь напоминать пациентам о приеме у врача будет бот.
Разумеется, мы предусмотрим и случаи, когда пациент захочет перенести визит или отказаться от него. Всё это будет сделано для того, чтобы меньше отвлекать специалистов, у которых и без того забот хватает.
Параллельно создадим пару блоков, в которых будут скомбинированы ответы голосом и при помощи цифровых клавиш. И, кстати, для некоторых людей это не только удобно, но и безопасно, потому что многие сегодня вообще не любят что-либо говорить, подозревая утечки биометрических данных. Что ж, уважим и их тоже. Но для начала немного теории.
Переменные в сценариях Voicebox
Перед тем, как приступать к разработке сценариев, пару слов о том, зачем могут понадобиться переменные в сценариях голосовых ботов:
Во-первых, в переменные может передаваться информация из базы данных. Имя клиента, номер заказа, сумма к оплате, время посещения, профессия врача — всё это боту нужно озвучить абоненту, и именно для этих целей мы будем заранее объявлять переменные в самих сценариях. А значения для них будут подтягиваться, например, из вашей CRM или базы данных компании.
Во-вторых, части переменных значения присваиваются, что называется, по ходу пьесы: например, в переменную можно записать голосовой ввод абонента или ввод с клавиатуры. А затем, естественно, использовать эту информацию в дальнейших блоках сценария. Для этого есть специальные меню в блоках, позволяющие записывать голосовой ввод в переменные.
В сегодняшних сценариях мы будем использовать переменные с заранее заданными значениями: я покажу, как их объявлять и как использовать в соответствующих блоках. Ну что ж, давайте закончим со скучной теорией и поскорее перейдем к практике.
Сценарий № 1. Подтверждение заказа на маркетплейсе
Итак, чтобы работать со сценариями нужно авторизоваться в конструкторе роботов от компании МТТ и выбрать исходящий сценарий «Подтверждение заказа клиентом»:
Теперь в шаблоне открываем главный (синий) блок «Исходящий сценарий». В основных настройках можно изменить голос бота, скорость воспроизведения, но нас сейчас интересуют переменные.
Поэтому переключаемся на следующую вкладку и добавляем нужные (внизу есть кнопка «Добавить переменную»), вот так:
Здесь нужно отметить два момента. Во-первых, в списке уже есть системные переменные. Их трогать не нужно, впрочем, удалить система их в любом случае не даст. И в данных сценариях, за единственным исключением (см. сценарий № 2), рассматривать эти переменные мы не будем.
Во-вторых, обратите внимание на значения. В этом обучающем сценарии я их вбил вручную, но в работе реального сценария он будет настроен так, что эти данные будут подтягиваться непосредственно из CRM.
Добавив переменные, не забудьте сохраниться. К этому списку у нас еще будет повод вернуться, а пока давайте скорректируем шаблонный сценарий.
Блок вызов мы уже разбирали ранее, он нужен для набора номера. В случае ответа бот приветствует покупателя, а если на той стороне автоответчик, то принудительно завершает звонок. В случае успеха выполняется переход к блоку подтверждения заказа («Заказ»).
Да, еще одно напоминание: не забудьте сохранить сценарий. Конечно, при закрытии программа предложит сделать это сама, но удобнее выбрать для сценария подходящее имя, чтобы затем быстро найти и открыть его. А первую переменную мы введем уже в блоке «Приветствие»:
Обратите внимание на двойные фигурные скобки: именно так указываются переменные в текстовых блоках VoiceBox. Теперь наш робот сразу обратится к товарищу Печкину по имени и затем перейдет к сути звонка. А остальные переменные мы используем в блоке «Заказ» таким образом:
Вспоминаем, какие значения мы присвоили этим переменным. Значит, Игорь Иванович услышит следующее: «Вы оформили у нас заказ номер 377 на сумму 25000 рублей. В заказ входит тулуп, штаны ватные, валенки, а доставим мы его в Простоквашино. Если вы подтверждаете заказ, скажите Да или нажмите клавишу 1. Если хотите отменить, скажите Нет или нажмите 2. Если что-то неверно, скажите Оператор или нажмите 3».
Обязательно оставляем возможность соединения с оператором: вдруг Игорь Иванович забыл заказать шапку на меху или кеды в подарок Шарику. Вот и пришло время нам вернуться в главный блок и кое-что проверить:
Справа появились стрелочки. Раскрываем строку и видим, что стала доступна дополнительная информация: имя сценария, статус (используется или нет переменная), а также блоки, где она используется. Очень удобно, ведь можно случайно вбить не то имя, и тогда переменная не сработает.
Теперь посмотрим, как реализовать сочетание голосового и цифрового ввода. Здесь тоже всё довольно просто:
В типе ответа включаем обе галочки, для голосовых ответов добавляем ключевые слова. Причем не только те, которые просим произнести покупателя, но на всякий случай делаем расширенный список, ведь кто скажет «Ага», а кто-то «Не». И в этом случае сценарий не приостановится, ожидая, например, цифрового ввода. Цифры, кстати, после постановки галочки в пункте «С клавиатуры» будут расставлены автоматически в порядке добавления пунктов.
Вот и всё, осталось настроить блоки ответа, и наш сценарий готов. Выглядеть он будет примерно так:
Сценарий № 2. Приглашение в клинику
Теперь поможем медицинским работникам и освободим их от рутинных приглашений клиентов в клинику. Создадим сценарий голосового бота, который будет звонить пациентам и подтверждать визит к специалисту.
Для этого случая у нас тоже есть удобный шаблон, который называется «Информирование о встрече». Находится он там же, в меню шаблонов. Слегка изменим его вид и получим такую схему:
С приветствием и завершением по автоответчику всё понятно, поэтому сразу переходим к одному из двух ключевых блоков сценария «Сможете прийти». Открываем его и настраиваем переходы с учетом того, что пациент может передумать, а также на случай возможной ошибки подтверждения. Вот так будет выглядеть текст:
Здесь, помимо имени пациента, сценарий подхватит время посещения и специалиста, на прием которому пациент собирается. Переменные, разумеется, должны быть заданы в главном блоке сценария (см. первый пример). Но здесь есть и еще один момент. Кроме согласия или отказа пациента, может произойти, например, сбой распознавания. Предусмотрим и этот вариант и добавим возможность повтора сообщения, вот так:
Теперь, если ввода не будет или возникнет ошибка, бот просто повторит вопрос. С подтверждением визита всё понятно: будет произнесен соответствующий текст и звонок завершится. Осталось настроить блок отмены визита:
Здесь, в общем-то, тоже ничего нового, просто закрепляем пройденное, совместив голосовой ввод с вводом цифрами. Еще раз обращаю ваше внимание на полезность этой функции: общаться голосом хотят далеко не все, поэтому комбинированные меню следует создавать везде, где это возможно.
А теперь об одной из системных переменных. Для перевода на сотрудника мы можем использовать переменную number_a, которая уже объявлена в сценарии по умолчанию. Выбираем ее из выпадающего списка и указываем внутренний номер сотрудника:
Что ж, пора подводить итоги. Сегодня мы познакомились с переменными, научились задавать их в сценарии и использовать в блоках. Также рассмотрели комбинированные меню с возможностью голосового и цифрового ввода по выбору.
Как обычно, сценарии, которые мы создали, достаточно универсальные, поэтому вам нетрудно будет переделать их для своей компании или сервиса. В следующий раз рассмотрим сценарии, когда программа будет записывать в переменные ответы абонентов.
Автор: Роман Андреев