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

Ключ

  • Эта строка добавлена.
  • Эта строка удалена.
  • Изменено форматирование.
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й 200-й код. В противном случае мы будет делать будем делать повторные отправки сообщений в течение 24 часов с увеличением интервалов повторной отправке по экспоненциальной формуле (чем больше попыток - тем больше будет интервал попыток).

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

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

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

Пример Тело запроса:Тело webHook в формате Json:

Блок кода
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

да

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

-

redirectDestination

string

да

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

  • ch
 
  • (канал перевода);
  • custom
 -redirectDestinationId

string

  • (произвольный перевод)

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

  • .
redirectDestinationId

string

да

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

-

.

|   callbackData

Object

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

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

-

.

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

Пример Тело запроса:Тело webHook в формате Json:

Блок кода
languagepy
themeDJango
firstline1
linenumberstrue
{
  "event":  "CALL_ENDED",
  "type":  "OUTGOING",
  "companyId": 5 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    "tryNumber": {
    "initialVariables0,
    "recordPath": {
      "phone": "79991234567",
      "age": "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]

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

Маркеры

-

|    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»

Тело запросаПример запроса:
Тело webHook в формате Json:

Блок кода
linenumbers
languagepy
themeDJango
firstline1true
{
  	"event": "CANDIDATERECALL_CHANGEDSCHEDULED",
  	"id": "5c0d503fbce7d22e-a34edde6-48064427-b455-3225de25***b391-ebbdfda44de6",
  	"clientExternalIddate": null,
  "taskId": "210ef80*-1f92-48b*-9800-84fcf59363*e",
  "status": "FINISHED",
  "2024-01-31T13:25:00+00:00",
	"callbackData": [
    {
      "id_num": "12q12",
      "id_debt": "456321"
    }
}

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

]
}

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

Поле

Тип

Обязательно

Описание

event
stringда

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

id

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

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

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

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

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

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

Поле

Тип

Обязательно

Описание

event
stringда

Тип события EFFICIENCY_REACHED указывает на изменение результативности.

id

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

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

Поле

Тип

Обязательно

Описание

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

Поле

Тип

Обязательно

Описание

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

eventstringда

Тип события. 

Возможные значения:

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

-id

string

да

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

idclientExternalId

string

да

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

-taskId

string

да

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

taskIdcandidateId

string

да

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

-status

string

да

Статус вызова. 

Возможные значения:

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

status

|   callbackData

Object

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

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

-