Сравнение версий

Ключ

  • Эта строка добавлена.
  • Эта строка удалена.
  • Изменено форматирование.

...

            Стрелка (Ветка)
            Стартовый блок
            Блок Вопрос
            Блок Пауза
            Блок Информация
            Блок Условие
            Блок Случайный выбор
            Блок Эмоции
            Блок Результат
            Блок Запрос к серверу


...

1. Сценарий 
Якорь
Сценарии
Сценарии

...

 Создание сценария

Якорь
СозданиеСценария
СозданиеСценария

...

Как видно на скриншоте, данный блок будет включать в условие значение, которое находится в переменной, что мы объявили ранее. 


...

2. Элементы
Якорь
Элементы
Элементы

...

Стрелка (Ветка)

Якорь
Стрелка
Стрелка

...

Раскрыть
titleСвойства блока


ОписаниеСкриншот

1. Заголовок блока

2. Текст вопроса, который будет произнесен системой

3. Фразы, которые будут озвучены системой, в случае, если не удастся получить ответ от пользователя*

4. Время, в течение которого, система будет ожидать ответ от пользователя и по истечении которого будет завершен вызов**


Общее время длительности распознавания речи:
  • Короткая – 5 секунд
  • Нормальная – 7 секунд
  • Длинная – 10 секунд


5. Выбор сервиса для распознавания речи
  • Система 1 – сервис распознавания Google
  • Система 2 – сервис распознавания Yandex


6. При выставленной галке, система будет распознавать эмоциональную окраску пользователя и записывать её в переменную {детектор.эмоции}***

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

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


* Если вариантов больше чем одно, то фразы будут произноситься в случайном порядке
** Подробнее о времени длительности распознавания можно посмотреть здесь
*** Подробнее о типах эмоции можно почитать здесь



Раскрыть
titleСвойства стрелки

Свойства:

ОписаниеСкриншот

1. Заголовок стрелки

2. Создание переменной, в которую система запишет ответ от пользователя

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

4. Наименование кнопки ответа*

5. Определяет порядок отображения кнопки*

Так, если у нас кнопка у одной из 4 веток развития имеет порядковый номер 3, то эта кнопка будет отображена в списке предпоследней

* Данный пункт используется только для чатов


Типы:

ТипОписаниеСкриншот
Ветка по умолчанию

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


1. Наименование кнопки ответа (см. описание в свойствах стрелки)

2. Определяет порядок отображения кнопки (см. описание в свойствах стрелки)

Ключевые слова

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


1. Слова или выражения, которые система ожидает от пользователя для перехода по ветке

Ключевые слова вводятся через пробел. Выражения вводятся с использованием кавычек, например "уже на месте"

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

В системе предусмотрена система весов, когда явный ответ "да" от человека, не всегда может означать признание, например: "Да, я вас отчетливо слышу, я не пойду на обед". В данном ответе мы видим слово "да" и предлог "не", который по смыслу является приоритетней и в общей концепции ответа является отрицанием: "я не пойду на обед". Таким образом, при расстановке ключевых слов и выражений, будет более явно добавить вес к отрицательным словам: "+++не" и "+нет". Каждый знак плюс имеет единицу веса. Где единицей является слово или выражение. Соответственно, в примере к слову "нет" + одно слово, а к предлогу "не" + 3 слова. При количественном перевесе система принятия решения выберет этот маршрут.

В обратной ситуации мы можем наоборот, понижать вес, используя знак минус:  "-да"


2. Наименование кнопки ответа (см. описание в свойствах стрелки)

3. Определяет порядок отображения кнопки (см. описание в свойствах стрелки)

Дата

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


1. Условие проверки значения

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

2. Ответ, который система ожидает от пользователя

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

  • 23 января
  • Завтра
  • Послезавтра
  • Вчера
  • Позавчера
  • Через n дней
  • n дней назад
  • 23 января 1996 года

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

Так же данный тип пытается найти время. Возможные варианты:

  • в 14:00
  • Через n минут
  • через n часов

Если пользователь явно не указывает время, берется текущее

3. Наименование кнопки ответа (см. описание в свойствах стрелки)

4. Определяет порядок отображения кнопки (см. описание в свойствах стрелки)

Число

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


1. Условие проверки значения

Например, при проведения соц. опроса, система может задать вопрос: "Скажите, сколько вам лет?" и благодаря условиям можно задать различные вопросы разным возрастным группам. 

Сравнение происходит по правилам:

{РАСПОЗНАННОЕ} {ОПЕРАТОР} {СРАВНИВАЕМОЕ}

Где  

  • {РАСПОЗНАННОЕ} - число, которое распознано в речи пользователя в момент диалога
  • {ОПЕРАТОР}  - оператор сравнения (меньше, больше, равно и т.д.)
  • {СРАВНИВАЕМОЕ} - Значение, заданное в свойствах (см. пункт №2)*


2. Ответ, который система ожидает от пользователя

3. Наименование кнопки ответа (см. описание в свойствах стрелки)

4. Определяет порядок отображения кнопки (см. описание в свойствах стрелки)


* Может содержать в себе переменные заключенные в фигурные скобки, которые могут быть переданы при постановке задания.

Большое число

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


1. Условие проверки значения

2. Маска ожидаемого ввода 

Например, для паспорта мы можем задать маску вида #### ######, где каждый символ # - это цифра

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

4. Значение, которое система будет ожидать от пользователя

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

5. Наименование кнопки ответа (см. описание в свойствах стрелки)

6. Определяет порядок отображения кнопки (см. описание в свойствах стрелки)

Интеллектуальное принятие решений

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


1. Выбор системы

2. Выбор агента

3. Намерения, которые система ожидает от пользователя.

4. Создание переменных, в которые могут быть записаны данные, которые были выяснены системой во время диалога

5. Наименование кнопки ответа (см. описание в свойствах стрелки)

6. Определяет порядок отображения кнопки (см. описание в свойствах стрелки)


* Для работы с данным типом, нужно иметь подключение к Twin.ai и необходим обученный агент.  Подробнее об этом вы можете прочитать здесь



...

Блок Пауза

Якорь
БлокПауза
БлокПауза

...

Раскрыть
titleСвойства блока


ОписаниеСкриншот

1. Заголовок блока

2. Текст, который будет произнесен системой, после того, как будет произведен переход на блок

3. Ключевые слова, которые ожидает система для того чтобы выйти из блока

4. Время, через которое будет произнесен текст из секции «Текст повтора» (см. пункт № 6)

5. Время, по истечении которого, звонок будет переведен на оператора

6. Варианты повтора, которые будут озвучены системой по истечении времени ожидания*


* Если вариантов больше чем одно, то фразы будут произноситься в случайном порядке




...

Блок Информация

Якорь
БлокИнформация
БлокИнформация

...

Раскрыть
titleСвойства блока


ОписаниеСкриншот

1. Заголовок блока

2. Текст, который будет произнесен системой, после того, как будет произведен переход на блок

3. Система пропустит текущий блок, если она озвучит информационный блок, который мы выберем в данном пункте*


* Выбрать возможно только блок типа «Информация»




...

Блок Условие

Якорь
БлокУсловие
БлокУсловие

...

Раскрыть
titleСвойства стрелки

Свойства:

ОписаниеСкриншот

1. Вспомогательный текст, который позволяет создателю скрипта ориентироваться в связях

2. Способ принятия решения


Типы:

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

Условие И / ИЛИ

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


1. Набор условий, по которым принимается решение


  • Условие "И" требует, чтобы все указанные условия выполнялись.
  • Условие "ИЛИ" требует, чтобы выполнялось хотя бы одно указанное условие


2. Служит для установки значений переменным.

В левое поле записывается название переменной без фигурных скобок

В правое поле записывается значение, которое мы хотим присвоить переменной*


* Допускается использование переменных, которые будут заменены на их значение в момент присваивания


Информация
titleОперация "*"

В секции "Условия", для правого поля возможно использовать операцию "*"

Данная операция используется для определения текста по маске, где * это любое количество букв или цифр.

Например: если условие будет иметь вид имя = *на, то под условие будут попадать имена Анна, Карина, Марина и т.д.


Примечание
titleВес решения

Если есть две ветки которые удовлетворяют переходу, то будет выбрана та ветка, у которой количество совпавших условий больше. В случае равенства совпавших условий, приоритет будет отдан ветке с типом "Условие И", т.к. оно более строгое


...

Раскрыть
titleСвойства блока


ОписаниеСкриншот

1. Заголовок блока

2. Описание которое пользователь может написать для себя

3. Тип принятия решения


Типы:

ТипОписаниеСкриншот
Отправка email

1. Email адрес получателя

2. Заголовок письма

3. Текст сообщения

Отправка уведомления

1. Шаблон, который будет использован системой для отправки уведомления

2. Телефон получателя

3. Email адрес получателя

4. Способ отправки уведомления


Примечание
titleТестирование сообщений

Если вы планируете отправить результат разговора себе, то для этого лучше использовать отправку через email, т.к. он является бесплатным. За отправку результатов разговора через уведомления, взимается плата


Зафиксировать результат

Сохраняет данные диалога в отчет


1. Поле, в которое можно записать дату для выгрузки в отчет*

2. Поле, в которое можно записать оценку для выгрузки в отчет*

3. Поле, в которое можно записать данные для выгрузки в отчет*


* Необязательное поле

Перевод на оператора

1. Завершение вызова

1. Звонок будет переключен на оператора

1. Использует настройки переадресации из задания на обзвон

2. Текст, который будет озвучен системой после того, как  оператор возьмёт трубку

1. План набора, который будет использован системой для переадресации звонка*

2. Номер телефона на который нужно произвести переадресацию

3. Текст, который будет озвучен системой после того, как  оператор возьмёт трубку


* План набора создается в разделе "Телефония"

1. Использует настройки переадресации из плана перевода

2. Текст, который будет озвучен системой после того, как  оператор возьмёт трубку


* План перевода создается в разделе "Телефония"

1. Запускает указанный сценарий

2. Текст, который будет озвучен системой после того, как  оператор возьмёт трубку

Перезвонить

1. Создает новое задание на обзвон для пользователя на определенное(?) время

Данное поле использует переменную типа Дата, которая объявляется в стартовом блоке


...

Раскрыть
titleСвойства блока


ОписаниеСкриншот

1. Заголовок блока

2. Текст с просьбой ожидания, который будет произнесен системой

3. Время, через которое система будет произносить повторное сообщение (см. пункт №4)

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

5. Тип авторизации к серверу

6. Тип запроса

7. Адрес страницы с которой мы будем работать


Типы запросов:

ТипОписаниеСкриншот
GET

Используется для получения данных от сервера

Используя этот тип запроса, мы можем получить данные о заказе, товаре, пользователе и т.д.


1. Адрес страницы с которой мы будем работать

POST

Применяется для отправки данных на сервер

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


1. Адрес страницы с которой мы будем работать

2. Позволяет нам установить нужное значение для ключа


Например: Если нам нужно отправлять данные в виде тела


Блок кода
{
"first_name" : "Владимир"
}


то следует ключ first_name записать в левое поле, а его значение Владимир, в правое поле


Типы авторизации:

ТипОписаниеСкриншот
Отсутствует

Данный тип используется, если нам не нужна авторизация для работы со страницей


1. Тип запроса

2. Адрес страницы

Логин/Пароль

Данный тип используется, если для работы со страницей нам обязательно нужно логиниться


1. Логин

2. Пароль

3. Тип запроса

4. Адрес страницы

Заголовок

Данный тип используется, если для работы со страницей нам обязательно нужно использовать токен


1. Имя ключа

2. Определяет, какую схему авторизации использовать для работы со страницей*

Например: Если в хедере мы передаем токен в ключе Authorization в таком виде


Блок кода
Authorization: Bearer t490da279fd42889f56


то в поле Тип авторизации, мы пишем Authorization.

а в поле Значение Ключа, мы пишем Bearer


3. Тип запроса

4. Адрес страницы


* Подробнее о схемах можно почитать здесь



Раскрыть
titleСвойства стрелки

Свойства:

ОписаниеСкриншот

1. Вспомогательный текст, который позволяет создателю скрипта ориентироваться в связях

2. Тип принятия решения



Типы:

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

РезультатУспешно

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

Результат ответа от сервера будет сохранен в переменную result


1. Код ответа, который система будет ожидать после выполнения запроса*

2. Набор условий, по которым принимается решение

3. Создание переменной, в которую будет записано значение из ответа от сервера

Например мы получили ответ вида 

Блок кода
{
"first_name" : "Владимир", 
"surname" : "Владимирович",
"last_name" : "Пресняков",
"age" : "51"
}

и мы хотим сохранить из него возраст.

Для этого нам нужно записать в правое поле значение вида result.age

Где

result - тело ответа

age - ключ в теле ответа


Если же к примеру у нас ответ имеет такой вид

Блок кода
{
"first_name" : "Владимир", 
"surname" : "Владимирович",
"last_name" : "Пресняков",
"age" : "51"
}
"parents" : [ 
{
"description" : "Отец",
"full_name" : "Владимир Пресняков"
},
{
"description" : "Мать",
"full_name" : "Елена Преснякова"
}
]
}

и мы хотим сохранить полное имя матери, то в таком случае мы используем запись вида result.parents.full_name[1]

Где

result - тело ответа

parents - массив в котором находится нужный нам ключ

full_name[1] - второй ключ в массиве parents


* Подробнее о кодах состояния можно прочесть здесь

Не успешноПереход по ветке будет произведен, если ответ от сервера получить не удалось



...