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

Ключ

  • Эта строка добавлена.
  • Эта строка удалена.
  • Изменено форматирование.
Message Box
iconnone
titleНа этой странице
typegeneric

Redirect to URL
targetUrlhttps://wiki.twin24.ai/voice-bots/api/webhook-for-calls
Оглавление

Информация

Вебхук приходит с 87.251.83.190 (в вайт лист лучше добавлять весь диапазон  TWIN: 87.251.83.160/27)

У хука есть 3 типа событий и отправка идет по каждому их них:

Тип событияЗначениеОписание
eventCALL_REDIRECTED

Вебхук, с информацией о звонке, переведенном на оператора. Отправляется только тогда, когда в диалоге бота настроен перевод на оператора.<br>Событие отправляется самым первым хуком, чтобы проинформировать стороннюю систему о переводе звонка в КЦ. 

Отправляется и для входящих и для исходящих звонков, если в сценарии настроен перевод на оператора. Если перевода не было или он не предусмотрен - событие отправляться не будет.

eventCALL_ENDEDВебхук, с информацией о попытке дозвона. Отправляется всегда, по итогам завершения звонка. Отправляется и для входящих и для исходящих звонков.
eventCANDIDATE_CHANGED

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

На него можно опираться для снятия блокировки с кандидата в CRM или дайлера. Отправляется только для исходящих звонков. Для входящих событие отправляться не будет.

Примеры кейсов и описание для них логики отправок хуков



Звонок 1 кандидату (1 номер, без перевода на оператора):

  1. Получаем хук CALL_ENDED.

  2. Получаем хук CANDIDATE_CHANGED.


Звонок 1 кандидату (1 номер, перевод на оператора):

  1. Получаем хук CALL_REDIRECTED.

  2. Получаем хук CALL_ENDED.

  3. Получаем хук CANDIDATE_CHANGED.


Звонок 1 кандидату (2+ номеров, без перевода на оператора):

  1. Получаем хук CALL_ENDED.

  2. Получаем хук CALL_ENDED.

  3. Получаем хук CANDIDATE_CHANGED.


Звонок 1 кандидату (2+ номеров, перевод на оператора):

  1. Получаем хук CALL_REDIRECTED.

  2. Получаем хук CALL_ENDED.

  3. Получаем хук CALL_REDIRECTED.

  4. Получаем хук CALL_ENDED.

  5. Получаем хук CANDIDATE_CHANGED.


Информация

На нашей платформе реализована система гарантированной доставки хуков. 

Система ожидает в ответ по каждому отправленному хуку 200-й код. В противном случае мы будем делать повторные отправки сообщений в течение 24 часов с увеличением интервалов повторной отправке по экспоненциальной формуле (чем больше попыток тем больше будет интервал попыток).

Меж серверное взаимодействие ожидает подтверждения в получении отправленных данных. 

Если вам нужен только один тип хука, вы можете отвечать 200-м кодом на все остальные передачи и ничего не делать с полученными данными. Решение что обрабатывать, а что игнорировать, находится на стороне бизнес-логики компании заказчика. 

Описание хука по событию «CALL_REDIRECTED» (Только для ботов с переводом на оператора)

Тело запроса:

Блок кода
languagepy
themeDJango
firstline1
linenumberstrue
{
 	"event": "CALL_REDIRECTED",
    "id": "a9f629abbce7d22e-20f0dde6-4c114427-8a82b391-05af87e49e43ebbdfda44de6",
    "redirectAdditional": null,
    "redirectAnons": null,
    "redirectDestination": "ch",
    "redirectDestinationId": "10103",
    "callbackData": []
}

Описание полей:

Поле

Тип

Обязательно

Описание

Соответствие с полем из метода старой телефонии

eventstringда

Тип события. Возможные значения:

  • CALL_REDIRECTED (Вызов переведен).
-
id

string

да

Идентификатор вызова.

id

redirectAdditional

string

да

Дополнительные данные, которые идут в SIP обмене.

-
redirectAnons

string

да

Текст сопровождения перевода, указанный в настройках бота при переводе звонка.

-
  • int (внутренний номер, вроде не используем).
  • -redirectDestinationId

    redirectDestination

    string

    да

    Тип перевода (настраивается в сценарии бота):

    • ch (канал перевода);
    • custom (произвольный перевод)
    ;
    • .
    redirectDestinationId

    string

    да

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

    -

    |   callbackData

    Object

    да (может быть пустым)

    Информация о кандидате, переданная в момент добавления кандидата (см. метод добавления кандидата).

    -

    Описание хука по событию «CALL_ENDED»

    Тело запроса:

    Блок кода
    languagepy
    themeDJango
    firstline1
    linenumberstrue
    {
      "event": "CALL_ENDED",
      "type": "OUTGOING",
      "companyId": 5,
      "botId": "228cc4fabce7d22e-92f2dde6-47094427-94e3b391-7344a96a5903ebbdfda44de6",
      "id": "80970c2cbce7d22e-9b30dde6-4f334427-96a6b391-9f37f37009e2ebbdfda44de6",
      "externalId": "f6d1c992bce7d22e-09d7dde6-11ee4427-a9b5b391-9ae97dfae6dfebbdfda44de6",
      "taskId": "bd5ed800bce7d22e-a7e1dde6-443d4427-afa2b391-4368e4f0de61ebbdfda44de6",
      "candidateId": "c89b04c3bce7d22e-fc46dde6-4ab34427-ac70b391-ae7de8d5617cebbdfda44de6",
      "status": "ANSWERED",
      "callFrom": "7966987654374992868344",
      "callTo": "7999123456774992868344",
      "startedAt": "2023-06-13T10:49:36+00:00",
      "finishedAt": "2023-06-13T10:49:38+00:00",
      "billedAt": "2023-06-13T10:49:55+00:00",
      "variables": {
        "age": "35",
        "name": "Иван Иванов"
      },
      "result": {
        "initialVariables": {
          "phone    "tryNumber": "79991234567"0,
          "age    "recordPath": "35",
          "name": "Иван Иванов"
        },
        "markers": [
          "Маркер 1",
          "Маркер 2",
          "Маркер 3"
        ],
        "confirmation": "Подтверждение",
        "nps": "NPS",
        "ключ_1": "его значение 1",
        "ключ_2": "его значение 2"
      },
      "amd": "MACH",
      "recordPath": "/180/2023/6/13/1686653365.8627691_79992082892_180.mp3",
      "flow": [
        {
          "botId": "228cc4fa-92f2-4709-94e3-7344a96a5903",
          "start": "2023-06-13 13:49:37.016654+03",
          "end": "2023-06-13 13:49:37.016654+03",
          "messages": [
            {
              "text": "Привет и пока",
              "author": "BOT",
              "time": "2023-06-13 13:49:37.016654+03"
            }
          ]
        }
      ],
      "gmtOffset": 0,
      "hungUpBy": null,
      "duration": 2,
      "totalCost": 0.09,
      "robotCallDuration": 1,
      "robotCallTotalCost": 0.05,
      "mainCallCost": 1.45,
      "mainCallDiscount": 0,
      "mainCallDuration": 2,
      "mainCallTotalCost": 0.05,
      "autoCallCost": 0,
      "autoCallDiscount": 0,
      "autoCallDuration": 0,
      "autoCallTotalCost": 0,
      "robotCallCost": 2.5,
      "robotCallDiscount": 0,
      "transferCallCost": 0,
      "transferCallDiscount": 0,
      "transferCallDuration": 0,
      "transferCallTotalCost": 0.05,
      "callbackData": []
    }

    Описание полей:

    https://tcl.twin24.ai/record/bce7d22e-dde6-4427-b391-ebbdfda44de6/download",
        "humanNumber": 0,
        "resultNumber": 0,
        "tryCandidate": 0,
        "answeredNumber": 0,
        "humanCandidate": 0,
        "resultCandidate": 0,
        "answeredCandidate": 0
      },
      "result": {
        "nps": "test",
        "date": "Дата",
        "evaluation": "Оценка",
        "confirmation": "Подтверждение",
        "markers": [
          "Маркер 1",
          "Маркер 2",
          "Маркер 3"
        ],
        "initialVariables": {
          "customVariable1": "Значение первой пользовательской переменной.",
          "customVariable2": "Значение второй пользовательской переменной.",
          "phone": "74992868344",
          "tryNumber": 0,
          "recordPath": "https://tcl.twin24.ai/record/bce7d22e-dde6-4427-b391-ebbdfda44de6/download",
          "humanNumber": 0,
          "resultNumber": 0,
          "tryCandidate": 0,
          "answeredNumber": 0,
          "humanCandidate": 0,
          "resultCandidate": 0,
          "answeredCandidate": 0
        },
        "ключ_1": "его значение 1",
        "ключ_2": "его значение 2"
      },
      "amd": "MACH",
      "recordPath": "/180/2023/6/13/1000000000.0000000_74992868344_180.mp3",
      "flow": [
        {
          "botId": "bce7d22e-dde6-4427-b391-ebbdfda44de6",
          "start": "2023-06-13 13:49:37.016654+03",
          "end": "2023-06-13 13:49:37.016654+03",
          "messages": [
            {
              "text": "Привет и пока",
              "author": "BOT",
              "time": "2023-06-13 13:49:37.016654+03"
            }
          ]
        }
      ],
      "gmtOffset": 0,
      "hungUpBy": null,
      "duration": 2,
      "totalCost": 0.09,
      "robotCallDuration": 1,
      "robotCallTotalCost": 0.05,
      "mainCallCost": 1.45,
      "mainCallDiscount": 0,
      "mainCallDuration": 2,
      "mainCallTotalCost": 0.05,
      "autoCallCost": 0,
      "autoCallDiscount": 0,
      "autoCallDuration": 0,
      "autoCallTotalCost": 0,
      "robotCallCost": 2.5,
      "robotCallDiscount": 0,
      "transferCallCost": 0,
      "transferCallDiscount": 0,
      "transferCallDuration": 0,
      "transferCallTotalCost": 0.05,
      "clientExternalId":null,
      "callbackData": []
    }

    Описание полей:

    Поле

    Тип

    Обязательно

    Описание

    eventstringда

    Тип события. Возможные значения:

    • CALL_ENDED (Вызов завершен).
    type

    string

    да

    Тип звонка. Возможные значения:

    • INCOMING (Входящий);
    • OUTGOING (Исходящий).
    companyId

    int

    да

    Идентификатор компании.

    botId

    string

    да

    Идентификатор сценария.

    id

    string

    да

    Идентификатор вызова.

    externalId

    string

    да

    Переданный в запросе на инициализацию идентификатор (callId).

    taskId

    string

    да

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

    candidateId

    string

    да

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

    status

    string

    да

    Статус вызова. Возможные значения:

    • CANCEL (Вызов отменен);
    • ANSWERED (Вызов отвечен);
    • NOANSWER (Нет ответа);
    • BUSY (Занято);
    • CONGESTION (Оператор отклонил вызов);
    • CHANUNAVAIL (Транк не доступен);
    • FAILED (Ошибка системы при обработке вызова);
    • SCHEDULED (Вызов запланирован);
    • BLACKLIST (Телефон в черном списке);
    • DIAL (Набор номера);
    • INPROGRESS (Идет диалог);
    • FZ230 (Запрет вызова по 230-ФЗ);
    • INVALID (Номер не корректный);
    • UNAVAILABLE (Удаленная АТС не доступна);
    • EXPIRED (Соединение не установлено за таймаут).
    callFrom

    string

    да

    Вызывающий номер.

    callTo

    string

    да

    Вызываемый номер.

    startedAt

    string

    да

    Дата начала вызова.

    finishedAt

    string

    да

    Дата окончания вызова.

    billedAt

    string

    да

    Дата билинга вызова.

    variables

    Object

    да

    Произвольный словарь типа ключ-значения, который был передан перед инициализацией вызова.

    Содержит исходные переменные.

    |    customVariable

    string

    нет

    Пользовательские переменные, переданные при старте звонка

    |    tryNumber

    int

    да

    Количество попыток дозвона в рамках задания на обзвон.

    |    recordPath 

    string

    да

    Ссылка на скачивание аудиозаписи звонка.

    |    humanNumber

    int

    да

    Количество дозвонов по номеру кандидата, где ответивший был НЕ автоответчик, считается с 0.

    |    resultNumber

    int

    да

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

    |    tryCandidate

    int

    да

    Количество попыток дозвона до кандидата, считается с 0.

    |    answeredNumber

    int

    да

    Количество дозвонов по номеру кандидата, считается с 0.

    |    humanCandidate

    int

    да

    Количество дозвонов до кандидата, где ответивший был НЕ автоответчик, считается с 0.

    |    resultCandidate

    int

    да

    Количество результативных дозвонов до кандидата, считается с 0.

    |    answeredCandidate

    int

    да

    Количество дозвонов до кандидата, считается с 0.

    result

    Object

    да  (может быть пустым массивом []))

    Произвольный словарь типа ключ-значения.

    Результаты разговора робота.

    |    nps

    string

    нет

    Информация из поля NPS в блоке Результат.
    |    date

    string

    нет

    Информация из поля Дата в блоке Результат.
    |    evaluation 

    string

    нет

    Информация из поля Оценка в блоке Результат.

    |    confirmation 

    string

    нет

    Информация из поля Подтверждение в блоке Результат.

    |    markers

    Array[string]

    нет

    Маркеры.

    |    initialVariables

    Object

    нет

    Исходные переменные.

    |    |    customVariable

    string

    нет

    Пользовательские переменные, переданные при старте звонка

    |    |    phone

    string

    нет

    Вызываемый номер.

    |    |    tryNumber

    int

    нет

    Количество попыток дозвона в рамках задания на обзвон.

    |    |    recordPath 

    string

    нет

    Прямая ссылка на скачивание аудиозаписи звонка.

    |    |    humanNumber

    int

    нет

    Количество дозвонов по номеру кандидата, где ответивший был НЕ автоответчик, считается с 0.

    |    |    resultNumber

    int

    нет

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

    |    |    tryCandidate

    int

    нет

    Количество попыток дозвона до кандидата, считается с 0.

    |    |    answeredNumber

    int

    нет

    Количество дозвонов по номеру кандидата, считается с 0.

    |    |    humanCandidate

    int

    нет

    Количество дозвонов до кандидата, где ответивший был НЕ автоответчик, считается с 0.

    |    |    resultCandidate

    int

    нет

    Количество результативных дозвонов до кандидата, считается с 0.

    |    |    answeredCandidate

    int

    нет

    Количество дозвонов до кандидата, считается с 0.

    |    ключ_1

    string

    нет

    Произвольный результат. 

    Задается в блоке Результат с типом Произвольный результат.

    amdstring

    да

    Результат работы определителя автоответчика. Возможные значения:

    • HUMN (человек);
    • MACH (автоответчик);
    • NOT_DEF (не определялось).
    recordPath

    string

    да (может быть пустой строкой)

    Ссылка на аудиофайл

    flow

    Array[Object]

    да (может быть пустым массивом []))

    Массив фрагментов разговора.

    |    botId

    string

    да

    Идентификатор сценария.

    |    start

    string

    да

    Время начала части диалога.

    |    end

    string

    да

    Время окончания части диалога.

    |    messages

    Array[Object]

    да

    Массив сообщений по диалогу.

    |    |    text

    string

    да

    Текст сообщений.

    |    |    author

    string

    да

    Кто произнес сообщение (BOT, CLIENT).

    |    |    time

    string

    да

    Время отправки сообщения.

    gmtOffset

    int

    да

    смещение в минутах от UTC часового пояса клиента.

    hungUpBy

    string

    да (может быть null)

    Кто положил трубку (BOT, HUMAN).

    duration

    int

    да

    Общая длительность разговора.

    totalCost

    float

    да

    Общая стоимость разговора.

    robotCallDuration

    int

    да

    Длительность разговора робота.

    robotCallTotalCost

    float

    да

    Стоимость разговора робота со скидкой.

    mainCallCost

    float

    да

    Стоимость разговора (транк клиента).

    mainCallDiscount

    float

    да

    Скидка за разговор (транк клиента).

    mainCallDuration

    int

    да

    Длительность разговора (транк клиента).

    mainCallTotalCost

    float

    да

    Стоимость разговора со скидкой (транк клиента).
    autoCallCost

    float

    да

    Всегда равен 0.
    autoCallDiscount

    float

    да

    Всегда равен 0.
    autoCallDuration

    int

    да

    Всегда равен 0.
    autoCallTotalCost

    float

    да

    Всегда равен 0.
    robotCallCost

    float

    да

    Стоимость разговора робота.
    robotCallDiscount

    float

    да

    Скидка за разговор робота.
    transferCallCost

    float

    да

    Стоимость перевода звонка.
    transferCallDiscount

    float

    да

    Скидка за перевод звонка.

    transferCallDuration

    int

    да

    Длительность звонка после перевода.

    transferCallTotalCost

    float

    да

    Стоимость звонка после перевода со скидкой.

    clientExternalId

    string

    да (может быть null)

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

    callbackData

    Object

    да (может быть пустым массивом [])

    Информация о кандидате, переданная в момент добавления кандидата (см. метод добавления кандидата).

    Описание хука по событию «CANDIDATE_CHANGED» (Только для исходящих)

    Тело запроса:

    Блок кода
    languagepy
    themeDJango
    firstline1
    linenumberstrue
    {
      "event": "CANDIDATE_CHANGED",
      "id": "bce7d22e-dde6-4427-b391-ebbdfda44de6",
      "clientExternalId": null,
      "taskId": "bce7d22e-dde6-4427-b391-ebbdfda44de6",
      "status": "FINISHED",
      "lastCallId": "bce7d22e-dde6-4427-b391-ebbdfda44de6",
      "callbackData": []
    }

    Описание полей:

    Поле

    Тип

    Обязательно

    Описание

    eventstringда

    Тип события. Возможные значения:

    • CANDIDATE_CHANGED (Обновление статуса по кандидату).

    id

    string

    да

    Идентификатор кандидата.

    clientExternalId

    string

    да (может быть null)

    Переданный в запросе на инициализацию идентификатор (callId).

    taskId

    string

    да

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

    lastCallId

    string

    да

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

    status

    string

    да

    Статус вызова. Возможные значения:

    • FINISHED (Обработка кандидата завершена, больше звонков совершено не будет).

    Поле

    Тип

    Обязательно

    Описание

    Соответствие с полем из метода старой телефонии

    eventstringда

    Тип события. Возможные значения:

    • CALL_ENDED (Вызов завершен).
    -type

    string

    да

    Тип звонка. Возможные значения:

    • INCOMING (Входящий);
    • OUTGOING (Исходящий).
    -companyId

    int

    да

    Идентификатор компании.

    -botId

    string

    да

    Идентификатор сценария.

    botIdid

    string

    да

    Идентификатор вызова.

    idexternalId

    string

    да

    Переданный в запросе на инициализацию идентификатор (callId).

    -taskId

    string

    да

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

    taskIdcandidateId

    string

    да

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

    -status

    string

    да

    Статус вызова. Возможные значения:

    • CANCEL (Вызов отменен);
    • ANSWERED (Вызов отвечен);
    • NOANSWER (Нет ответа);
    • BUSY (Занято);
    • CONGESTION (Оператор отклонил вызов);
    • CHANUNAVAIL (Транк не доступен);
    • FAILED (Ошибка системы при обработке вызова);
    • SCHEDULED (Вызов запланирован);
    • BLACKLIST (Телефон в черном списке);
    • DIAL (Набор номера);
    • INPROGRESS (Идет диалог);
    • FZ230 (Запрет вызова по 230-ФЗ);
    • INVALID (Номер не корректный);
    • UNAVAILABLE (Удаленная АТС не доступна);
    • EXPIRED (Соединение не установлено за таймаут).
    statuscallFrom

    string

    да

    Вызывающий номер.

    -callTo

    string

    да

    Вызываемый номер.

    phonestartedAt

    string

    да

    Дата начала вызова.

    startedAtfinishedAt

    string

    да

    Дата окончания вызова.

    -billedAt

    string

    да

    Дата билинга вызова.

    -variables

    Object

    да

    Произвольный словарь типа ключ-значения, который был передан перед инициализацией вызова.

    Содержит исходные переменные.

    -result

    Object

    да  (может быть пустым)

    Произвольный словарь типа ключ-значения.

    Результаты разговора робота.

    results

    |    initialVariables

    Object

    нет

    Исходные переменные.

    -

    |    markers

    Array[string]

    нет

    Маркеры.

    -

    |    evaluation

    string

    нет

    Оценка из блока результат.

    |    confirmation

    string

    нет

    Подтверждение.

    results.confirm

    |    nps

    string

    нет

    NPS.

    results.nps

    |    ключ_1

    string

    нет

    Произвольный результат. 

    Задается в блоке Результат с типом Произвольный результат.

    results.ключ_1amdstring

    да

    Результат работы определителя автоответчика. Возможные значения:

    • HUMN (человек);
    • MACH (автоответчик);
    • NOT_DEF (не определялось).
    amdrecordPath

    string

    да (пустой для первого хука)

    Путь к аудиофайлу.

    Для получения ссылки нужно добавить в начале пути 

    https://minio.twin24.ai/twin-cis-production/records.

    recordPathflow

    Array[Object]

    да

    Массив фрагментов разговора.

    -|    botId

    string

    да

    Идентификатор сценария.

    -|    start

    string

    да

    Время начала части диалога.

    -|    end

    string

    да

    Время окончания части диалога.

    -|    messages

    Array[Object]

    да

    Массив сообщений по диалогу.

    messages|    |    text

    string

    да

    Текст сообщений.

    messages.X.text|    |    author

    string

    да

    Кто произнес сообщение (BOT, CLIENT).

    messages.X.author|    |    time

    string

    да

    Время отправки сообщения.

    messages.X.created_atgmtOffset

    int

    да

    смещение в минутах от UTC часового пояса клиента.

    timezonehungUpBy

    string

    да (пока всегда null)

    Кто положил трубку (пока всегда null).

    -duration

    int

    да

    Общая длительность разговора.

    durationtotalCost

    float

    да

    Общая стоимость разговора.

    -robotCallDuration

    int

    да

    Длительность разговора робота.

    botDurationrobotCallTotalCost

    float

    да

    Стоимость разговора робота со скидкой.

    -mainCallCost

    float

    да

    Стоимость разговора (транк клиента).

    -mainCallDiscount

    float

    да

    Скидка за разговор (транк клиента).

    -mainCallDuration

    int

    да

    Длительность разговора (транк клиента).

    -autoCallCost

    float

    да

    Всегда равен 0.-autoCallDiscount

    float

    да

    Всегда равен 0.-autoCallDuration

    int

    да

    Всегда равен 0.-autoCallTotalCost

    float

    да

    Всегда равен 0.-robotCallCost

    float

    да

    Стоимость разговора робота.-robotCallDiscount

    float

    да

    Скидка за разговор робота.-transferCallCost

    float

    да

    Стоимость перевода звонка.-transferCallDiscount

    float

    да

    Скидка за перевод звонка.

    -transferCallDuration

    int

    да

    Длительность звонка после перевода.

    operatorDurationtransferCallTotalCost

    float

    да

    Стоимость звонка после перевода со скидкой.

    -

    callbackData

    Object

    да (может быть пустым массивом [])

    Информация о кандидате, переданная в момент добавления кандидата (см. метод добавления кандидата).

    -

    Описание хука по событию

    ...

    «RECALL_SCHEDULED»

    Тело запроса:

    Блок кода
    languagepy
    themeDJango
    firstline1
    linenumberstrue
    {
      "event": "CANDIDATE_CHANGED",
      "id": "683c00af-a299-4bb5-9500-5f594be0a0b6",
      "clientExternalId": "",
      "taskId": "e4da8b67-4786-432d-8092-a3d974a83d88",
      "status": "FINISHED",
      "lastCallId": "83c2e72f-00c0-4df4-bf32-d7369f55d8b8"
    }

    Описание полей:

    ...

    Поле

    ...

    Тип

    ...

    Обязательно

    ...

    Описание

    ...

    Соответствие с полем из метода старой телефонии

    ...

    Тип события. Возможные значения:

    • CANDIDATE_CHANGED (Обновление статуса по кандидату).

    ...

    string

    ...

    да

    ...

    Идентификатор кандидата.

    ...

    string

    ...

    да

    ...

    Переданный в запросе на инициализацию идентификатор (callId).

    ...

    string

    ...

    да

    ...

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

    ...

    string

    ...

    да

    ...

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

    ...

    string

    ...

    да

    ...

    Статус вызова. Возможные значения:

    • FINISHED (Обработка кандидата завершена, больше звонков совершено не будет).

    ...

    |   callbackData

    ...

    Object

    ...

    да (может быть пустым)

    ...

    Информация о кандидате, переданная в момент добавления кандидата (см. метод добавления кандидата).

    ...

    firstline1
    {
    	"event":"RECALL_SCHEDULED",
    	"id":"bce7d22e-dde6-4427-b391-ebbdfda44de6",
    	"date":"2024-01-31T13:25:00+00:00",
    	"callbackData":[]
    }

    Описание полей:

    Поле

    Тип

    Обязательно

    Описание

    event
    stringда

    Тип события RECALL_SCHEDULED — указывает на запланированный перезвон в рамках текущего звонка (через блок Результат).

    id

    stringдаID звонка.
    datestringдаДата и время, на которые запланирован звонок.
    callbackDataArrayда

    Поле для дополнительной информации.

    Описание хука по событию «EFFICIENCY_REACHED»

    Тело запроса:

    Блок кода
    {
      "event": "EFFICIENCY_REACHED",
      "id": "4f29df1c-1026-43b7-a60f-15b6b0d441b2",
      "state": true,
      "callbackData": 

    Описание хука по событию «RECALL_SCHEDULED»

    Тело запроса:

    Блок кода
    languagepy
    themeDJango
    firstline1
    {
    	"event":"RECALL_SCHEDULED",
    	"id":"59205dce-7dd8-418c-be9c-54eaeaa4629f",
    	"date":"2024-01-31T13:25:00+00:00",
    	"callbackData":[]
    }

    Описание полей:

    события RECALLSCHEDULED запланированный перезвон в рамках текущего звонка (через блок Результат)datestringДата и время, на которые запланирован звонокПоле для дополнительной информации

    Поле

    Тип

    Обязательно

    Описание

    event
    stringда

    Тип

    события EFFICIENCY_

    REACHED указывает на

    изменение результативности.

    id

    stringдаID звонка.
    state
    booleanда
    Состояние результативности. Если true — результативный, если false — не результативный.
    callbackDataArray
    да
    нет

    Дополнительные данные, связанные с событием.