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

Ключ

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

...

Russian

Оглавление

1. Сценарий

            Создание сценария
            Окно редактирования сценария
            Работа с блоками
            Настройки сценария
            Работа с переменными

2. Элементы

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



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



Div
classpage-headline

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

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


При создании сценария, очень важно уделить внимание полю "Тип аудио", т.к. впоследствии от него, будет зависеть, возможность добавления аудиозаписи во фразы повтора и работоспособность секции "Озвучка блока".

















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


Тип синтез

Система будет сама озвучивать написанный текст

Тип аудиозапись

Система будет использовать добавленные аудиозаписи




Примечание

В таких блоках как Вопрос, Пауза, Запрос к серверу и Информация, вместо текста, который должен произноситься системой, будут использоваться добавленные аудиозаписи из секции "Озвучка блоков"



Div
classpage-headline

Окно редактирования сценария

Якорь
ОкноРедактированияСценария
ОкноРедактированияСценария


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



Элементы управления:

НазваниеСкриншотОписание
Блоки действий

Позволяют задать системе сценарии обзвона

Стрелка

Позволяет задать системе направление сценария
Рука

Даёт возможность перемещаться по рабочему пространству
Курсор

Позволяет работать с объектом или выделять их
Карта

Открывает окно с рабочим пространством для быстрого перемещения
Масштаб

Изменяет масштаб рабочего пространства

Отменить

Шаг назад
Вернуть

Шаг вперед
Сохранить

Сохраняет скрипт
Удалить

Удаляет скрипт
Удалить медиа

Удаляет все записанные и загруженные медиафайлы
Показать последний

Перейти к последнему добавленному блоку
Очистить

Возвращает в исходное состояние
Чат

Позволяет проверить скрипт в форме переписки
Микрофон

Позволяет проверить скрипт в форме живого общения


Горячие клавиши:

РезультатКлавиши
Сохранение сценария

Ctrl + S

Отмена последнего совершенного действия
Ctrl + Z
Снятие выделенияEsc
Удаление выделенного элементаDel



Div
classpage-headline

Работа с блоками

Якорь
РаботаСБлоками
РаботаСБлоками


Настройка каждого блока/стрелки на рабочем пространстве производится в правой части экрана редактора. Для того чтобы открыть свойства, нужно кликнуть на блок/стрелку левой клавишей мыши. Для быстрого создания часто используемых блоков предусмотрена функция, которая позволяет создать блок в один клик. Для этого, у выделенного блока, внизу располагаются кнопки с блоками типа Вопрос, Информация и Случайный выбор. Пользователю лишь остается потянуть одну из кнопок, чтобы расположить блок на рабочем пространстве.


Div
classpage-headline

Настройки сценария

Якорь
НастройкиСценария
НастройкиСценария



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




Div
classpage-headline

Работа с переменными

Якорь
РаботаСПеременными
РаботаСПеременными


Создание и использование переменной происходит посредством простого объявления в поле. 

Например, мы создадим переменную, в которую будем записывать текущую дату и назовем её ТекущийГод

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

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

Примечание

Для блока "Условие", переменная объявляется без фигурных скобок


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



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


Div
classpage-headline

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

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


Описание:

Показывает направление сценария и определяет условия перехода от одного блока к другому. У таких блоков как Вопрос, Условие, Запрос к серверу и Эмоции, стрелка имеет свойства отличные от всех остальных блоков.


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


Описание

Скриншот

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

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




Div
classpage-headline

Стартовый блок

Якорь
СтартовыйБлок
СтартовыйБлок


Описание:

Данный блок используется для фиксации начала сценария. Блок не предполагает каких-либо действий и служит исключительно для отображения пользователю начало сценария диалога. Позволяет ориентироваться при большом "дереве" сценария диалога. 


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


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

1. Название скрипта

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

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




Div
classpage-headline

Блок Вопрос

Якорь
БлокВопрос
БлокВопрос


Описание:

Данный блок предназначен для опроса пользователя.


Условия выхода:

  • По истечении времени сеанса распознавания
  • По ключевому слову


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


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

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

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

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

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


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


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


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

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

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

9. Функция "поделиться номером" и текст отображаемый на кнопке. Данный функционал позволяет вывести пользователю кнопку с предварительно заданным текстом, по нажатию на которую пользователь может передать в бота свой контактный номер телефона (указанный в профиле).****

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



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

Свойства:

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

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

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

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

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

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

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

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



Примечание

Для корректного отображения текста кнопки в Facebook, рекомендуется в поле Вариант ответа размещать текст не более 20-ти символов


Типы:

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

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


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

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

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

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


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

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

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

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

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


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

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

Дата

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


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

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

Если необходимо пользовательское значение даты для сравнения, то дата задается в формате:

YYYY-MM-DD (без времени)

YYYY-MM-DD HH:MM:SS (дата и время)

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 и необходим обученный агент.  Подробнее об этом вы можете прочитать здесь




Div
classpage-headline

Блок Пауза

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


Описание:

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

Условия выхода:

  • По истечении заданного времени
  • По ключевому слову


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


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

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

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

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

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

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

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


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





Div
classpage-headline

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

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


Описание:

Данный блок используется для произнесения сообщения пользователю.

Условия выхода:

  • После озвученного сообщения системой
  • Пропуск блока


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


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

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

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

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


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





Div
classpage-headline

Блок Условие

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


Описание:

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


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


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

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



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

Свойства:

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

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

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


Типы:

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

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

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


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


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


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

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

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


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


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

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

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

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


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

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




Div
classpage-headline

Блок Случайный выбор

Якорь
БлокСлучайныйВыбор
БлокСлучайныйВыбор


Описание:

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


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


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

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

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




Div
classpage-headline

Блок Эмоции

Якорь
БлокЭмоции
БлокЭмоции


Описание:

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


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


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

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



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

Свойства:

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

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

2. Выбор эмоции, которую система будет ожидать для переход по ветке


Типы:

ТипОписание
ПозитивнаяПереход по стрелке будет происходить в случае, если переменная {детектор.эмоции} имеет значение positive
НегативнаяПереход по стрелке будет происходить в случае, если переменная {детектор.эмоции} имеет значение negative
НейтральнаяПереход по стрелке будет происходить в случае, если переменная {детектор.эмоции} имеет значение neutral




Div
classpage-headline

Блок Результат

Якорь
БлокРезультат
БлокРезультат


Описание:

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


Раскрыть
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. Создает новое задание на обзвон для пользователя на определенное время

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




Div
classpage-headline

Блок Запрос к серверу

Якорь
БлокЗапросКсерверу
БлокЗапросКсерверу


Описание:

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

Для лучшего понимания работы блока рекомендуется прочесть о синтаксисе формата JSON. Читать


Раскрыть
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


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

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


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


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

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






Div
classpage-headline

Блок Арифметика

Якорь
БлокАрифметика
БлокАрифметика


Описание:

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



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

Типы:
Арифметическая операция

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

1. Маркер блока - произвольный пользовательский текст, может использоваться в отчетах как маркер посещения (необязателен для заполнения)

2. Кнопки добавления арифметических действий в рабочую область

3. Рабочая область для составления арифметического выражения*

4. Поле для добавления переменной в рабочую область

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

6. Поле сохранения результата вычислений. Результат вычислений всегда сохраняется в переменную (обязательно для заполнения)

*Помимо простых арифметических выражений, доступна функция округления результата, для этого необходимо записать выражение в виде: math.round({var},2), где {var} - переменная, число или арифметическое выражение, 2 - точность округления (знаков после запятой.

Примеры:

math.round(1/3,2) - будет произведено деление 1 на 3 и результат будет записан с точностью 2 знака после запятой - 0.33

math.round(1.6666666,0) - число 1.6666666 будет округлено до целого - 2

Примечание
titleВажно!

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

У блока всегда должны быть одна входная и одна выходная стрелки.

Факты

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

Сохранить факт

1. Маркер блока - произвольный пользовательский текст, может использоваться в отчетах как маркер посещения (необязателен для заполнения)

2. Выбор типа операции (работа с фактами)

3. Область видимости - как глобально может применяться факт:

Факты компании - в рамках всей компании (может быть использовано в любом боте)

Факты бота - в рамках одного бота, для которого получен факт

Факты о клиенте - применяется к клиенту с которым ведется диалог

Факты о клиенте для бота - применяется к клиенту с которым ведется диалог, в рамках бота, где получен факт.

4. Действие производимое с фактом (может быть произведено несколько действий в рамках одного блока)

5. Контекст (категория) факта - произвольный текст, служащий для идентификации факта в БД

6. Название факта - произвольный текст, служащий для идентификации факта в БД

7. Значение факта - текстовое или числовое значение факта, сохраняемое в БД. 
Может быть как текстом\числом, так и переменной полученной в ходе диалога

Image Modified

Загрузить факт

1. Маркер блока - произвольный пользовательский текст, может использоваться в отчетах как маркер посещения (необязателен для заполнения).

2. Выбор типа операции (работа с фактами).

3. Область видимости - как глобально может применяться факт:

Факты компании - в рамках всей компании (может быть использовано в любом боте).

Факты бота - в рамках одного бота, для которого получен факт.

Факты о клиенте - применяется к клиенту с которым ведется диалог.

Факты о клиенте для бота - применяется к клиенту с которым ведется диалог, в рамках бота, где получен факт.

4. Действие производимое с фактом (может быть произведено несколько действий в рамках одного блока).

5. Контекст (категория) факта - произвольный текст, служащий для идентификации факта в БД.

6. Название факта - произвольный текст, служащий для идентификации факта в БД.

7. Сохранить в переменную - название переменной в которую будет загружено текущее значение факта из БД, для дальнейшего использования в сценарии.

Image Modified

Удалить факт

1. Маркер блока - произвольный пользовательский текст, может использоваться в отчетах как маркер посещения (необязателен для заполнения).

2. Выбор типа операции (работа с фактами).

3. Область видимости - как глобально может применяться факт:

Факты компании - в рамках всей компании (может быть использовано в любом боте).

Факты бота - в рамках одного бота, для которого получен факт.

Факты о клиенте - применяется к клиенту с которым ведется диалог.

Факты о клиенте для бота - применяется к клиенту с которым ведется диалог, в рамках бота, где получен факт.

4. Действие производимое с фактом (может быть произведено несколько действий в рамках одного блока).

5. Контекст (категория) факта - произвольный текст, служащий для идентификации факта в БД.

6. Название факта - произвольный текст, служащий для идентификации факта в БД.

Image Modified


Примечание
titleВажно!
  1. Все действия с фактами происходят при прохождении ботом данного блока
  2. Если предпринимается повторная попытка сохранения существующего факта, то его значение будет перезаписано.





Div
classpage-headline

Блок Порядковый выбор 

Якорь
БлокПорядковыйвыбор
БлокПорядковыйвыбор

Описание:

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

Пример: при первом посещении "блока порядковый выбор" будет произведен переход по ветке с порядковым номером "1", при повторном посещении того же самого блока "порядковый выбор", будет произведен переход по ветке диалога с порядковым номером "2", при третьем посещении - по ветке с порядковым номером "3" и т.д.


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


ОписаниеСкриншот
1. Маркер блока - произвольный пользовательский текст, может использоваться в отчетах как маркер посещения (необязателен для заполнения)

Image Modified



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


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

1. Текст стрелки - нередактируемое поле, определяется порядковым номером стрелки

2. Порядковый номер - порядковый номер посещения блока, на основании которого будет выбрана дальнейшая ветка диалога

Image Modified


Примечание
titleВажно!

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





...

Button Hyperlink
custom-icontop-button
idtop-button
title .
typestandard
classtop-button
url#Top
Якорь
TopTop

CSS Stylesheet
.top-button {
		background-image: url(https://confluence.twin24.ai/download/thumbnails/23986188/baseline_keyboard_arrow_up_white_18dp.png) !important;
		background-position: center;
		background-color: #47a7f5 !important;
		background-repeat: no-repeat;
		box-shadow: -1px 1.5px 3px #999;
		color: #47a7f5 !important;
		border-radius:50px !important;
        position: fixed;
        bottom: 45px;
        left: 93.5%;
        width: 50px;
		height: 50px !important;
        font-size: 12px !important;
        padding: 14.5px !important;
		z-index: 2;
}
.top-button:hover{
		background-color: #65b9ff !important;
        color: #65b9ff !important;
}
.page-header{
		background-color: #232838;
	    background-repeat: no-repeat;
	    background-position: center;
		width: auto;
    	height: 100px;
		background-image: url(https://confluence.twin24.ai/download/attachments/23986188/logo_twin-02.png);
		background-size: 10em;
        color: #fff;
        font-size: 20px;
        padding: 20px;
}
.page-footer{
		background-color: #232838;
		background-image: url(https://confluence.twin24.ai/download/thumbnails/23986188/decorated-pattern-dark.png);
		width: auto;
    	height: 10px;
        color: #fff;
		text-align: end;
    	font: small-caption;
    	padding-inline-end: 30px;
    	padding-top: 200px;
    	padding-bottom: 30px;
}
.page-headline{
		background-image: url(https://confluence.twin24.ai/download/thumbnails/23986188/Solid256dot8_2changed.png);
    	background-repeat: no-repeat;
    	background-position-x: -227px;
    	background-position-y: center;
    	padding: 20px;
		background-color: #007bff;
		width: auto;
    	height: 10px;
        color: #fff;
		text-align: center;
    	font: caption;
    	font-weight: 600;
}
.tabs-menu{
    padding-left: 85% !important;
}

...

classpage-header

...

Оглавление

1. Сценарий

            Создание сценария
            Окно редактирования сценария
            Работа с блоками
            Настройки сценария
            Работа с переменными

2. Элементы

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

...

classpage-headline

...

При создании сценария, очень важно уделить внимание полю "Тип аудио", т.к. впоследствии от него, будет зависеть, возможность добавления аудиозаписи во фразы повтора и работоспособность секции "Озвучка блока".

Image Removed

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

...

Система будет сама озвучивать написанный текст

...

Image Removed

...

Система будет использовать добавленные аудиозаписи

...

Image Removed

Примечание

В таких блоках как Вопрос, Пауза, Запрос к серверу и Информация, вместо текста, который должен произноситься системой, будут использоваться добавленные аудиозаписи из секции "Озвучка блоков"

...

classpage-headline

...

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

Image Removed

Элементы управления:

...

Image Removed

...

Позволяют задать системе сценарии обзвона

...

Image Removed

...

Image Removed

...

Image Removed

...

Image Removed

...

Image Removed

...

Изменяет масштаб рабочего пространства

...

Image Removed

...

Image Removed

...

Image Removed

...

Image Removed

...

Image Removed

...

Image Removed

...

Image Removed

...

Image Removed

...

Image Removed

...

Горячие клавиши:

...

Ctrl + S

...

classpage-headline

...

Настройка каждого блока/стрелки на рабочем пространстве производится в правой части экрана редактора. Для того чтобы открыть свойства, нужно кликнуть на блок/стрелку левой клавишей мыши. Для быстрого создания часто используемых блоков предусмотрена функция, которая позволяет создать блок в один клик. Для этого, у выделенного блока, внизу располагаются кнопки с блоками типа Вопрос, Информация и Случайный выбор. Пользователю лишь остается потянуть одну из кнопок, чтобы расположить блок на рабочем пространстве.

Image Removed

...

classpage-headline

...

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

Image Removed

...

classpage-headline

...

Создание и использование переменной происходит посредством простого объявления в поле. 

Например, мы создадим переменную, в которую будем записывать текущую дату и назовем её ТекущийГод

Image Removed

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

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

Примечание

Для блока "Условие", переменная объявляется без фигурных скобок

...

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

...

classpage-headline

...

Image Removed

Описание:

Показывает направление сценария и определяет условия перехода от одного блока к другому. У таких блоков как Вопрос, Условие, Запрос к серверу и Эмоции, стрелка имеет свойства отличные от всех остальных блоков.

...

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

...

Описание

...

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

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

...

Image Removed

...

classpage-headline

...

Image Removed

Описание:

Данный блок используется для фиксации начала сценария. Блок не предполагает каких-либо действий и служит исключительно для отображения пользователю начало сценария диалога. Позволяет ориентироваться при большом "дереве" сценария диалога. 

...

titleСвойства блока

...

1. Название скрипта

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

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

...

Image Removed

...

classpage-headline

...

Image Removed

Описание:

Данный блок предназначен для опроса пользователя.

Условия выхода:

  • По истечении времени сеанса распознавания
  • По ключевому слову

...

titleСвойства блока

...

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

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

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

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

...

  • Короткая – 5 секунд
  • Нормальная – 7 секунд
  • Длинная – 10 секунд

...

  • Система 1 – сервис распознавания Google
  • Система 2 – сервис распознавания Yandex

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

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

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

9. Функция "поделиться номером" и текст отображаемый на кнопке. Данный функционал позволяет вывести пользователю кнопку с предварительно заданным текстом, по нажатию на которую пользователь может передать в бота свой контактный номер телефона (указанный в профиле).****

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

...

Image Removed

Image Removed

...

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

Свойства:

...

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

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

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

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

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

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

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

...

Image Removed

Примечание

Для корректного отображения текста кнопки в Facebook, рекомендуется в поле Вариант ответа размещать текст не более 20-ти символов

Типы:

...

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

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

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

...

Image Removed

...

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

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

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

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

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

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

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

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

...

Image Removed

...

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

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

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

Если необходимо пользовательское значение даты для сравнения, то дата задается в формате:

YYYY-MM-DD (без времени)

YYYY-MM-DD HH:MM:SS (дата и время)

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

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

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

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

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

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

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

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

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

...

Image Removed

...

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

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

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

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

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

Где  

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

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

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

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

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

...

Image Removed

...

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

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

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

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

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

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

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

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

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

...

Image Removed

...

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

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

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

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

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

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

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

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

...

Image Removed

...

classpage-headline

...

Image Removed

Описание:

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

Условия выхода:

  • По истечении заданного времени
  • По ключевому слову

...

titleСвойства блока

...

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

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

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

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

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

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

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

...

Image Removed

...

classpage-headline

...

Image Removed

Описание:

Данный блок используется для произнесения сообщения пользователю.

Условия выхода:

  • После озвученного сообщения системой
  • Пропуск блока

...

titleСвойства блока

...

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

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

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

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

...

Image Removed

...

classpage-headline

...

Image Removed

Описание:

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

...

titleСвойства блока

...

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

...

Image Removed

...

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

Свойства:

...

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

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

...

Image Removed

Типы:

...

Image Removed

...

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

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

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

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

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

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

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

...

Image Removed

...

Image Removed

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

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

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

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

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

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

...

classpage-headline

...

Image Removed

Описание:

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

...

titleСвойства блока

...

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

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

...

Image Removed

...

classpage-headline

...

Image Removed

Описание:

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

...

titleСвойства блока

...

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

...

Image Removed

...

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

Свойства:

...

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

2. Выбор эмоции, которую система будет ожидать для переход по ветке

...

Image Removed

Типы:

...

classpage-headline

...

Image Removed

Описание:

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

...

titleСвойства блока

...

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

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

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

...

Image Removed

Типы:

...

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

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

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

...

Image Removed

...

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

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

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

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

...

Image Removed

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

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

...

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

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

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

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

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

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

...

Image Removed

...

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

...

Image Removed

...

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

...

Image Removed

...

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

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

...

Image Removed

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

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

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

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

...

Image Removed

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

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

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

...

Image Removed

...

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

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

...

Image Removed

...

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

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

...

Image Removed

...

classpage-headline

...

Image Removed

Описание:

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

Для лучшего понимания работы блока рекомендуется прочесть о синтаксисе формата JSON. Читать

...

titleСвойства блока

...

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

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

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

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

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

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

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

...

Image Removed

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

...

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

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

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

...

Image Removed

...

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

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

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

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

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

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

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

...

Image Removed

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

...

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

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

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

...

Image Removed

...

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

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

1. Логин

2. Пароль

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

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

...

Image Removed

...

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

1. Имя ключа

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

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

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

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

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

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

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

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

...

Image Removed

...

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

Свойства:

...

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

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

...

Image Removed

Типы:

...

Image Removed

...

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

Результат ответа от сервера будет сохранен в переменную 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

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

...

Image Removed

...

Image Removed

...

classpage-headline

...

Image Removed

Описание:

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

...

titleСвойства блока

Типы:
Арифметическая операция

...

1. Маркер блока - произвольный пользовательский текст, может использоваться в отчетах как маркер посещения (необязателен для заполнения)

2. Кнопки добавления арифметических действий в рабочую область

3. Рабочая область для составления арифметического выражения*

4. Поле для добавления переменной в рабочую область

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

6. Поле сохранения результата вычислений. Результат вычислений всегда сохраняется в переменную (обязательно для заполнения)

...

Image Removed

*Помимо простых арифметических выражений, доступна функция округления результата, для этого необходимо записать выражение в виде: math.round({var},2), где {var} - переменная, число или арифметическое выражение, 2 - точность округления (знаков после запятой.

Примеры:

math.round(1/3,2) - будет произведено деление 1 на 3 и результат будет записан с точностью 2 знака после запятой - 0.33

math.round(1.6666666,0) - число 1.6666666 будет округлено до целого - 2

Примечание
titleВажно!

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

У блока всегда должна быть одна входная и одна выходная стрелка.

Факты

...

Сохранить факт

1. Маркер блока - произвольный пользовательский текст, может использоваться в отчетах как маркер посещения (необязателен для заполнения)

2. Выбор типа операции (работа с фактами)

3. Область видимости - как глобально может применяться факт:

Факты компании - в рамках всей компании (может быть использовано в любом боте)

Факты бота - в рамках одного бота, для которого получен факт

Факты о клиенте - применяется к клиенту с которым ведется диалог

Факты о клиенте для бота - применяется к клиенту с которым ведется диалог, в рамках бота, где получен факт.

4. Действие производимое с фактом (может быть произведено несколько действий в рамках одного блока)

5. Контекст (категория) факта - произвольный текст, служащий для идентификации факта в БД

6. Название факта - произвольный текст, служащий для идентификации факта в БД

7. Значение факта - текстовое или числовое значение факта, сохраняемое в БД. 
Может быть как текстом\числом, так и переменной полученной в ходе диалога

...

Image Removed

...

Загрузить факт

1. Маркер блока - произвольный пользовательский текст, может использоваться в отчетах как маркер посещения (необязателен для заполнения).

2. Выбор типа операции (работа с фактами).

3. Область видимости - как глобально может применяться факт:

Факты компании - в рамках всей компании (может быть использовано в любом боте).

Факты бота - в рамках одного бота, для которого получен факт.

Факты о клиенте - применяется к клиенту с которым ведется диалог.

Факты о клиенте для бота - применяется к клиенту с которым ведется диалог, в рамках бота, где получен факт.

4. Действие производимое с фактом (может быть произведено несколько действий в рамках одного блока).

5. Контекст (категория) факта - произвольный текст, служащий для идентификации факта в БД.

6. Название факта - произвольный текст, служащий для идентификации факта в БД.

7. Сохранить в переменную - название переменной в которую будет загружено текущее значение факта из БД, для дальнейшего использования в сценарии.

...

Image Removed

...

Удалить факт

1. Маркер блока - произвольный пользовательский текст, может использоваться в отчетах как маркер посещения (необязателен для заполнения).

2. Выбор типа операции (работа с фактами).

3. Область видимости - как глобально может применяться факт:

Факты компании - в рамках всей компании (может быть использовано в любом боте).

Факты бота - в рамках одного бота, для которого получен факт.

Факты о клиенте - применяется к клиенту с которым ведется диалог.

Факты о клиенте для бота - применяется к клиенту с которым ведется диалог, в рамках бота, где получен факт.

4. Действие производимое с фактом (может быть произведено несколько действий в рамках одного блока).

5. Контекст (категория) факта - произвольный текст, служащий для идентификации факта в БД.

6. Название факта - произвольный текст, служащий для идентификации факта в БД.

...

Image Removed

Примечание
titleВажно!
  1. Все действия с фактами происходят при прохождении ботом данного блока
  2. Если предпринимается повторная попытка сохранения существующего факта, то его значение будет перезаписано.

...

classpage-headline

...

Image Removed

Описание:

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

Пример: при первом посещении "блока порядковый выбор" будет произведен переход по ветке с порядковым номером "1", при повторном посещении того же самого блока "порядковый выбор", будет произведен переход по ветке диалога с порядковым номером "2", при третьем посещении - по ветке с порядковым номером "3" и т.д.

...

titleСвойства блока

...

Image Removed

...

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

...

1. Текст стрелки - нередактируемое поле, определяется порядковым номером стрелки

2. Порядковый номер - порядковый номер посещения блока, на основании которого будет выбрана дальнейшая ветка диалога

...

Image Removed

Примечание
titleВажно!

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

...

Table of contents

1. Script

            Creating a script
            Script Editor window
            Work with blocks
            Script settings
            Work with variables

2. Elements

            Arrow (Branch)
            Start Block
            Question Block
            Pause Block
            Information Block
            Condition Block
            Randomization Block
            Emotions Block
            Result Block
            Server Request Block

...

classpage-headline

...

Importance of focusing on “Audio type” field is very high as it afterwards controls capability of adding audio recording to repeat phrases section and efficiency of “voice block” section.

Image Removed

On pictures below you can see how repeat section appearance changes depending on defined settings in pause block.

...

The system will speak given text

...

Image Removed

...

The system will use added audiorecordings

...

Image Removed

Примечание

In blocks such as “Server Question”, “Pause”, “Request” and “Information” added audio recordings (section voice block) are used instead of the text.

...

classpage-headline

...

A question-answer system which bears a superficial resemblance to a tree with neural network training and extraction of answers. Script is made as a question-answer basis, the questions and possible answers are developed ourselves. During the call, depending on possible response, the system will operate according to the script.

Image Removed

Control elements (Controls):

...

Image Removed

...

Allows to set dialing scripts

...

Image Removed

...

Image Removed

...

Image Removed

...

Image Removed

...

Opens a workspace window for quick navigation

...

Image Removed

...

Changes workspace scale

...

Image Removed

...

Image Removed

...

Image Removed

...

Image Removed

...

Image Removed

...

Delete all recorded and downloaded files

...

Image Removed

...

Go to the last added block

...

Image Removed

...

Back to the original state

...

Image Removed

...

Allows to see the script in chat form

...

Microphone

...

Image Removed

...

Allows to see the script in dialog form

Hotkeys:

...

Script saving

...

Ctrl + S

...

Undo the last step

...

Remove the highlight

...

Delete selected item

...

classpage-headline

...

Each block / arrow settings is configured on the right side of the editor screen on the workspace. In order to open the properties, you need to click on the block / arrow with the left mouse button. There is also a function that allows you to create blocks you use frequently in just one click. Selected block has buttons at the bottom, such as “Question”, “Information”, and “Random Selection”. The user only has to pull one of the buttons to place the block in the workspace.

Image Removed

...

classpage-headline

...

For cases when automatic speech recognition is not possible or the blocks do not have connections (arrows) it is possible to configure the call forwarding to a specialist.

Image Removed

...

classpage-headline

...

Creation and use of a variable is going through a simple declaration in the field.

For example, we create a variable which contains the current date and let's name it CurrentYear

Image Removed

As you can see in the screenshot, the name is just typed into the field. As soon as the system reaches this exact block, it automatically creates a variable with that name, recorded data we need but to use created variable, you need to enclose it in curly brackets.

Примечание

No need of braces for a variable in ‘Requirement’ block

...

As you can see in the screenshot, this block includes condition which we had put in the variable earlier. 

...

classpage-headline

...

Image Removed

Description:

Shows the direction of the script (branch) and determines conditions for the transition from one block to another. For such blocks as “Question”, “Condition”, “Server Request” and “Emotions”, the arrow has properties different from all other blocks.

...

titleArrow Properties

...

Description

...

1. Arrow title

It can be used as a mark for ourselves, in order to know what kind of response we will be expecting from the user, or any other information that will facilitate our navigation through the script

...

Image Removed

...

classpage-headline

...

Image Removed

Description:

This block is used to fix the beginning of the script.The block does not imply any actions, and serves solely to display beginning of the dialog script to the user. It allows navigating in case of a large dialog script “tree”. 

...

titleBlock Properties

...

1. Script name

2. Creation of variables to be used as part of the script

The type of variables determines how they will be spoken by the system during the dialog. The system will be declining the date and amount in rubles depending on the number

...

Image Removed

...

classpage-headline

...

Image Removed

Description:

This block is intended (to survey) for polling the user.

Exit Criteria:

  • After the recognition session has expired
  • By keyword

...

titleBlock Properties

...

1. Title of the block

2. Text of the question to be spoken by the system

3. List of phrases spoken bythe system in case of user’s no response*

4. Time duration the system awaits for the answer from user to finish the call**

...

  • Short – 5 seconds
  • Middle – 7 seconds
  • Long – 10 seconds

...

  • System 1 – Google recognition service
  • System 2 – Yandex recognition service

6. If ticked, the system will recognize the user's emotional coloring and record it in the variable {detector.emotions}***

7. If ticked, the system will not be waiting for a response from the user, but will transfer it to the operator

8. If ticked, the system will not be trying to find response to the question through other blocks of the “Question” type, located on the same branch

* If there are more than one options, then phrases will be spoken in random order
** You can read more about recognition duration time here
*** You can read more about types of emotions here. (You can read more about types of emotion here

...

Image Removed

...

titleArrow Properties

Properties:

...

1. Title

2. Creation of a variable in which the system will record a response from the user

3. Data type that the system expects from the user to proceed to navigate through the branch

4. Name of the response button*

5. Determines display order of the button*

Thus, if we have a button with a serial number equal to 3 in one of the 4 development branches, then this button will be displayed penultimate in the list.

* Used for chats only

...

Image Removed

Types:

...

This type is used for navigation if the system failed to find a voiced response in all other arrows of this block.

1. Name of the response button (see description in the Arrow Properties)

2. Determines display order of the button (see description in the Arrow Properties)

...

Image Removed

...

Navigation through the branch will be performed if the user's response matches the keyword.

1. Words or expressions that the system expects from the user to navigate through the branch

Enter keywords separated by spaces. Expressions shall be entered using quotation marks, i.e. “already on the spot

It is also possible to use the abstract word NEAR in an expression that will mean any word, i.e.:“I am not going NEAR”, where NEAR can be any word: anywhere, ever, now, tomorrow, etc.

The system is provided with a balance system, when the explicit response “yes”from a person may not always denote recognition, i.e.: “Yes, I can clearly hear you, I am not going to lunch”.In this response, we can see the word “yes”and preposition “not”, which is of higher priority in the context, and is a negation in the general concept of the response: “I am not going to lunch”. Thus, when arranging keywords and expressions, it will be more explicit to add some “weight” to negative words: “+++no” and “+no”. Each plus sign has a unit of weight. Where the word or expression is one unit. Accordingly, in the example one word is added to the word “no”, and 3 words are added to the preposition “not”. In case of quantitative predominance, the decision making system will choose this route.

In the opposite situation, we alternatively can reduce the weight using the minus sign: “-yes”

2. Name of the response button (see description in the Arrow Properties)

3. Determines display order of the button (see description in the Arrow Properties)

...

Image Removed

...

Navigation through the branch will be performed if date announced by the user matches the date specified in the arrow properties.

1. Value Check Condition

For example, to match the delivery date of goods, it is possible to check that the date is greater than the current one in order to avoid the situation when the delivery will be arranged for the previous day.

2. Response that the system expects from the user

The system knows and able to work with dates and relative dates. Example of user responses that the system can recognize:

  • January 23
  • Tomorrow
  • Day after tomorrow
  • Yesterday
  • Day before yesterday
  • In n days
  • n days ago
  • January 23, 1996

If the year is not explicitly specified in the date, then the current one is applied

Also, this type is trying to determine the time. Possible variants:

  • At 14:00
  • In minutes
  • In hours

If the user does not explicitly specify the time, then the current one is applied

3. Name of the response button (see description in the Arrow Properties)

4. Determines display order of the button (see description in the Arrow Properties)

...

Image Removed

...

Navigation through the branch will be performed if number announced by the user matches the number specified in the arrow properties.

1. Value Check Condition

For example, when conducting an opinion poll, the system may ask a question: “How old are you?”, and then ask different questions for various age groups according to specific conditions. 

The comparison follows the following rules:

{RECOGNIZED} {OPERATOR} {COMPARED}

Where 

  • {RECOGNIZED} is the number that was recognized in the user's speech during the dialog
  • {OPERATOR}is the comparison operator (less, more, equal, etc.)
  • {COMPARED} is the value specified in the properties (see item No. 2)*

2. Response that the system expects from the user

3. Name of the response button (see description in the Arrow Properties)

4. Determines display order of the button (see description in the Arrow Properties)

* May contain variables enclosed in curly brackets, which can be transmitted when setting a task.

...

Image Removed

...

Navigation through the branch will be performed if the announced number of symbols in the number matches the number of symbols specified in the arrow properties.

1. Value check condition

2. Expected input mask

For example, for a passport we can set a mask of the form #### ######, where each symbol # denotes a digit

3. If the system failed to recognize response or the user response does not match the specified one, then the system will not attempt to re-poll

4. Value that the system expects from the user

If a person during conversation denotes a number that will not fit the mask (less number of digits than it was expected), then the system will prompt the user to say the remaining digits

5. Name of the response button (see description in the Arrow Properties)

6. Determines display order of the button (see description in the Arrow Properties)

...

Image Removed

...

Navigation through the branch will be performed if the intention specified in the properties matches the already voiced intention of the user*

1. System selection

2. Agent selection

3. Intentions that the system expects from the user

4. Creation of variables in which data clarified by the system during the dialog can be recorded

5. Name of the response button (see description in the Arrow Properties)

6. Determines display order of the button (see description in the Arrow Properties)

* To work with this type, established connection to Twin.ai and a trained agent are required. You can read more about it here

...

Image Removed

...

classpage-headline

...

Image Removed

Description:

This block switches the system to standby mode.

Exit Criteria:

  • After the set time has expired
  • By key word

...

titleBlock Properties

...

1. Title

2. Text that will be spoken by the system upon completion of navigation to the block

3. Keywords that the system expects to exit the block

4. Time after which the text from the section Repeat textwill be spoken (see item No. 6)

5. Time after which the call will be transferred to the operator

6. Repeat options that will be spoken by the system after timeout*

* If there are more than one options, then phrases will be spoken in random order

...

Image Removed

...

classpage-headline

...

Image Removed

Description:

This block is used to issue voiced message to the user.

Exit Criteria:

  • After a message spoken by the system
  • Block skip

...

titleBlock Properties

...

1. Title

2. Text that will be spoken by the system upon completion of navigation to the block

3. The system will skip the current block if has already spoken the information block, which we will select in this item*

* It is possible to select a block of “Information”type only

...

Image Removed

...

classpage-headline

...

Image Removed

Description:

This block allows determining the script direction according to the dialog state. Navigation through arrow will be performed if all conditions specified by the user are met.

...

titleBlock Properties

...

1. Block title

...

Image Removed

...

titleArrow Properties

Properties:

...

1. Subtext allowing the script creator to navigate the links

2. Decision-making method

...

Image Removed

Types:

...

Image Removed

...

Navigation through the branch will be performed if the specified condition is met.

1. Set of conditions according to which a decision is made

  • The “AND” condition requires that all specified conditions be met.
  • The “OR” condition requires that at least one specified condition is met.

2. Intended for setting values to variables.

The name of variable without curly brackets is recorded in the left field

The value that we want to assign to the variable is recorded in the right field*

* It is allowed to use variables that will be further replaced with their value at the time of assignment

...

Image Removed

...

Image Removed

Информация
titleOperation “*”

It is possible to use operation “*” in section "Conditions" for the right field

This operation is used to determine text by mask, where * is any number of letters or digits.

For example: if the condition is of the form name = *na, then such names as Sabrina, Lorena, Joanna, etc. will meet this condition

Примечание
titleDecision weight

If there are two branches that meet the navigation, then the branch in which the number of matching conditions is greater will be selected. If the matching conditions are equal, then the priority will be given to the branch with the “Condition AND” type, because it is more strict

...

classpage-headline

...

Image Removed

Description:

This block is intended to ensure variability of the dialog. The system randomly navigates through arrows that exit the block.

...

titleBlock Properties

...

1. Title

2. Description that the user can write for oneself

...

Image Removed

...

classpage-headline

...

Image Removed

Description:

This block allows determining the script direction according to the user emotions. Navigation through arrow will be performed if all conditions specified by the user are met.

...

titleBlock Properties

...

1. Block title

...

Image Removed

...

titleArrow properties

Properties:

...

1. Subtext allowing the script creator to navigate the links

2. Selection of emotion that the system will expect to navigate through the branch

...

Image Removed

Types:

...

classpage-headline

...

Image Removed

Description:

This block is intended for recording the result of the conversation, as well as for forced transfer to the operator, sending a message and/or notification.

...

titleBlock Properties

...

1. Block title

2. Description that the user can write for oneself

3. Decision-making type

...

Image Removed

Types:

...

1. Recipient email address

2. Letter head

3. Message text

...

Image Removed

...

1. Template that the system will use for notification sending

2. Recipient phone number

3. Recipient email address

4. Notification sending method

...

Image Removed

Примечание
titleTesting Messages

If you want to send the result of the conversation to oneself, it is better to send by e-mail, because it is free. Sending call results through notifications is charged

...

Result Recording

Saving dialog data to a report

1. Field to which it is possible to record the date to be uploaded to the report*

2. Field to which it is possible to record the rating to be uploaded to the report*

3. Field to which it is possible to record the data to be uploaded to the report*

* Optional field

...

Image Removed

...

1. Call ending

...

Image Removed

...

1. The call will be transferred to the operator

...

Image Removed

...

1. Forwarding settings from the dialing task are used

2. Text that will be spoken by the system after the operator picks up the phone

...

Image Removed

1. Dial plan to be used by the system for call forwarding*

2. Phone number to be redirected to

3. Text that will be spoken by the system after the operator picks up the phone

* The dial plan is created in the section “Telephony”

...

Image Removed

1. Call forwarding settings from the transfer plan are used*

2. Text that will be spoken by the system after the operator picks up the phone

* The dial plan is created in the section “Telephony”

...

Image Removed

...

1. Start of the specified script

2. Text that will be spoken by the system after the operator picks up the phone

...

Image Removed

...

1. Creation of a new call task for a user for specific time

This field uses a variable of type Date which is declared in the start block

...

Image Removed

...

classpage-headline

...

Image Removed

Description:

This block is used to complete a request to an external server.

It is recommended to read about the syntax of the JSON format for a better understanding of the block operation. Read

...

titleBlock Properties

...

1. Block title

2. Text with a request of expectation to be spoken by the system

3. Time after which the system will speak a repeated message (see item No. 4)

4. Text with a request of expectation that will be spoken by the system while the server will be completing the server request

5. Type of authorization to the server

6. Request type

7. URL of the page we will be working with

...

Image Removed

Types of requests:

...

Is used to receive data from the server

It is possible to obtain data about the order, product, user, etc. using this type of request

1. URL of the page we will be working with

...

Image Removed

...

Is used to send data to the server

It is possible to save data about the order, create product, refresh the user data, etc. using this type of request

1. URL of the page we will be working with

2. Allows setting the required key value

For example: If we need to send data in the form of the body

Блок кода
{
"first_name" : "John"
}

then record the key first_name in the left field, and its value John in the right field

...

Image Removed

Authorization types:

...

This type is used if we do not need authorization to work with the page

1. Request type

2. Page URL

...

Image Removed

...

Login/Password

This type is used if we are required to log in to work with the page

1. Login

2. Password

3. Request type

4. Page URL

...

Image Removed

...

This type is used if we are required to use token to work with the page

1. Key name

2. Determines which authorization scheme will be used to work with the page*

For example: If we pass the token in the Authorization key in the header as follows

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

then in the field Authorization type the user must input Bearer.

and in the field Key value the user must input t490da279fd42889f56

3. Request type

4. Page URL

* You can read more about the schemes  here

...

Image Removed

...

titleArrow Properties

Properties:

...

1. Subtext allowing the script creator to navigate the links

2. Decision-making types

...

Image Removed

Types:

...

By default

...

Image Removed

...

Navigation through the branch will be performed if the server response code matches the code specified in the arrow properties, as well as if the specified conditions have been met.

The server response result will be recorded to the variable result

1. Response code that the system expects after completing the request*

2. Set of conditions according to which a decision is made

3. Creation of a variable in which the value from the server response will be recorded

For example, we received the following response 

Блок кода
{
"first_name" : "John", 
"surname" : "Smith",
"last_name" : "Doe",
"age" : "51"
}

and we want to save only the age data from it.

For this purpose, we need to record the value of the form result.age in the right field

Where

result is the response body

age is the key in the response body

If, for example, the response is as follows

Блок кода
{
"first_name" : "John", 
"surname" : "Smith",
"last_name" : "Doe",
"age" : "51"
}
"parents" : [ 
{
"description" : "Father",
"full_name" : "James Doe"
},
{
"description" : "Mother",
"full_name" : "Jane Doe"
}
]
}

and we want to save the mother's full name, then we must use record of the form result.parents.full_name[1]

Where

result is the response body

parents is the array containing the key we need

full_name[1] is the second key in the parents” array

* You can read more about the state codes here

...

Image Removed

...

Image Removed

Div
classpage-footer

TWIN © 

Button Hyperlink
custom-icontop-button
idtop-button
title .
typestandard
classtop-button
url#Top