Создание задания
Метод: POST
Authorization: Bearer Token
URL: https://cis.twin24.ai/api/v1/telephony/autoCall
Блок кода | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
curl --location 'https://cis.twin24.ai/api/v1/telephony/autoCall' \ --header 'Content-Type: application/json' \ --header 'Authorization: Bearer ТОКЕН' \ --data '{ "name": "test_autocall", "defaultExec": "robot", "defaultExecData": "228cc4fa-92f2-4709-94e3-7344a96a5903", "secondExec": "ch", "secondExecData": "48a77bd7-8762-4e0f-a277-4ef77e36c41b", "cidType": "gornum", "cidData": "9a67dee5-398e-4570-9426-fbb3f067b270", "startType": "time", "startMoment": "2023-06-02 10:00", "cps": 1.03, "taskComment": "Тестовое задание для демонстрации работы API", "webhookUrls": [ "https://webhook.site/6f44...2aa287f", "https://typedwebhook.tools/webhook/4c6d9...8720ab39" ], "additionalOptions": { "fullListMethod": "reject", "fullListTime": 0, "useTr": false, "allowCallTimeFrom": 0, "allowCallTimeTo": 86399, "recordCall": true, "recTrimLeft": 0, "detectRobot": true, "detectRobotMode": "back", "providerId": null }, "redialStrategyOptions": { "redialStrategyEn": false, "candidateLimit": 1, "numberLimit": 1, "busy": { "redial": false, "time": 1, "count": 1 }, "noAnswer": { "redial": false, "time": 1, "count": 1 }, "answerMash": { "redial": false, "time": 1, "count": 1 }, "congestion": { "redial": false, "time": 1, "count": 1 }, "answerNoList": { "redial": false, "time": 1, "count": 1 } } }' |
Блок кода | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
{
"name": "test_autocall",
"defaultExec": "robot",
"defaultExecData": "228cc4fa-92f2-4709-94e3-7344a96a5903",
"secondExec": "ch",
"secondExecData": "48a77bd7-8762-4e0f-a277-4ef77e36c41b",
"cidType": "gornum",
"cidData": "9a67dee5-398e-4570-9426-fbb3f067b270",
"startType": "time",
"startMoment": "2023-06-02 10:00",
"cps": 1.03,
"taskComment": "Тестовое задание для демонстрации работы API",
"webhookUrls": [
"https://webhook.site/6f44...2aa287f",
"https://typedwebhook.tools/webhook/4c6d9...8720ab39"
],
"additionalOptions": {
"fullListMethod": "reject",
"fullListTime": 0,
"useTr": false,
"allowCallTimeFrom": 0,
"allowCallTimeTo": 86399,
"recordCall": true,
"recTrimLeft": 0,
"detectRobot": true,
"detectRobotMode": "back",
"providerId": null
},
"redialStrategyOptions": {
"redialStrategyEn": false,
"candidateLimit": 1,
"numberLimit": 1,
"busy": {
"redial": false,
"time": 1,
"count": 1
},
"noAnswer": {
"redial": false,
"time": 1,
"count": 1
},
"answerMash": {
"redial": false,
"time": 1,
"count": 1
},
"congestion": {
"redial": false,
"time": 1,
"count": 1
},
"answerNoList": {
"redial": false,
"time": 1,
"count": 1
}
}
} |
Описание полей метода:
Поле | Тип | Обязательно | Описание |
---|---|---|---|
name | string | да | Имя обзвона |
defaultExec | string | да | Тип звонящего. Всегда принимает |
значение robot | |||
defaultExecData | string | да | uuid сценария, который будет использоваться в обзвоне ботом |
secondExec | string | да | Действие, если робот запросил переадресацию. Принимает значения:
|
secondExecData | string | да, если secondExec = ch | uuid канала для перевода. Параметр нужен, если предыдущий параметр в |
значении ch | |||
cidType | string | да | Определяемый номер. Принимает значения:
|
cidData | string | да, если cidType = gornum или pool | id сущности, выбранной в cidType. Актуально |
для gornum | |||
и pool | |||
startType | string | да | Режим запуска задания. Принимает значения:
|
startMoment | string | да, если startMoment = | |
time | Дата и время начала обзвона. Принимает значения: ГГГГ-ММ-ДД чч:мм *Используется часовой пояс компании | ||
cps | float | да | Интенсивность обзвона |
. Для N звонков в 1 секунду вычисляется как 1+N | |||
/100, где N – желаемое число наборов номера в секунду (CPS). Например: Желаемое CPS = 3, тогда значение поля 1.03 (при N=3 вычисляется 1+3/100=1.03) Для 1 звонка в N секунд вычисляется как Например: Желаемая интенсивность 1 звонок в 60 секунд, тогда значение поля 0.4 (при N=60 вычисляется 1-60/100=0.4) | |||
taskComment | string | нет | Комментарий к заданию |
webhookUrls | Array[string] | нет | URL адреса, на которые будет отправлен webhook |
additionalOptions | Object | да | Дополнительные параметры вызовов |
| fullListMethod | string | да | Считать ли звонок результативным. Всегда принимает значение reject |
| fullListTime | int | да | Через сколько секунд считать звонок результативным |
| useTr | boolean | нет | Учитывать ли время получателя |
| allowCallTimeFrom | int | да, если useTr = true | Начало интервала доступного для дозвона. Задается в секундах |
| allowCallTimeTo | int | да, если useTr = true | Конец интервала доступного для дозвона. Задается в секундах |
| recordCall | boolean | да | Записывать ли звонки |
| recTrimLeft | int | да, если recordCall = true | На сколько обрезать начало записи. Задается в секундах |
| detectRobot | boolean | нет | Включать ли систему определения человек/робот |
| detectRobotMode | string | да, если detectRobot = true | Режим системы определителя. Принимает значения:
|
| providerId | string | нет | uuid транка. Актуально только при использовании собственного транка. |
phoneNormalization | string | нет | Определяет, активирован ли процесс нормализации. Если null, отключено, если RU — нормализация в российский формат. Подробнее о нормализации читайте ниже. |
normalizationErrorAction | string | нет | Указывает действие при возникновении ошибки нормализации. Для этого параметра необходимо активировать нормализацию. Доступны следующие варианты:
Подробнее о нормализации читайте ниже. |
redialStrategyOptions | Object | да | Настройки правил перезвона |
| redialStrategyEn | boolean | да | Использовать ли правила перезвона |
| candidateLimit | int | нет | Максимальное количество вызовов кандидату |
| numberLimit | int | нет | Максимальное количество вызовов по номеру |
| busy | Object | да | Занято |
| noAnswer | Object | да | Нет ответа |
| answerMash | Object | да | Ответил автоответчик |
| congestion | Object | да | Ошибка вызова |
| answerNoList | Object | да | Вызов нерезультативен |
| | redial | boolean | да | Активировать ли сценарий перезвона |
| | time | int | да, если redial = true | Промежуток перезвона. Задается в секундах |
| | count | int | да, если redial = true | Количество перезвонов |
Блок кода | ||||||
---|---|---|---|---|---|---|
| ||||||
{ "id": { "identity": "bf1fee...70dc544" } } |
Описание полей ответа:
Поле | Тип | Обязательно | Описание |
---|---|---|---|
id | Object | Да | - |
identity | string | Да | Идентификатор задания на обзвон |
Якорь normalization normalization
Нормализация
normalization | |
normalization |
Настройка нормализации
Нормализация номеров телефонов предназначена для облегчения добавления кандидатов в задание.
Примечание |
---|
Доступно только для российских номеров. Если ваша компания базируется в другой стране, настройка нормализации не будет отображаться в интерфейсе. |
Цель нормализации
Нормализация номеров телефонов необходима для приведения разнообразных форматов, предоставленных пользователем, к единому виду. Например, мы ожидаем получить российские номера в формате 7ХХХХХХХХХХ. Однако пользователь может передать номер в различных вариантах, таких как +7ХХХХХХХХХХ (в этом случае мы уберем плюс), 8ХХХХХХХХХХ (заменим 8 на 7) или без кода страны ХХХХХХХХХХ (добавим 7).
Реакция на ошибки
Если нормализация номера невозможна, например, когда передается нечто, не являющееся телефонным номером, мы либо помечаем этот номер (устанавливаем флаг phoneNormalizationStatus:ERROR
), и все равно пытаемся создать кандидата с этим номером, либо пропускаем его (т.е. пытаемся создать кандидата без номера, на котором возникла ошибка) в зависимости от выбранного действия при нормализации.
В случае ошибки Не найдены номера телефонов для обзвона. Кандидат пропущен часто причиной является передача некорректных данных в качестве телефонного номера. Если необходимо, эту защиту можно отключить в настройках задания Включить проверку номеров, разрешив добавление любых номеров, за исключением пустых.