Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

1.Описание

Схема выполняет следующую задачу:

Задача:

При входящем вызове получить внутренний номер ответственного в Creatio, направить звонок на него (10 секунд), если нет ответа - направить на номер по умолчанию.

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

Table of Contents

1.1. Перевод на номер

Пример схемы можно увидеть на рисунке 1.

Image RemovedImage Added

Рис. 1. Схема входящего звонка с маршрутизацией на ответственного Creatio

Info

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

View file
nameВходящий звонок с маршрутизацией на ответственного Creatio-schema (1).json
height150

1.1.1. Описание схемы

Компонент Блок компонентаПараметры компонентаОписание
Start
Image Removed

Image Added


Компонент начала схемы
Компонент "Ringback"
Image Removed

Image Added

Image Removed

Image Added

Настройка гудков, или звуковых файлов до начала разговора. Выбранный тон -  %(1000,6000,425);loops=-1
Компонент "HTTP Request"
Image Removed

Image Added

Image Removed

Image Added

Для выполнение HTTP REST запроса на авторизацию.

Для этого:

  • в поле "Url" указывается url-адрес на который делать запрос - https://example-service-enterprise.terrasoft.ua/ServiceModel/AuthService.svc/Login . Необходимо заменить ссылку на ваш сайт;
  • в поле "Methods" выбрать метод POST;
  • в поле "Cookie to variable" указать  название переменной - my_cookie, в которую будут сохраняться cookie из ответа сервиса;
  •  в поле "Request data" указать логин и пароль. Как пример:

{
                "UserName": "Supervisor",
                "UserPassword": "Supervisor"
            }


Компонент "String"
Image Removed

Image Added

Image Removed

Image Added

Приведения номера в вид по которому будет происходить поиск в Creatio, а именно перевернуть номер. 
Для этого:

  • в поле "Set result to variable" записываем название переменной в которую будет записываться результат. К примеру: reverted_caller_id_number;
  • в поле "Expression" указать переменную в которой указан id номер абонента - ${caller_id_number};
  • в поле "Method" выбрать метод reverse.


Компонент "Script"
Image Removed

Image Added

Image Removed

Image Added

Обрезает Creatio BPMCSRF token из полученных cookie в переменную "BPMCSRF" для авторизации следующих запросов.

Для этого:

  •  в поле "
  • в поле "Script" указать следующий код:

return ${my_cookie}.replace(/.*BPMCSRF=([-._A-Za-z0-9/]{22});.*/, '$1')


Компонент "HTTP Request"
Image Removed

Image Added

Image Removed

Image Added 

Поиск по номеру абонента  ответственного оператора в

Creatio (Рис.2) и

Creatio и получения внутреннего номера этого оператора

(Рис.3)

.

Для этого необходимо:

  • ;
    • в поле "Methods" выбрать метод POST;
    • в элементе Headers", согласно с требованиями сервера добавить:

    Cookie - ${my_cookie}

    Accept - application/json;odata=verbose

    BPMCSRF - ${BPMCSRF}

    • в поле "Request data" указать код для поиска:

    {
                  "QueryType": 0,
                  "Columns": {
                    "Items": {
                      "Name": {
                        "OrderDirection": 0,
                        "OrderPosition": 0,
                        "Caption": null,
                        "Expression": {
                          "ExpressionType": 0,
                          "ColumnPath": "Name"
                        }
                      },
                      "AccountName": {
                        "OrderDirection": 0,
                        "OrderPosition": 0,
                        "Caption": null,
                        "Expression": {
                          "ExpressionType": 0,
                          "ColumnPath": "[Account:Id:Account].Name"
                        }
                      },
                      "OwnerLogin": {
                        "OrderDirection": 0,
                        "OrderPosition": 0,
                        "Caption": null,
                        "Expression": {
                          "ExpressionType": 0,
                          "ColumnPath": "[WebitelUserData:WtelContact:Owner].Extension"
                        }
                      },
                      "OwnerId": {
                        "OrderDirection": 0,
                        "OrderPosition": 0,
                        "Caption": null,
                        "Expression": {
                          "ExpressionType": 0,
                          "ColumnPath": "Owner.Id"
                        }
                      }
                    }
                  },
                  "AllColumns": false,
                  "IsDistinct": false,
                  "RowCount": 1,
                  "Filters": {
                    "FilterType": 6,
                    "ComparisonType": 0,
                    "LogicalOperation": 0,
                    "IsNull": true,
                    "IsEnabled": true,
                    "IsNot": false,
                    "Items": {
                      "FilterByPhone": {
                        "FilterType": 1,
                        "ComparisonType": 9,
                        "LogicalOperation": 0,
                        "IsNull": true,
                        "IsEnabled": true,
                        "IsNot": false,
                        "LeftExpression": {
                          "ExpressionType": 0,
                          "ColumnPath": "[ContactCommunication:Contact].SearchNumber"
                        },
                        "RightExpression": {
                          "ExpressionType": 2,
                          "ColumnPath": null,
                          "Parameter": {
                            "DataValueType": 1,
                            "Value": "${reverted_caller_id_number}"
                          }
                        }
                      }
                    }
                  },
                  "RootSchemaName": "Contact",
                  "OperationType": 0
    }

    • в элементе "Export variables" добавить:

    Name - rows.0.Name

    owner_caller_id_number - rows.0.OwnerLogin

    Компонент "Set variables"
    Image Removed

    Image Added

    Image Removed

    Image Added

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

    Добавить:

    • continue_on_fail - true
    • hangup_after_bridge - true 
    • ignore_early_media - true 

    Перечень возможных параметров можно посмотреть здесь

    Компонент "If"
    Image Removed

    Image Added

    Image Removed

    Image Added

    Проверка наличия значения переменной owner_caller_id_number. Так можно узнать  есть ли ответственный в Creatio по номеру звонящего абонента

    Для этого в поле "Expression" указать переменную  ${owner_caller_id_number}

    Компонент "Bridge"

    (ветка 1)

    Image Removed

    Image Added

    Image Removed

    Image Added

    Соединяет с ответственным в Creatio.

    Для этого:

    • поле "
    • в элементе "Endpoints" нажать кнопку "Add user" и в поле "Extension" указать переменную  ${owner_caller_id_number}

    Компонент "Bridge"

    (ветка 2)

    Image Removed

    Image Added

    Image Removed

    Image Added

    Для перенаправления с номером по умолчанию.

    Для этого:

    • поле "
    • в элементе "Endpoints" нажать кнопку "Add user" и в поле "Extension" указать номер по умолчанию, к примеру,  205
    Компонент "Hangup"

    Image Removed

    Image Removed

    Завершение звонка

    Image Removed

    Рис. 2. Карточка оператора

    Image Removed

    Рис. 3. Внутренний номер оператора на который система будет совершать звонок

    Image Added

    Image Added

    Завершение звонка

    1.2. Перевод в очередь

    Пример схемы можно увидеть на рисунке 42.

    Image RemovedImage Added

    Рис. 42. Схема входящего звонка с маршрутизацией на ответственного Creatio с возможностью переадресации в очередь

    Info

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

    View file
    nameВходящий звонок с маршрутизацией на ответственного Creatio (перенаправление на очередь)-schema (1).json
    height150

    1.2.1. Описание схемы

    Компонент Блок компонентаПараметры компонентаОписание
    Start
    Image Removed

    Image Added


    Компонент начала схемы
    Компонент "Ringback"
    Image Removed

    Image Added

    Image Removed

    Image Added

    Настройка гудков, или звуковых файлов до начала разговора. Выбранный тон -  %(1000,6000,425);loops=-1
    Компонент "HTTP Request"
    Image Removed

    Image Added

    Image Removed

    Image Added

    Для выполнение HTTP REST запроса на авторизацию.

    Для этого:

    {
                    "UserName": "Supervisor",
                    "UserPassword": "Supervisor"
                }


    Компонент "String"
    Image Removed

    Image Added

    Image Removed

    Image Added

    Приведения номера в вид по которому будет происходить поиск в Creatio, а именно перевернуть номер. 
    Для этого:

    • в поле "Set result to variable" записываем название переменной в которую будет записываться результат. К примеру: reverted_caller_id_number;
    • в поле "Expression" указать переменную в которой указан id номер абонента - ${caller_id_number};
    • в поле "Method" выбрать метод reverse.


    Компонент "Script"
    Image Removed

    Image Added

    Image Removed

    Image Added

    Обрезает Creatio BPMCSRF token из полученных cookie в переменную "BPMCSRF" для авторизации следующих запросов.

    Для этого:

    •  в поле "
    • в поле "Script" указать следующий код:

    return ${my_cookie}.replace(/.*BPMCSRF=([-._A-Za-z0-9/]{22});.*/, '$1')


    Компонент "HTTP Request"
    Image Removed

    Image Added

    Image Removed

    Image Added 

    Поиск по номеру абонента  ответственного оператора в Creatio (Рис.2) и получения внутреннего номера этого оператора(Рис.3).

    Для этого необходимо:

  • ;
    • в поле "Methods" выбрать метод POST;
    • в поле "Cookie to variable" указываем название переменной - my_cookie, в которую сохраняем Cookie из ответа сервиса;
    • в элементе Headers", согласно с требованиями сервера добавить:

    Cookie - ${my_cookie}

    Accept - application/json;odata=verbose

    BPMCSRF - ${BPMCSRF}

    • в поле "Request data" указать код для поиска:

    {
                  "QueryType": 0,
                  "Columns": {
                    "Items": {
                      "Name": {
                        "OrderDirection": 0,
                        "OrderPosition": 0,
                        "Caption": null,
                        "Expression": {
                          "ExpressionType": 0,
                          "ColumnPath": "Name"
                        }
                      },
                      "AccountName": {
                        "OrderDirection": 0,
                        "OrderPosition": 0,
                        "Caption": null,
                        "Expression": {
                          "ExpressionType": 0,
                          "ColumnPath": "[Account:Id:Account].Name"
                        }
                      },
                      "OwnerLogin": {
                        "OrderDirection": 0,
                        "OrderPosition": 0,
                        "Caption": null,
                        "Expression": {
                          "ExpressionType": 0,
                          "ColumnPath": "[WebitelUserData:WtelContact:Owner].Extension"
                        }
                      },
                      "OwnerId": {
                        "OrderDirection": 0,
                        "OrderPosition": 0,
                        "Caption": null,
                        "Expression": {
                          "ExpressionType": 0,
                          "ColumnPath": "Owner.Id"
                        }
                      }
                    }
                  },
                  "AllColumns": false,
                  "IsDistinct": false,
                  "RowCount": 1,
                  "Filters": {
                    "FilterType": 6,
                    "ComparisonType": 0,
                    "LogicalOperation": 0,
                    "IsNull": true,
                    "IsEnabled": true,
                    "IsNot": false,
                    "Items": {
                      "FilterByPhone": {
                        "FilterType": 1,
                        "ComparisonType": 9,
                        "LogicalOperation": 0,
                        "IsNull": true,
                        "IsEnabled": true,
                        "IsNot": false,
                        "LeftExpression": {
                          "ExpressionType": 0,
                          "ColumnPath": "[ContactCommunication:Contact].SearchNumber"
                        },
                        "RightExpression": {
                          "ExpressionType": 2,
                          "ColumnPath": null,
                          "Parameter": {
                            "DataValueType": 1,
                            "Value": "${reverted_caller_id_number}"
                          }
                        }
                      }
                    }
                  },
                  "RootSchemaName": "Contact",
                  "OperationType": 0
    }

    • в элементе "Export variables" добавить:

    Name - rows.0.Name

    owner_caller_id_number - rows.0.OwnerLogin

    Компонент "Set variables"
    Image Removed

    Image Added

    Image Removed

    Image Added

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

    Добавить:

    • continue_on_fail - true
    • hangup_after_bridge - true 
    • ignore_early_media - true 

    Перечень возможных параметров можно посмотреть здесь

    Компонент "If"
    Image Removed

    Image Added

    Image Removed

    Image Added

    Проверка наличия значения переменной owner_caller_id_number. Так можно узнать  есть ли ответственный в Creatio по номеру звонящего абонента

    Для этого в поле "Expression" указать переменную  ${owner_caller_id_number}

    Компонент "Bridge"

    (ветка 1)

    Image Removed

    Image Added

    Image Removed

    Image Added

    Соединяет с ответственным в Creatio.

    Для этого:

    • поле "
    • в элементе "Endpoints" нажать кнопку "Add user" и в поле "Extension" указать переменную  ${owner_caller_id_number}

    Компонент "Join Queue"

    (ветка 2)

    Image Removed

    Image Added

    Image Removed

    Image Added

    Для перенаправления абонента в очередь "

    Магазин

    Заказ"

    Для этого поле "

    Магазин

    Компонент "Hangup"

    (ветка 2)

    Image Removed

    Image Added

    Image Removed

    Image Added

    Завершение звонка