1. Из чего состоит сценарий
Прежде чем что-то менять, стоит договориться о словах. Дальше в руководстве они используются без пояснений, а здесь объясняются один раз.
Сценарий — это путь, по которому идёт обработка. В сценарии IVR по нему идёт телефонный вызов: абонент позвонил, сценарий ответил, что-то проиграл, дождался нажатия кнопки и в зависимости от нажатого пошёл одной дорогой или другой. В служебном сценарии по тому же пути идёт произвольный процесс — никакого вызова там может и не быть. Редактор показывает этот путь картой: шаги — квадратами, переходы между ними — стрелками.
Дальше в руководстве для краткости говорится «вызов»: в служебных сценариях читайте это как «обработка».
|
Сценарий и обработчик — разные вещи, и путать их дорого. Сценарий — это описание алгоритма: то, что вы правите в редакторе и что
лежит на сервере одной записью ( Обработчик — экземпляр выполнения: конкретный вызов, идущий по этому
алгоритму прямо сейчас, со своими значениями переменных и своим временем
( Редактор работает только со сценарием. Значений переменных конкретного вызова в нём не видно и быть не может. Подробнее: Типы сценариев, Сценарная машина. |
-
Компонент — один шаг сценария. Всегда квадрат 32 × 32 с иконкой типа.
-
Имя компонента — подпись под квадратом. Её задаёт администратор.
-
Связь — куда управление уходит после этого шага.
-
Регион — рамка вокруг группы компонентов с подписью в углу.
Кроме того, у сценария есть переменные — они не видны на карте, потому что не привязаны к месту, и живут в отдельном окне.
Компонент
Компонент — то, что вызов делает: ответить, проиграть запись, дождаться цифры, спросить у базы, перевести на оператора. Каждый компонент принадлежит типу, и тип определяет всё: и что компонент делает, и какие у него настройки.
Типы компонентов и их свойства описаны в справочнике: Компоненты сценариев, компоненты сценариев IVR, компоненты служебных сценариев. Руководство их не пересказывает.
По внешнему виду квадрата читается три вещи.
- Иконка
-
Тип компонента. Иконки нарисованы одним набором, и похожие типы выглядят похоже: у всего, что управляет вызовом, в знаке трубка; у отправки и приёма — стрелка во всю высоту слева.
- Цвет подложки
-
Группа, к которой тип относится. Группы те же, что во вкладке Компоненты: зеленоватая — управление, серая — работа с данными, песочная — обмен сообщениями, розовая — телефония.
- Подпись снизу
-
Имя, которое дал администратор. Имя произвольное, оно нужно людям, а не серверу: по нему компонент ищут, на него ссылаются в разговоре, его видно в списке переходов. Длинное имя на карте обрезается многоточием.
|
Имя стоит давать говорящее. «Воспроизведение 4» ничего не скажет ни вам через месяц, ни коллеге; «Приветствие в нерабочее время» скажет. |
Настройки компонента — его свойства — живут не на карте, а во вкладке Свойства панели справа. Про них ниже.
Связи
Связь — стрелка от одного компонента к другому. Она отвечает на вопрос «что дальше»: закончив шаг, вызов уходит по связи в следующий компонент.
У большинства компонентов исходов несколько, и у каждого свой смысл. Сравнение даёт «Правду» и «Ложь», ввод цифры — успех и истечение времени, запрос к базе — ответ и ошибку. Поэтому связей от одного квадрата может быть несколько, и рядом с каждой подписано, при каком условии она сработает.
Цвет линии подсказывает, о чём речь:
| Цвет | Что означает |
|---|---|
Серо-синий |
Обычный ход событий |
Зелёный |
Условие выполнилось: «Правда», ветка меню, успешный ответ |
Красноватый |
Что-то пошло не так: «Ложь», ошибка, истекло время |
Это подсказка, а не правило: смысл задаёт подпись у стрелки, цвет лишь помогает охватить карту взглядом. Красных линий на карте много — это нормально, у любого шага должен быть предусмотрен неудачный исход.
Регион
Регион — прямоугольная рамка с подписью. Он ничего не делает с вызовом: это пометка на карте, которой администратор отделяет одну смысловую часть сценария от другой.
Регион делает две вещи. Первая — визуально группирует: сразу видно, где кончается одна смысловая часть и начинается другая. Вторая, и не менее важная, — несёт многострочную подпись. В неё пишут то, что через полгода уже никто не вспомнит: зачем этот участок, что он проверяет, почему сделано именно так. Регион — это в первую очередь комментарий, оставленный на карте видимым.
Заодно регион перемещается вместе со всем содержимым: переложить целый кусок сценария получается одним движением.
Выделяется регион кликом по рамке или по его подписи — по содержимому клик выделит компонент, а не область. Shift и клик по региону перебирает такты: сам регион → регион с содержимым → только содержимое → ничего; подробно — в главе о регионах.
Переменные
Переменная — именованное место, куда сценарий что-то кладёт и откуда потом берёт: набранный абонентом номер, ответ базы, счётчик попыток.
На карте переменных нет: они не привязаны к шагу и принадлежат сценарию целиком (Переменная). Их состав правится в отдельном окне — кнопка Переменные над панелью справа. Там же видно, сколько раз каждая упоминается: переменная, у которой ноль упоминаний, скорее всего осталась от прошлых правок.
Свойства: разбираем «Меню»
Свойства — это то, чем компонент настраивают. У каждого типа они свои, и разобрать их все разом невозможно. Зато достаточно разобрать один компонент внимательно: остальные устроены так же.
Возьмём Меню — компонент, который разветвляет вызов по значению своего аргумента (Компонент Меню). Сам он ничего не спрашивает у абонента: нажатую кнопку собирает кто-то до него — «Ввод DTMF», «Воспроизведение» с настроенными символами прерывания или другой компонент телефонии, — и кладёт в переменную. Меню уже сравнивает её значение со своим списком.
От квадрата уходят три стрелки. Две подписаны цифрами 1 и 2 — это ветки
для нажатых кнопок. Третья подписана «Прочее» — по ней вызов уйдёт, если
нажали что-то ещё или не нажали ничего.
Теперь то же самое в панели справа.
Панель читается сверху вниз.
- Заголовок
Меню #6 -
Тип компонента и его номер в сценарии. Номер присваивается при создании и не меняется; по нему компонент отличается от такого же соседнего.
- Переключатель справа от заголовка
-
Компонент включён. Выключенный остаётся на карте и в сценарии, но вызов через него не пойдёт — удобно, когда участок надо временно исключить, не разбирая.
- Поле с именем
-
То самое имя, которое видно на карте под квадратом. Здесь оно правится.
- Строка
Общие -
Заголовок группы свойств. У компонентов посложнее групп несколько.
Аргумент—dtmf-
Что именно сравнивать. Здесь взято значение переменной
dtmf— в неё предыдущий шаг и положил нажатую кнопку (Аргумент, Переменная). Курсив у значения означает, что это не константа, а ссылка на переменную. Кнопка…справа открывает окно, где можно выбрать другой источник: константу, другую переменную, выражение или шаблон. Значения—2 пункта-
Таблица «нажали столько — идём туда». Два пункта — те самые ветки
1и2на карте. Кнопка…открывает таблицу целиком. Переход, прочее—Hookdown-
Куда идти, если ни один пункт не подошёл. Это и есть ветка «Прочее» на карте. Выпадающий список перечисляет компоненты сценария.
Обратите внимание на главное: карта и панель — два взгляда на одно и то же.
Ветки в таблице Значения — это стрелки на карте. Изменив таблицу, вы измените
стрелки; протянув стрелку на карте, вы измените таблицу.
Как то же самое выглядит в сохранённом сценарии
Знать это администратору не обязательно, но иногда полезно — например, когда разбираетесь со службой поддержки. Лишние поля из примера убраны.
{
"oId": 6,
"oType": 105,
"name": "Main Menu",
"arg": {
"argType": 2,
"varType": 2,
"variable": "cbffcae4-bd3c-4bd0-b8db-0ba06f9e7c4a"
},
"values": {
"items": [
{
"value": {
"argType": 1,
"varType": 2,
"value": "1"
},
"transfer": 73
},
{
"value": {
"argType": 1,
"varType": 2,
"value": "2"
},
"transfer": 69
}
]
},
"transferFalse": 91
}
arg — тот самый Аргумент: argType: 2 означает «значение переменной»,
а variable — какой именно. values.items — таблица веток: нажали 1 —
переход к компоненту 73. transferFalse — ветка «Прочее».
|
Не все свойства видны всегда. Часть полей появляется только при определённом значении соседнего поля: незачем спрашивать про длину паузы, если пауза выключена. Если знакомое поле «пропало» — почти наверняка дело в этом. Подробнее — в главе про инспектор. |
Что дальше
Понятий, введённых здесь, хватит, чтобы читать остальные главы:
-
компонент — шаг сценария, квадрат на карте;
-
связь — стрелка, ответ на вопрос «что дальше»;
-
регион — рамка с подписью, разметка карты для человека;
-
переменная — именованное место для значения, живёт вне карты;
-
свойства — настройки компонента, правятся в панели справа.