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

Ключ

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

Создание задания

Метод: POST

Authorization: Bearer Token

URL: https://cis.twin24.ai/cis/api/v1/telephony/autoCall

Блок кода
languagepy
themeDJango
titlecURL
collapsetrue
curl --location 'https://cis.twin24.ai/cis/api/v1/telephony/autoCall' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer ТОКЕН' \
--data '{
    "name": "test_autocall",
    "defaultExectaskComment": "robotТестовое задание для демонстрации работы API",
    "defaultExecDatastartType": "228cc4fa-92f2-4709-94e3-7344a96a5903time",
    "secondExecstartMoment": "ch2023-06-02 10:00",
    "secondExecDatascheduleId": "48a77bd7bce7d22e-8762dde6-4e0f4427-a277b391-4ef77e36c41bebbdfda44de6",
    "cidTypedefaultExec": "gornumrobot",
    "cidDatadefaultExecData": "9a67dee5228cc4fa-398e92f2-45704709-942694e3-fbb3f067b2707344a96a5903",
    "startTypesecondExec": "timech",
    "startMomentsecondExecData": "2023-06-02 10:0048a77bd7-8762-4e0f-a277-4ef77e36c41b",
    "cpscidType": 1.03"gornum",
    "taskCommentcidData": "Тестовое задание для демонстрации работы API9a67dee5-398e-4570-9426-fbb3f067b270",
    "callStrategy": "STEP_2_STEP",
    "webhookUrlscps": [1.03,
    "checkPhone": true,
    "phoneNormalization"https://webhook.site/6f44...2aa287f: "RU",
    "normalizationErrorAction": "IGNORE_NORMALIZATION_ERROR",
    "sendReportAfterFinish"https://typedwebhook.tools/webhook/4c6d9...8720ab39": true,
    ],"webhookUrls": [
    "additionalOptions":    {
            "fullListMethodurl": "rejecthttps://example.com",
            "fullListTimepartialResults": 0true,
            "useTrdelay": false4,
            "allowCallTimeFromevents": 0,{
        "allowCallTimeTo": 86399,
        "recordCallCALL_ENDED": true,{
        "recTrimLeft            "name": 0"CALL_ENDED",
           "detectRobot": true,
        "detectRobotModevalue": "back",true
         "providerId": null
       },
    "redialStrategyOptions": {
            "redialStrategyEnCANDIDATE_CHANGED": false,{
	    "candidateLimit": 1,
	    "numberLimit": 1,
        "busy": {
            "redialname": false"CANDIDATE_CHANGED",
             "time       "value": 1,true
               "count": 1 },
        },
        "noAnswerCALL_REDIRECTED": {
            "redial        "name": false"CALL_REDIRECTED",
                    "timevalue": 1,true
             "count": 1   },
        },
        "answerMashRECALL_SCHEDULED": {
            "redial        "name": false"RECALL_SCHEDULED",
            "time        "value": 1,true
               "count": 1 },
        },
        "congestionEFFICIENCY_REACHED": {
                    "redialname": false"EFFICIENCY_REACHED",
            "time": 1,
            "countvalue": 1true
        },
        "answerNoList},
                "AUTOCALL_STATUS_CHANGED": {
                    "redialname": false"AUTOCALL_STATUS_CHANGED",
            "time        "value": 1,true
               "count": 1}
        }
    }
}'
Блок кода
languagepy
themeDJango
titleТело запроса в формате JSON
collapsetrue
{        }
    ],
    "nameadditionalOptions": "test_autocall",{
        "defaultExecfullListMethod": "robotreject",
        "defaultExecDatafullListTime": "228cc4fa-92f2-4709-94e3-7344a96a5903",
0,
        "secondExecallowCallTimeFrom": "ch"0,
        "secondExecDataallowCallTimeTo": "48a77bd7-8762-4e0f-a277-4ef77e36c41b"86399,
        "cidTyperecordCall": "gornum"true,
        "cidDatarecTrimLeft": 0,
       "9a67dee5-398e-4570-9426-fbb3f067b270",
 "useTr": false,
        "startTypedetectRobot": "time"true,
        "startMomentdetectRobotMode": "2023-06-02 10:00back",
        "cpsdetectRobotGreeting": 1.03,
"bce7d22e-dde6-4427-b391-ebbdfda44de6",
        "taskCommentfz230": "Тестовоеtrue
 задание для демонстрации работы API"},
    "webhookUrlsredialStrategyOptions": [{
        "redialStrategyEn"https://webhook.site/6f44...2aa287f": false,
        "candidateLimit"https://typedwebhook.tools/webhook/4c6d9...8720ab39"
: {
        ],
    "additionalOptionsredial": {false,
          "fullListMethod  "count": "reject"0
        },
        "fullListTimenumberLimit": 0,
{
            "useTrredial": false,
            "allowCallTimeFromcount": 0,
        "allowCallTimeTo": 86399},
        "recordCallbusy": true,{
            "recTrimLeftredial": 0false,
            "detectRobottime": true1,
            "detectRobotModecount": "back",1
        "providerId": null},
    },
    "redialStrategyOptionsnoAnswer": {
         "redialStrategyEn": false,
	    "candidateLimitredial": 1false,
	     "numberLimit": 1,
        "busytime": {1,
            "redialcount": false,
1
        },
        "time": 1,
            "count": 1
        },
        "noAnsweranswerMash": {
            "redial": false,
            "time": 1,
            "count": 1
        },
        "answerMashcongestion": {
            "redial": false,
            "time": 1,
            "count": 1
        },
        "congestionanswerNoList": {
            "redial": false,
            "time": 1,
            "count": 1
        },
        "answerNoList": {
 }
}'
Блок кода
languagepy
themeDJango
titleТело запроса в формате JSON
collapsetrue
{
    "name": "test_autocall",
      "redialtaskComment": false,
"Тестовое задание для демонстрации работы API",

      "startType": "time": 1,
        "startMoment": "2023-06-02 10:00",
    "countscheduleId": 1
"bce7d22e-dde6-4427-b391-ebbdfda44de6",

    "defaultExec": "robot",
    }
    }
}

Описание полей метода:

"defaultExecData": "228cc4fa-92f2-4709-94e3-7344a96a5903",
    "secondExec": "ch",
    "secondExecData": "48a77bd7-8762-4e0f-a277-4ef77e36c41b",

    "cidType": "gornum",
    "cidData": "9a67dee5-398e-4570-9426-fbb3f067b270",

    "callStrategy": "STEP_2_STEP",
    "cps": 1.03,
    "checkPhone": true,
    "phoneNormalization": "RU",
    "normalizationErrorAction": "IGNORE_NORMALIZATION_ERROR",

    "sendReportAfterFinish": true,
    "webhookUrls": [
        {
            "url": "https://example.com",
            "partialResults": true,
            "delay": 4,
            "events": {
                "CALL_ENDED": {
                    "name": "CALL_ENDED",
                    "value": true
                },
                "CANDIDATE_CHANGED": {
                    "name": "CANDIDATE_CHANGED",
                    "value": true
                },
                "CALL_REDIRECTED": {
                    "name": "CALL_REDIRECTED",
                    "value": true
                },
                "RECALL_SCHEDULED": {
                    "name": "RECALL_SCHEDULED",
                    "value": true
                },
                "EFFICIENCY_REACHED": {
                    "name": "EFFICIENCY_REACHED",
                    "value": true
                },
                "AUTOCALL_STATUS_CHANGED": {
                    "name": "AUTOCALL_STATUS_CHANGED",
                    "value": true
                }
            }
        }
    ],

    "additionalOptions": {
        "fullListMethod": "reject",
        "fullListTime": 0,
        "allowCallTimeFrom": 0,
        "allowCallTimeTo": 86399,
        "recordCall": true,
        "recTrimLeft": 0,
        "useTr": false,
        "detectRobot": true,
        "detectRobotMode": "back",
        "detectRobotGreeting": "bce7d22e-dde6-4427-b391-ebbdfda44de6",
        "fz230": true
    },

    "redialStrategyOptions": {
        "redialStrategyEn": false,
        "candidateLimit": {
            "redial": false,
            "count": 0
        },
        "numberLimit": {
            "redial": false,
            "count": 0
        },
        "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
        }
    }
}

Описание полей метода:

Поле

Тип

Обязательно

Описание

namestringдаИмя обзвона
taskCommentstringнетКомментарий к заданию
startTypestringда

Режим запуска задания.

Принимает значения:

  • manual (Вручную)
  • time (В указанное время)
startMomentstring

да, если

startType = time 

Дата и время начала обзвона. 

Принимает значения:

ГГГГ-ММ-ДД  чч:мм

*Используется часовой пояс компании

scheduleId
string

нет

Идентификатор расписания обзвона

defaultExecstringда

Тип звонящего.

Всегда принимает значение robot

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

Действие, если робот запросил переадресацию.

Принимает значения:

  • end (Завершить)
  • ignore (Ничего не делать)
  • ch (Передать вызов на канал)
secondExecDatastring

да, если

secondExec = ch

uuid канала для перевода.

Параметр нужен, если предыдущий параметр в значении ch

cidTypestringда

Определяемый номер.

Принимает значения:

  • default (По умолчанию для транка)
  • gornum (Один номер)
  • pool (Группа номеров)
cidDatastring

да, если

cidType = gornum или pool

id сущности, выбранной в cidType. 

Актуально для gornum и pool

callStrategy
string

нет

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

Параллельная стратегия (PARALLEL) – для кандидата с несколькими номерами при неуспешном дозвоне на первый номер, следующий звонок будет производиться на второй номер и так далее. После чего будет сформирована очередь перезвонов. Для корректной работы параллельной стратегии по нескольким кандидатам CPS задания должен быть больше 1.

cpsfloatда

Интенсивность обзвона.
Может обозначаться как N звонков в секунду или как 1 звонок в N секунд.

Для N звонков в 1 секунду вычисляется как 1+N/100, где N – желаемое число наборов номера в секунду (CPS).

Например:

Желаемое CPS = 3, тогда значение поля 1.03 (при N=3 вычисляется 1+3/100=1.03)
———————————

Для 1 звонка в N секунд вычисляется как
1-N/100, где N - 1 звонок в N секунд.

Например:

Желаемая интенсивность 1 звонок в 60 секунд, тогда значение поля 0.4 (при N=60 вычисляется 1-60/100=0.4)

checkPhone
booleanнет

Проверка корректности формата номера при добавлении кандидата

phoneNormalizationstringнет

Определяет, активирован ли процесс нормализации.

Если null, отключено, если RU — нормализация в российский формат.

Подробнее о нормализации читайте ниже.

normalizationErrorActionstringнетУказывает действие при возникновении ошибки нормализации. Для этого параметра необходимо активировать нормализацию. Доступны следующие варианты:
  • IGNORE_NORMALIZATION_ERROR — пропустить номер, вызвавший ошибку.

  • SET_NORMALIZATION_ERROR_FLAG — добавить номер, отметив его как невозможный к нормализации.

Подробнее о нормализации читайте ниже.

sendReportAfterFinish
boolean
нет
Отправлять ли отчет после завершения задания на Email
webhookUrlsArray[Object]нетURL адреса и события, по которым нужно отправить webhook 
|    url  stringнетURL адреса, куда будет отправлен webhook
|    partialResults
booleanнетОтправлять ли промежуточные результаты
|    delay
intнетЗадержка перед отправкой webhook
|    events
ObjectнетСписок событий, по которым нужно отправить webhook
|    |    EVENT
Objectнет

Объект события. 
Доступные события (подставляются вместо EVENT):

  • CALL_ENDED – звонок завершен
  • CANDIDATE_CHANGED – статус кандидата изменен
  • CALL_REDIRECTED – звонок переведен на оператора
  • RECALL_SCHEDULED – принудительно запланирован перезвон по кандидату
  • EFFICIENCY_REACHED – принудительно установлен статус успешности звонка
  • AUTOCALL_STATUS_CHANGED – статус задания на обзвон изменен

Подробнее о webhook и событиях можно узнать в отдельных статьях:

|    |    |    name
stringнетИмя события – соответствует EVENT
|    |    |    valuebooleanнетОтправлять ли webhook по данному событию

Поле

Тип

Обязательно

Описание

namestringдаИмя обзвонаdefaultExecstringда

Тип звонящего.

Всегда принимает значение robot

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

Действие, если робот запросил переадресацию.

Принимает значения:

  • end (Завершить)
  • ignore (Ничего не делать)
  • ch (Передать вызов на канал)
secondExecDatastring

да, если

secondExec = ch

uuid канала для перевода.

Параметр нужен, если предыдущий параметр в значении ch

cidTypestringда

Определяемый номер.

Принимает значения:

  • default (По умолчанию для транка)
  • gornum (Один номер)
  • pool (Группа номеров)
cidDatastring

да, если

cidType = gornum или pool

id сущности, выбранной в cidType. 

Актуально для gornum и pool

startTypestringда

Режим запуска задания.

Принимает значения:

  • manual (Вручную)
  • time (В указанное время)
startMomentstring

да, если

startMoment = time 

Дата и время начала обзвона. 

Принимает значения:

ГГГГ-ММ-ДД  чч:мм

*Используется часовой пояс компании

cpsfloatда

Интенсивность обзвона.
Может обозначаться как N звонков в секунду или как 1 звонок в N секунд.

Для N звонков в 1 секунду вычисляется как 1+N/100, где N – желаемое число наборов номера в секунду (CPS).

Например:

Желаемое CPS = 3, тогда значение поля 1.03 (при N=3 вычисляется 1+3/100=1.03)
———————————

Для 1 звонка в N секунд вычисляется как
1-N/100, где N - 1 звонок в N секунд.

Например:

Желаемая интенсивность 1 звонок в 60 секунд, тогда значение поля 0.4 (при N=60 вычисляется 1-60/100=0.4)

taskCommentstringнетКомментарий к заданиюwebhookUrlsArray[string]нетURL адреса, на которые будет отправлен webhook
additionalOptionsObjectдаДополнительные параметры вызовов
|    fullListMethodstringда

Считать ли звонок результативным.

Всегда принимает значение reject

|    fullListTimeintдаЧерез сколько секунд считать звонок результативным
|  
 useTrbooleanнетУчитывать ли время получателя|  
 allowCallTimeFromint

да, если

useTr = true

Начало интервала доступного для дозвона. Задается в секундах
|    allowCallTimeToint

да, если

useTr = true

Конец интервала доступного для дозвона. Задается в секундах
|    recordCallbooleanдаЗаписывать ли звонки 
|    recTrimLeftint

да, если

recordCall = true

На сколько обрезать начало
записи. Задается в секундах
записи. Задается в секундах
|    useTrbooleanнетУчитывать ли время получателя
|    detectRobotbooleanнетВключать ли систему определения человек/робот 
|    detectRobotModestring

да, если

detectRobot = true

Режим системы определителя. 

Принимает значения:

  • back (Фоновая)
  • block (С блокировкой)
|  
 providerId
 detectRobotGreetingstring

нет

uuid транка. 

Актуально только при использовании собственного транка. 

phoneNormalizationstringнетОпределяет, активирован ли процесс нормализации. Если null, отключено, если RU — нормализация в российский формат. Подробнее о нормализации читайте ниже.normalizationErrorActionstringнетУказывает действие при возникновении ошибки нормализации. Для этого параметра необходимо активировать нормализацию. Доступны следующие варианты:
  • IGNORE_NORMALIZATION_ERROR — пропустить номер, вызвавший ошибку.

  • SET_NORMALIZATION_ERROR_FLAG — добавить номер, отметив его как невозможный к нормализации.

Идентификатор файла с приветствием.

Будет воспроизведен при использовании системы определения человек/робот в режиме block (С блокировкой)

|    fz230
boolean

нет

Включить ли соответствие стратегии обзвона ФЗ 230

Подробнее о нормализации читайте ниже.

redialStrategyOptionsObjectдаНастройки правил перезвона
|    redialStrategyEnbooleanдаИспользовать ли правила перезвона
|    candidateLimit
int
ObjectнетМаксимальное количество вызовов кандидату
|    numberLimit
int
ObjectнетМаксимальное количество вызовов по номеру
|    |    redialbooleanдаАктивировать ли лимит по максимальному количеству вызовов
|    |    countint

да, если

redial = true

Максимальное количество вызовов
|    busyObjectдаЗанято
|    noAnswerObjectдаНет ответа
|    answerMashObjectдаОтветил автоответчик
|    congestionObjectдаОшибка вызова 
|    answerNoListObjectдаВызов нерезультативен
|    |    redialbooleanдаАктивировать ли сценарий перезвона
|    |    timeint

да, если

redial = true

Промежуток перезвона. Задается в секундах
|    |    countint

да, если

redial = true

Количество перезвонов 

 

Блок кода
languagepy
themeDJango
titleОтвет в формате JSON
{
    "id": {
        "identity": "bf1fee...70dc544"
    }
}

...

Поле

Тип

Обязательно

Описание

id

Object

Да

-

 identity

 string

 Да

Идентификатор задания на обзвон

 

Якорь
normalization
normalization
Нормализация

Настройка нормализации

Нормализация номеров телефонов предназначена для облегчения добавления кандидатов в задание.

...