Какие элементы присутствуют в самостоятельной настройке схемы?

Доступные элементы схемы:

Запись

Блок позволяет записать пользовательскую речь для распознания и дальнейшего использования в схеме.

Опции:

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

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

- Максимальное время записи - лимит времени записи.

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

Блок имеет идентификатор #record_N, который может быть использован в блоке Аудио в текст.

Воспроизвести

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

Если задано поле "Идентификатор", то значение поля "Запись" игнорируется.

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

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

Воспроизведение синхронного файла - более подробно описано в блоке Текст в аудио.

В блоке можно использовать все доступные переменные - проекта ([$value]), схемы ([#block]), параметры, переданные через API ([=api_key]), номер телефона, с которого поступил звонок ([@callerphone]).

Текст в аудио (синтез)

Внимание! Выполнение блока платное.

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

Внимание! Блок не воспроизводит синтезированную речь. Это делает блок Воспроизвести с указанием в поле "Идентификатор" идентификатора блока "Текст в аудио".

В тексте можно использовать все доступные переменные - проекта ([$value]), схемы ([#block]), параметры, переданные через API ([=api_key]), номер телефона, с которого поступил звонок ([@callerphone]).

Опция Сихронная обработка позволяет минимализировать задержку по времени (тишину) на синтез речи, которую услышит пользователь. Т.к. синтез речи достаточно ресурсоемкая задача, на ее выполнение требуется достаточно много времени (время синтеза обычно несколько меньше, чем длительность фразы для синтеза). При выборе данной опции управление сразу перейдет на следующий блок схемы, выполняя синтез речи в фоновом режиме. Типичное применение - первым ставится блок Текст в аудио с отмеченной опцией Синхронная обработка, далее следует блок Воспроизвести, который воспроизводит заранее заготовленную запись (например, приветствие). И далее следует второй блок Воспроизвести с идентификатором первого блока Текст в аудио. Таким образом, пока воспроизводится первый блок Воспроизвести, в фоне происходит синтез речи. И к моменту выполнения второго блока Воспроизвести синтезировання речь уже должна быть готова (длительность первого блока Воспроизвести нужно подбирать в зависимости от длительности синтезируемого текста).

Аудио в текст (распознавание)

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

Поле Тематика ответа позволяет системе точнее распознать специальные запросы (адрес, дата и прочее).

Нажатие цифры

Ожидает ввод цифры пользователем заданное время (Время на нажатие). Как только пользователь вводит цифру, управление передается следущему блоку. В следующих блоках обычно используются условные операторы (Добавить условие, Равно, Содержит, Пустота) для реализации логики работы. В условных операторах используется идентификатор #digit_N для получения введенного значения.

При нажатии # произойдет переход к начальной точке схемы.

Добавить условие

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

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

Условный оператор для блоков уведомлений позволяет проверить, выполнен ли блок (совершен ли звонок, отправлены ли SMS или E-mail, выполнен ли HTTP-запрос).

Отметить успешным

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

Проверка Равно

Блок проверяет, соответствует ли значение поля "Идентификатов" полю "Значение".

В блоке можно использовать все доступные переменные - проекта ([$value]), схемы ([#block]), параметры, переданные через API ([=api_key]), номер телефона, с которого поступил звонок ([@callerphone]).

Проверка Содержит

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

В блоке можно использовать все доступные переменные - проекта ([$value]), схемы ([#block]), параметры, переданные через API ([=api_key]), номер телефона, с которого поступил звонок ([@callerphone]).

Проверка Пустота

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

В блоке можно использовать все доступные переменные - проекта ([$value]), схемы ([#block]), параметры, переданные через API ([=api_key]), номер телефона, с которого поступил звонок ([@callerphone]).

Текущее время

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

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

Комментарий

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

Звонок

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

При переадресации на внешние линии (сотовые и городские телефоны) стоимости звонка можно посмотреть здесь. При переадресации на внутренние номера бесплатно.

В блоке можно использовать все доступные переменные - проекта ([$value]), схемы ([#block]), параметры, переданные через API ([=api_key]), номер телефона, с которого поступил звонок ([@callerphone]).

Очередь

Один из самых нужных и важных блоков схемы. Позволяет организовать очередь звонков (например, очередь входящих звонков интернет-магазина. Даже если менеджер всего один, то имеет смысл использовать именно очередь, а не блок Звонок). В очереди могут участвовать только внутренние номера (соответственно, звонок на них будет бесплатным).

Название очереди

Название очереди отображается в истории звонка и в виде calleridname звонка (отображается при входящем звонке у абонента внутренней линии в качестве входящего АОНа. Менеджер или оператор смогут определить, из какой очереди идет звонок. Например, если у вас две очереди - для клиентов, которые хотят оставить новый заказ и для тех, кто уже оставил заказ и имеет вопросы). Только латинские буквы и цифры!

Стратегия

Доступны две стратегии - "Звонят все" и "Последовательно".

Время для ответа

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

Соединять уже звонивших абонентов с тем же оператором очереди

Когда оператор очереди отвечает на звонок из очереди, информация об этом сохраняется в базе данных (для каждой очереди отдельно). И если тот же абонент звонит повторно в течении 8 часов, то система пробует сначала установить связь именно с этим оператором, чтобы клиенту не нужно было объяснять все заново (проверяя, доступен ли вообще данный оператор. Если занят или не в сети, то этот блок пропускается). Звонок оператору идет с минимальным таймаутом - 10 секунд. Если оператор не взял трубку, то звонок идет по стандартному сценарию на очередь. И если на этот раз трубку возьмет другой оператор, то сохранятся уже его данные и следующий звонок клиента сначала будет на него.

Коды ответа блока

После выполнения блока, управление переходит к следующему элементу схему, но по завершению своей работы блок устанавливает свой код ответа. Для обычных блоков это 1 или 0. 1 = успешно, 0 = нет. Но блок "Очередь" имеет более сложную структуру и у него вариантов кодов ответа больше.

Варианты кодов ответа очереди:
1 - все хорошо, соедиение установлено, разговор состоялся.
0 - в очереди есть доступные не занятые операторы, но никто не взял трубку (либо клиент положил трубку раньше, чем операторы взяли трубку, либо прошел таймаут звонка на очередь). Данный статус можно обработать следующим образом - воспроизвести клиенту запись "Все операторы заняты" и вернуть его заново в эту же очередь.
-1 - код означает, что в очереди есть доступные номера, но в данный момент они все заняты разговорами по другим линиям. И если код "0" мы может получить только после таймаута очереди либо когда абонент повесит трубку, то код "-1" мы получим сразу. Данный статус можно обработать следующим образом - воспроизвести клиенту запись "Все операторы заняты" и вернуть его заново в эту же очередь.
-2 - код означает, что в очереди на данный момент нет доступных номеров, на которые можно перевести вызов (номера именно недоступны или оффлайн). Код позволяет обработать вариант, когда в офисе отключили электричество или интернет и все внутренние номера не в сети. Без обработки данного кода звонки будут приходить на очередь и идти дальше по схеме, без фактического звонка менеджерам. Если же обработать данный статус, то можно, например, в такой ситуации отправить SMS руководителю, что есть проблема, и сделать переадресацию на сотовый телефон менеджера через блок Звонок. Код позволяет не потерять звонки при нештатных ситуациях.

Для использования кода ответа очереди в следующих блоках схему, используется конструкция [#callQuery_n].

Внутренние номера

Внутренние номера добавляются на странице проекта кнопкой "Внутренние номера". После добавления номера следует подождать 2-3 минуты, пока данные обновятся на серверах. Подробнее Внутренние номера.

В самом блоке очереди Вы можете указывать как внутренние номера, добавленные кнопкой "Внутренние номера" текущего проекта, так и внутренние номера, добавленные в рамках друго проекта. Тогда в качестве номера в блоке очередь нужно указывать полное название внутреннего номера (поле Логин внутреннего номера).

SMS

Отправка SMS с заданными значениями.

В блоке можно использовать все доступные переменные - проекта ([$value]), схемы ([#block]), параметры, переданные через API ([=api_key]), номер телефона, с которого поступил звонок ([@callerphone]).

E-mail

Отправка E-mail с заданными значениями.

В блоке можно использовать все доступные переменные - проекта ([$value]), схемы ([#block]), параметры, переданные через API ([=api_key]), номер телефона, с которого поступил звонок ([@callerphone]).

HTTP-запрос

Очень важный и интересный блок, который позволяет реализовать интересные функции. Блок осуществляет HTTP-запрос в скрипту, указанному в поле "Адрес для отправки запроса". В скрипт можно, например, передать номер звонящего ([@callerphone]) либо значения других блоков схемы. В ответ блок должен вернуть массив в формате JSON с параметрами. Обязательным является только один параметр - status (true - успешно, false - ошибка). Все остальные параметры, переданные в массиве, будут доступны далее в схеме ([$param_name]).

Например, так может выглядеть передача параметров на языке PHP:
echo json_encode (array ('status' => true, 'client_name' => 'Александ', 'client_phone' => '79261234567'));

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

Этот блок позволяет реализовать интересные и уникальные функции. Например, при входящем звонке мы проверяем, является ли звонящий нашим клиентом. И если является, то каким - только оставил заказ и он в обработке (сообщить ему об этом и соединить с менеджером, который обрабатывает заказ), уже совершал заказы ранее (соединить с менеджером, который ведет заказы клиента), заказ находится в доставке (можно сообщить об этом и предложить соединить с курьером или отправить курьерку SMS, чтобы он связался с клиентом).

Блок может отправлять уведомления в вашу CRM - о входящем звонке и прочее.

В блоке можно использовать все доступные переменные - проекта ([$value]), схемы ([#block]), параметры, переданные через API ([=api_key]), номер телефона, с которого поступил звонок ([@callerphone]), тип звонка [@callmode] (basic - входящий, outgoing - исходящий).

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