Метод: GET

Authorization: Bearer Token (Метод для получения токена по логину и паролю)

URL: https://tcl.twin24.ai/api/analyse/v1/search/cis/sessions

cURL (пример)
curl --location 'https://tcl.twin24.ai/api/analyse/v1/search/cis/sessions?fields=taskName%2Cid%2Camd%2CtaskId%2Cnumber%2CbotName%2CvariablesString%2CresultsString%2CdialogResult%2CvariablesString&limit=100&from=2024-01-01T00%3A00%3A00%2B00%3A00&to=2024-02-01T00%3A00%3A00%2B00%3A00&offset=0&page=1&companyId=0001&callingNumber=70000000000&isIncoming=false&status=ANSWERED' \
--header 'accept: application/json' \
--header 'Authorization: Bearer TOKEN'

Описание параметров метода:

Поле

Принимаемые значения

Описание

fields 
  1. id
  2. taskName
  3. taskId
  4. createdAt
  5. startedAt
  6. finishedAt
  7. billedAt
  8. updatedAt
  9. speakerFinishedAt
  10. number
  11. callingNumber
  12. botId
  13. botName
  14. timezone
  15. messagesAsString
  16. resultsString
  17. variablesString
  18. clientExternalId
  19. dialogResult
  20. advStatus_ru
  21. nps
  22. duration
  23. externalId
  24. recordPath
  25. currentStatusName
  26. mainCallDiscount
  27. mainCallDuration
  28. robotCallDuration
  29. transferCallDuration
  30. companyId
  31. companyName
  32. price
  33. resellerPrice
  34. resellerCompanyId
  35. resellerCompanyName
  36. mainCallCost
  37. mainCallTotalCost
  38. robotCallCost
  39. robotCallTotalCost
  40. transferCallCost
  41. transferCallTotalCost
  42. isIncoming
  43. amd
  44. autoCallCandidateId

Параметр, отвечающий за то, какие поля будут отображены в ответе. Поля указываются через запятую. 

limit 

Целое число от 1 до 1 000

Количество записей на одной странице. Максимум 1000 объектов. 
offset Целое число от 0

«Отступ» от начала записей. То есть с какой записи начинать вывод.

Смещение по позиции полученной информации.
Например, в заданное временное окно было 4 050 звонков. Сделав запрос, вы получили доступный максимум в виде 1 000 записей. Тогда вам нужно повторить запрос, с указанием последней полученной позиции. После получения 1 000 записей, «1 000» и есть наша последняя позиция. Получив еще раз максимальное количество, повторяем запрос, указав смещение уже на 2 000 позиций. 
Делаем смещение до тех пор, пока количество возвращенных данных не будет меньше запрошенного лимита.

page 

Целое число от 0

Номер «страницы» с записями. 
Например, если у вас есть 4 050 звонков и лимит вывода на одной странице составляет 1 000 записей, то на первой странице будут записи с номерами с 0 по 1000, на второй — с 1 001 по 2000 и так далее.

from 

url encoded дата в формате - ГГГГ-ММ-ДДTчч:мм:сс+чч:мм 

Например:

Начало периода в формате decoded: 2023-06-13T00:00:00+00:00 
В
encoded будет выглядеть: 2023-06-13T00%3A00%3A00%2B00%3A00

Дата и время, от которой требуется провести поиск статистики в формате encoded.

to 

url encoded дата в формате - ГГГГ-ММ-ДДTчч:мм:сс+чч:мм 

Например:

Начало периода в формате decoded: 2023-06-13T00:00:00+00:00 
В encoded будет выглядеть: 2023-06-13T00%3A00%3A00%2B00%3A00

В запросе требуется использовать дату и время в формате encoded.

Дата и время, до которой требуется провести поиск статистики в формате encoded.

companyId Целое число

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

*Используется для фильтрации. Сессии, не отвечающие заданному параметру, не будут добавлены в ответ. 

phone Целое число

Номер телефона, на который идет звонок.

*Используется для фильтрации. Сессии, не отвечающие заданному параметру, не будут добавлены в ответ. 

Для входящих звонков —  номер телефона, к которому подключён бот.

callingNumber Целое число

Номер телефона, с которого идет звонок.

*Используется для фильтрации. Сессии, не отвечающие заданному параметру, не будут добавлены в ответ. 

Для исходящих звонков —  номер телефона, к которому подключён бот.

isIncoming true / false

true — если входящие; false — если исходящие.

*Используется для фильтрации. Сессии, не отвечающие заданному параметру, не будут добавлены в ответ. 

sort 

createdAt , startedAt , finishedAt , billedAt , speakerFinishedAt , duration , price

По умолчанию сортировка происходит по полю startedAt.

Для сортировки результатов запроса доступны следующие поля:

  • createdAt — дата и время создания звонка;
  • startedAt — дата и время начала звонка;
  • finishedAt — дата и время завершения звонка;
  • billedAt — дата и время расчёта стоимости звонка;
  • speakerFinishedAt — дата и время окончания работы робота;
  • duration — продолжительность звонка;
  • price — стоимость звонка.

По умолчанию сортировка происходит по полю startedAt.

Для указания желаемого порядка сортировки используются специальные префиксы:

  • «+» — для сортировки по возрастанию (по умолчанию);
  • «-» — для сортировки по убыванию.

Например, чтобы отсортировать звонки в порядке убывания, ориентируясь на дату и время завершенного звонка, нужно указать: -finishedAt.

taskId Значение string

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

*Используется для фильтрации. Сессии, не отвечающие заданному параметру, не будут добавлены в ответ. 

id Значение string

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

*Используется для фильтрации. Сессии, не отвечающие заданному параметру, не будут добавлены в ответ. 

status 

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

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

Текущий статус звонка.

*Используется для фильтрации. Сессии, не отвечающие заданному параметру, не будут добавлены в ответ. 

FilterPeriodBy createdAt , updatedAt , startedAt 
По умолчанию используется поле startedAt .

Выбор поля, к которому будет применяться фильтрация по датам из полей from  и to .

autoCallCandidateId Значение stringИдентификатор кандидата. Используется для фильтрации. Сессии, не отвечающие заданному параметру, не будут добавлены в ответ. 
Ответ в формате JSON
{
    "count": 1,
    "items": [
        {
            "id": "db5cb7fb-dc3e-4197-a7f5-93f63dc5bfbd",
            "taskName": "TWIN TEST",
            "taskId": "db5cb7fb-dc3e-4197-a7f5-93f63dc5bfbd",
            "createdAt": "2024-01-01T00:00:18.722982Z",
            "startedAt": "2024-01-01T00:00:18.722136Z",
            "finishedAt": "2024-01-01T00:00:38.484110Z",
            "billedAt": "2024-01-01T00:00:57.902230Z",
            "updatedAt": "2024-01-01T00:00:57.908504Z",
            "speakerFinishedAt": "2024-01-01T00:00:38.484000Z",
            "number": "70000000000",
            "callingNumber": "70000000001",
            "botId": "db5cb7fb-dc3e-4197-a7f5-93f63dc5bfbd",
            "botName": "TWIN BOT",
            "timezone": 10800,
            "messagesAsString": "BOT:  Добрый день, как ваши дела? \nCLIENT: Привет, дела - хорошо.",
            "resultsString": "{\"nps\": \"Успех\", \"confirmation\": \"Успех\"}",
            "variablesString": "{\"tryNumber\": 0, \"recordPath\": \"https://tcl.twin24.ai/record/db5cb7fb-dc3e-4197-a7f5-93f63dc5bfbd/download\", \"humanNumber\": 0, \"resultNumber\": 0, \"tryCandidate\": 0, \"answeredNumber\": 0, \"humanCandidate\": 0, \"resultCandidate\": 0, \"answeredCandidate\": 0}",
            "dialogResult": "Успех",
            "advStatus_ru": "Успешный",
            "nps": "Успех",
            "duration": 17,
            "externalId": "db5cb7fb-dc3e-4197-a7f5-93f63dc5bfbd",
            "clientExternalId": null,
            "recordPath": "https://tcl.twin24.ai/record/db5cb7fb-dc3e-4197-a7f5-93f63dc5bfbd/download",
            "currentStatusName": "ANSWERED",
            "mainCallDiscount": "0",
            "mainCallDuration": 17,
            "robotCallDuration": 17,
            "transferCallDuration": 0,
            "companyId": 123,
            "companyName": "123 | ТВИН: TEST",
            "price": "0.0",
            "resellerPrice": "0.000000",
            "resellerCompanyId": null,
            "resellerCompanyName": null,
            "mainCallCost": "0.00",
            "mainCallTotalCost": "0.0",
            "robotCallCost": "0.00",
            "robotCallTotalCost": "0.0",
            "transferCallCost": "0",
            "transferCallTotalCost": null,
            "isIncoming": false,
            "amd": "NOT_DEF",
            "autoCallCandidateId": "db5cb7fb-dc3e-4197-a7f5-93f63dc5bfbd"
        }
    ]
}

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

ПолеОписаниеТип поля
count Общее количество найденных записей.

Int

items Массив найденных записей.Array[Object]
|    id Идентификатор звонка.String
|    taskName Имя задания на обзвон.String
|    taskId Идентификатор задания на обзвон.String
|    createdAt Дата и время создания звонка.String
|    startedAt Дата и время запуска звонка.String
|    finishedAt Дата и время окончания звонка.String
|    billedAt Дата и время расчета стоимости звонка.String
|    updatedAt Дата и время последнего обновления информации о звонке.String
|    speakerFinishedAt 

Дата и время окончания работы бота.

String
|    number 

Номер телефона, на который идет звонок.

Для входящих звонков — номер телефона, к которому подключён бот.
String
|    callingNumber 

Номер телефона, с которого идет звонок.

Для исходящих звонков — номер телефона, к которому подключён бот.
String
|    botId Идентификатор сценария бота.String
|    botName Имя сценария бота.String
|    timezone Смещение временной зоны в секундах относительно UTC.Int
|    messagesAsString Транскрибация диалога. Содержит полную транскрибацию в формате строки.  String
|    resultsString Сохраненные в блоке Результат данные: Подтверждение; NPS; Произвольный результат.String
|    variablesString Стартовые переменные.String
|    dialogResult 

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

String
|    advStatus_ru 

Результативность звонка (из настроек задания или блока «Зафиксировать эффективность)». 
Возможные значения:

  • Отменён;
  • Успешный;
  • Нет ответа;
  • Абонент занят;
  • Вызов отклонен оператором связи;
  • Нет связи с телефонной линией;
  • Ошибка;
  • Запланирован;
  • В черном списке;
  • Набор номера;
  • В процессе;
  • Запрет звонка по 230-ФЗ;
  • Ошибка формата номера;
  • Номер не доступен;
  • Срок ожидания соединения истек.
String
|    nps 

Значение поля NPS из зафиксированного результата.

String
|    duration Продолжительность звонка в секундах.Int
|    externalId 

Внутренний идентификатор, используется только для нужд техподдержки.

String
|    clientExternalId 

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

String
|    recordPath 

Ссылка на запись разговора.

String
|    currentStatusName 

Текущий статус звонка.

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

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

String

|    mainCallDiscount Скидка за разговор.String
|    mainCallDuration Длительность разговора в секундах.Integer
|    robotCallDuration Продолжительность работы робота в секундах.Integer
|    transferCallDuration Длительность звонка после перевода в секундах.Integer
|    companyId Идентификатор компании.Integer
|    companyName 

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

В формате: «ИДЕНТИФИКАТОР КОМПАНИИ | НАЗВАНИЕ КОМПАНИИ».

String
|    price Стоимость всего разговора.String
|    resellerPrice Стоимость звонка для реселлера.String
|    resellerCompanyId Идентификатор компании реселлера.Int
|    resellerCompanyName Имя компании реселлера.String
|    mainCallCost Стоимость 1 минуты телефонии по тарифу.String
|    mainCallTotalCost Итоговая стоимость телефонии в звонке.String
|    robotCallCost 

Стоимость 1 минуты разговора робота.

String
|    robotCallTotalCost Итоговая стоимость разговора робота.String
|    transferCallCost Стоимость 1 минуты разговора после перевода.String
|    transferCallTotalCost Итоговая стоимость разговора после перевода.String
|    isIncoming Входящий/Исходящий вызов (true/false).Boolean
|    amd Режим работы определителя человека или робота.
Может принимать значения:
  • HUMN — человек;
  • MACH — робот;
  • NOT_DEF — определить выключен.
String
|    autoCallCandidateId Идентификатор кандидата.String


  • Нет меток