Skip to content

Call Center DTO

Описание сущностей и типов из src/dto/callCenter/.

Обогащено snapshot-данными бэкенд-DTO (22 из 57 типов сопоставлено, snapshot от 2026-05-05T13:21:51.699Z).

Содержание


AgentDto

Backend-источник: features.callcenterservice/Features.CallCenterService/Nuget.CallCenterApiClient/Dto/Agents/AgentDto.cs (features.callcenterservice).

Поля

ПолеТип (TS)ОбязательноеОписаниеТип (C#)
idnumberдаint
userIdnumber | nullнетint?
webexIdstringдаstring
webexUserNumberstringдаstring
webexDisplayNamestringдаstring
userFullNamestring | nullнетstring?
agentStatusAgentStatusDtoдаAgentStatusDto
createDateTimestringдаDateTimeOffset
updateDateTimestring | nullнетDateTimeOffset?
deleteDateTimestring | nullнетDateTimeOffset?
queuesAgentQueueDto[]даList<AgentQueueDto>

Пример

json
{
  "id": 0,
  "userId": 0,
  "webexId": "uuid",
  "webexUserNumber": "string",
  "webexDisplayName": "string",
  "userFullName": "string",
  "agentStatus": "<AgentStatusDto>",
  "createDateTime": "2026-05-05T08:00:00Z",
  "updateDateTime": "2026-05-05T08:00:00Z",
  "deleteDateTime": "2026-05-05T08:00:00Z",
  "queues": []
}


AgentQueueDto

Backend-источник: features.callcenterservice/Features.CallCenterService/Nuget.CallCenterApiClient/Dto/Agents/AgentQueueDto.cs (features.callcenterservice).

Поля

ПолеТип (TS)ОбязательноеОписаниеТип (C#)
idnumberдаint
joinedbooleanдаbool
createDateTimestringдаDateTimeOffset
updateDateTimestring | nullнетDateTimeOffset?
deleteDateTimestring | nullнетDateTimeOffset?
queueQueueSummaryDtoдаQueueSummaryDto

Пример

json
{
  "id": 0,
  "joined": false,
  "createDateTime": "2026-05-05T08:00:00Z",
  "updateDateTime": "2026-05-05T08:00:00Z",
  "deleteDateTime": "2026-05-05T08:00:00Z",
  "queue": "<QueueSummaryDto>"
}


AgentQueueRequestDto

Queue association for agent create/update operations

Backend-источник: features.callcenterservice/Features.CallCenterService/Nuget.CallCenterApiClient/Dto/Agents/Requests/AgentQueueRequestDto.cs (features.callcenterservice).

Queue association for agent create/update operations

Поля

ПолеТип (TS)ОбязательноеОписаниеТип (C#)
queueIdnumberдаQueue idint
joinedbooleanдаWhether agent is joined to the queuebool

Пример

json
{
  "queueId": 0,
  "joined": false
}


AgentStatusDto

Backend-источник: features.callcenterservice/Features.CallCenterService/Nuget.CallCenterApiClient/Dto/Agents/Enums/AgentStatusDto.cs (features.callcenterservice).

Также определён в: integration.callcenternotification.

Значения

ИмяЗначение (TS)ОписаниеКод (C#)
Offline11
Online22
DailOut33
Working44
Paused55

Пример

json
1


AgentSummaryDto

Backend-источник: features.callcenterservice/Features.CallCenterService/Nuget.CallCenterApiClient/Dto/Agents/AgentSummaryDto.cs (features.callcenterservice).

Поля

ПолеТип (TS)ОбязательноеОписаниеТип (C#)
idnumberдаint
userIdnumber | nullнетint?
webexIdstringдаstring
webexUserNumberstringдаstring
webexDisplayNamestringдаstring
userFullNamestring | nullнетstring?
agentStatusAgentStatusDtoдаAgentStatusDto
createDateTimestringдаDateTimeOffset
updateDateTimestring | nullнетDateTimeOffset?
deleteDateTimestring | nullнетDateTimeOffset?

Пример

json
{
  "id": 0,
  "userId": 0,
  "webexId": "uuid",
  "webexUserNumber": "string",
  "webexDisplayName": "string",
  "userFullName": "string",
  "agentStatus": "<AgentStatusDto>",
  "createDateTime": "2026-05-05T08:00:00Z",
  "updateDateTime": "2026-05-05T08:00:00Z",
  "deleteDateTime": "2026-05-05T08:00:00Z"
}


CallAgentAnalyticsResponseDto

Response of GET /Api/Calls/Analytics/Agents. Data lives under the result field.

Поля

ПолеТипОбязательноеОписание
resultCallAgentAnalyticsResultDtoда

Пример

json
{
  "result": "<CallAgentAnalyticsResultDto>"
}


CallAgentAnalyticsResultDto

Звонки периода в разрезе webex-агентов. Приходят ВСЕ агенты, включая тех, у кого за период не было ни одного звонка (counters.total: 0), отсортированы по объёму. У каждого агента в byCategory все категории, тоже с нулями.

unattributedCalls — звонки, которых не удалось привязать ни к одному агенту: это звонки без сессии, которых CDR не привязал к пользователю. Их нельзя размазать по агентам, поэтому сумма по agents меньше общего числа звонков ровно на эту величину.

Поля

ПолеТипОбязательноеОписание
shortCallThresholdSecondsnumberда
unattributedCallsnumberда
agentsCallAgentDto[]да

Пример

json
{
  "shortCallThresholdSeconds": 0,
  "unattributedCalls": 0,
  "agents": []
}


CallAgentCategoryDto

Звонки агента в одной категории. category: null — звонки, у которых категории нет вообще; не смешивается с CallSessionCategoryDto.Other, которая является реальной категорией домена.

Поля

ПолеТипОбязательноеОписание
categoryCallSessionCategoryDto | nullда
countersCallOutcomeCountersDtoда
durationCallDurationCountersDtoда

Пример

json
{
  "category": "<callsessioncategorydto>",
  "counters": "<CallOutcomeCountersDto>",
  "duration": "<CallDurationCountersDto>"
}


CallAgentDto

Один webex-агент: объём и исход звонков, длительности, и то же самое в разрезе категорий.

Поля

ПолеТипОбязательноеОписание
agentIdnumberда
namestringда
extensionstringда
countersCallOutcomeCountersDtoда
durationCallDurationCountersDtoда
byCategoryCallAgentCategoryDto[]да

Пример

json
{
  "agentId": 0,
  "name": "string",
  "extension": "string",
  "counters": "<CallOutcomeCountersDto>",
  "duration": "<CallDurationCountersDto>",
  "byCategory": []
}


CallAnalyticsPeriodRequestDto

Period every call center analytics endpoint takes. Call center local days, to inclusive.

Поля

ПолеТипОбязательноеОписание
fromstring | nullнет
tostring | nullнет

Пример

json
{
  "from": "2026-05-05T08:00:00Z",
  "to": "2026-05-05T08:00:00Z"
}


CallDirectionDto

Backend-источник: features.callcenterservice/Features.CallCenterService/Nuget.CallCenterApiClient/Dto/Enums/CallDirectionDto.cs (features.callcenterservice).

Также определён в: integration.callcenternotification.

Значения

ИмяЗначение (TS)ОписаниеКод (C#)
Incoming11
Outgoing22

Пример

json
1


CallDto

A single row of GET /Api/Calls. It is either a real call (with its linked session) or a standalone call session not linked to any call — see itemType. For a session row the call-only fields are absent (webexCorrelationId/outcomeReason null, answered null, recallCreated false, queue null) and only the direction-matching phone side is filled.

Поля

ПолеТипОбязательноеОписание
itemTypeCallItemTypeDtoдаWhether this row is a call or a standalone (orphan) call session.
rowKeystringдаStable unique key across both kinds (call-{id} / session-{id}); use it as the table row key.
idnumberдаCall id for a call row, session id for a session row (not unique across the two — use rowKey).
agentIdnumber | nullнет
queueIdnumber | nullнет
callSessionIdnumber | nullнет
callingPhoneNumberstring | nullда
calledPhoneNumberstring | nullда
callDirectionCallDirectionDtoда
webexCorrelationIdstring | nullда
outcomeReasonstring | nullда
startTimestringда
finishedAtstring | nullнет
recallCreatedbooleanда
answeredboolean | nullнет
createDateTimestringда
updateDateTimestring | nullнет
deleteDateTimestring | nullнет
queueQueueSummaryDto | nullнет
categoryCallSessionCategoryDto | nullнетBusiness category of the row: session's own category, or the linked session's for a call row (null if none).
agentAgentSummaryDto | nullнет
callSessionCallSessionDto | nullнет

Пример

json
{
  "itemType": "<CallItemTypeDto>",
  "rowKey": "string",
  "id": 0,
  "agentId": 0,
  "queueId": 0,
  "callSessionId": 0,
  "callingPhoneNumber": "+49123456789",
  "calledPhoneNumber": "+49123456789",
  "callDirection": "<CallDirectionDto>",
  "webexCorrelationId": "uuid",
  "outcomeReason": "string",
  "startTime": "2026-05-05T08:00:00Z",
  "finishedAt": "2026-05-05T08:00:00Z",
  "recallCreated": false,
  "answered": false,
  "createDateTime": "2026-05-05T08:00:00Z",
  "updateDateTime": "2026-05-05T08:00:00Z",
  "deleteDateTime": "2026-05-05T08:00:00Z",
  "queue": "<queuesummarydto>",
  "category": "<callsessioncategorydto>",
  "agent": "<agentsummarydto>",
  "callSession": "<callsessiondto>"
}


CallDurationCountersDto

Длительности считаются только по отвеченным звонкам, answeredTotal — их знаменатель.

Делить shortCalls на counters.total нельзя: у недозвона длительности разговора нет, агент открывает карточку и отмечает результат, поэтому недозвоны в этих числах не участвуют вовсе. Порог «короткого» звонка приходит в shortCallThresholdSeconds корня ответа.

Поля

ПолеТипОбязательноеОписание
answeredTotalnumberда
shortCallsnumberда
avgDurationSecondsnumberда

Пример

json
{
  "answeredTotal": 0,
  "shortCalls": 0,
  "avgDurationSeconds": 0
}


CallEntityAnalyticsResponseDto

Response of GET /Api/Calls/Analytics/Entities. Data lives under the result field.

Поля

ПолеТипОбязательноеОписание
resultCallEntityAnalyticsResultDtoда

Пример

json
{
  "result": "<CallEntityAnalyticsResultDto>"
}


CallEntityAnalyticsResultDto

К какой сущности привязаны звонки периода — в целом и в разрезе категорий. Счётчики entities складываются в total ровно: каждый звонок попадает в один бакет, включая непривязанные.

Поля

ПолеТипОбязательноеОписание
totalnumberда
entitiesCallEntityCountDto[]да
byCategoryCallEntityCategoryDto[]да

Пример

json
{
  "total": 0,
  "entities": [],
  "byCategory": []
}


CallEntityCategoryDto

Разбивка по сущностям внутри одной категории. Отдельного тотала у строки нет намеренно: сумма entities и есть число звонков этой категории.

Поля

ПолеТипОбязательноеОписание
categoryCallSessionCategoryDto | nullда
entitiesCallEntityCountDto[]да

Пример

json
{
  "category": "<callsessioncategorydto>",
  "entities": []
}


CallEntityCountDto

Сколько звонков привязано к одному типу сущности. entityType: null — звонки без привязки вообще; это полноценный бакет, а не ноль, и он всегда идёт последним.

Приходят ВСЕ типы сущностей плюс null — у незадействованных count: 0, порядок фиксированный, так что палитру можно привязать к индексу.

Поля

ПолеТипОбязательноеОписание
entityTypeCallSessionExternalEntityTypeDto | nullда
countnumberда

Пример

json
{
  "entityType": "<callsessionexternalentitytypedto>",
  "count": 0
}


CallItemTypeDto

Discriminates a GET /Api/Calls row: a real call vs a standalone (orphan) call session.

Значения

ИмяЗначениеОписание
Call1
Session2

Пример

json
1


CallLoadAnalyticsResponseDto

Response of GET /Api/Calls/Analytics/Load. Data lives under the result field.

Поля

ПолеТипОбязательноеОписание
resultCallLoadAnalyticsResultDtoда

Пример

json
{
  "result": "<CallLoadAnalyticsResultDto>"
}


CallLoadAnalyticsResultDto

Нагрузка колл-центра по дню недели и часу. cells — полная сетка 168 ячеек (7 × 24) в фиксированном порядке: ночь без звонков приходит нулём, а не пропуском. weekdays — все 7 дней.

timeZone — зона, в которой посчитаны день недели и час (например Europe/Berlin).

Поля

ПолеТипОбязательноеОписание
timeZonestringда
totalnumberда
cellsCallLoadCellDto[]да
weekdaysCallLoadWeekdayDto[]да

Пример

json
{
  "timeZone": "2026-05-05T08:00:00Z",
  "total": 0,
  "cells": [],
  "weekdays": []
}


CallLoadCellDto

Одна ячейка тепловой карты. count — АБСОЛЮТНОЕ число звонков за весь период, а не среднее: чтобы получить среднее, поделите на dayCount того же дня недели из weekdays.

weekday — ISO: 1 понедельник … 7 воскресенье. Это НЕ Date.getDay(), где 0 воскресенье. hour — 0…23 в таймзоне из timeZone корня ответа.

Ячейки приходят все 7 × 24, включая пустые с count: 0.

Поля

ПолеТипОбязательноеОписание
weekdaynumberда
hournumberда
countnumberда

Пример

json
{
  "weekday": 0,
  "hour": 0,
  "count": 0
}


CallLoadWeekdayDto

Сколько раз день недели попал в период — знаменатель для усреднения ячеек этого дня.

Считать его на фронте по своим локальным датам нельзя: числитель приходит с бэка, который знает таймзону колл-центра и то, как разрешился период, и расхождение будет тихим.

weekday — ISO: 1 понедельник … 7 воскресенье.

Поля

ПолеТипОбязательноеОписание
weekdaynumberда
dayCountnumberда

Пример

json
{
  "weekday": 0,
  "dayCount": 0
}


CallOutcomeCountersDto

How a set of calls ended. notReached + positive + negative + interrupted + unclassified always add up to total.

notReached is every call that was not explicitly answered, including the legacy sessions that carry a negative outcome together with answered: false. unclassified is answered without a recorded outcome: a call with no session at all, or a session left without one.

Поля

ПолеТипОбязательноеОписание
totalnumberда
notReachednumberда
positivenumberда
negativenumberда
interruptednumberда
unclassifiednumberда

Пример

json
{
  "total": 0,
  "notReached": 0,
  "positive": 0,
  "negative": 0,
  "interrupted": 0,
  "unclassified": 0
}


CallReasonCountDto

Сколько звонков завершено с этой причиной. Приходят ВСЕ причины, возможные в категории, — у невыбранных count: 0, пропусков нет.

WARNING

В result может прийти код, которого нет в SessionResultDto: в данных есть легаси-значения вне энума. Такой код не имеет метки, и фолбэк отрисует его как «прочее» — на графике окажутся две записи «прочее» с разными числами. Стоит либо завести метку, либо отфильтровать неизвестные коды осознанно, но молча они больше не пропадают.

Поля

ПолеТипОбязательноеОписание
resultSessionResultDtoда
countnumberда

Пример

json
{
  "result": "<SessionResultDto>",
  "count": 0
}


CallResultAnalyticsResponseDto

Response of GET /Api/Calls/Analytics/Results. Data lives under the result field.

Поля

ПолеТипОбязательноеОписание
resultCallResultAnalyticsResultDtoда

Пример

json
{
  "result": "<CallResultAnalyticsResultDto>"
}


CallResultAnalyticsResultDto

How the calls of the period ended, broken down by call session category. total and reasons are the aggregate over every category, uncategorized calls included.

categories — все 7 категорий плюс строка null последней, порядок фиксированный. reasons на верхнем уровне — объединение справочников всех категорий. Пустых слотов не пропускаем: где не было звонков, приходят нули.

Поля

ПолеТипОбязательноеОписание
totalCallOutcomeCountersDtoда
reasonsCallReasonCountDto[]да
categoriesCallResultCategoryDto[]да

Пример

json
{
  "total": "<CallOutcomeCountersDto>",
  "reasons": [],
  "categories": []
}


CallResultCategoryDto

One category row. category: null means the call carries no category — either it has no session, or the session was left without one. Kept apart from CallSessionCategoryDto.Other, which is a real category of the domain.

Приходят ВСЕ категории, включая null, — у пустых нулевые счётчики.

reasons — все причины, возможные в этой категории, отсортированы по убыванию количества; заполняются только у негативного исхода, у остальных count: 0. У строки category: null причин нет вовсе: у звонка без категории их взять негде.

Поля

ПолеТипОбязательноеОписание
categoryCallSessionCategoryDto | nullда
countersCallOutcomeCountersDtoда
reasonsCallReasonCountDto[]да

Пример

json
{
  "category": "<callsessioncategorydto>",
  "counters": "<CallOutcomeCountersDto>",
  "reasons": []
}


CallSessionCategoryDto

Значения

ИмяЗначениеОписание
PotentialClient1
Client2
PotentialWorker3
Worker4
PotentialPartner5
Partner6
Other7

Пример

json
1


CallSessionDto

Backend-источник: features.callcenterservice/Features.CallCenterService/Nuget.CallCenterApiClient/Dto/CallSessions/CallSessionDto.cs (features.callcenterservice).

Поля

ПолеТип (TS)ОбязательноеОписаниеТип (C#)
idnumberдаint
agentIdnumber | nullнетint
callIdnumber | nullнетint?
phoneNumberstringдаstring
callDirectionCallDirectionDtoдаCallDirectionDto
startedAtstringдаDateTime
endedAtstring | nullнетDateTime?
categoryCallSessionCategoryDto | nullнет
sessionOutcomeSessionOutcomeDto | nullнет
answeredboolean | nullнет
externalEntityTypeCallSessionExternalEntityTypeDto | nullнет
externalEntityIdnumber | nullнет
sessionResultSessionResultDto | nullнет
commentstring | nullнетstring?
createDateTimestringдаDateTimeOffset
updateDateTimestring | nullнетDateTimeOffset?
agentAgentSummaryDto | nullнетAgentSummaryDto?

Пример

json
{
  "id": 0,
  "agentId": 0,
  "callId": 0,
  "phoneNumber": "+49123456789",
  "callDirection": "<CallDirectionDto>",
  "startedAt": "2026-05-05T08:00:00Z",
  "endedAt": "2026-05-05T08:00:00Z",
  "category": "<callsessioncategorydto>",
  "sessionOutcome": "<sessionoutcomedto>",
  "answered": false,
  "externalEntityType": "<callsessionexternalentitytypedto>",
  "externalEntityId": 0,
  "sessionResult": "<sessionresultdto>",
  "comment": "string",
  "createDateTime": "2026-05-05T08:00:00Z",
  "updateDateTime": "2026-05-05T08:00:00Z",
  "agent": "<agentsummarydto>"
}


CallSessionExternalEntityTypeDto

Значения

ИмяЗначениеОписание
Client1
Worker2
Partner3
ClientLead4
WorkerLead5

Пример

json
1


CategoryAnalyticsChartPointDto

One chart data point: totals for a single category on a single date.

Поля

ПолеТипОбязательноеОписание
datestringда
categoryCallSessionCategoryDtoда
incomingnumberда
outgoingnumberда
missednumberда
notReachednumberда

Пример

json
{
  "date": "2026-05-05T08:00:00Z",
  "category": "<CallSessionCategoryDto>",
  "incoming": 0,
  "outgoing": 0,
  "missed": 0,
  "notReached": 0
}


CategoryAnalyticsDayPointDto

One "all categories" chart point: totals for a single date across every category.

Поля

ПолеТипОбязательноеОписание
datestringда
incomingnumberда
outgoingnumberда
missednumberда
notReachednumberда

Пример

json
{
  "date": "2026-05-05T08:00:00Z",
  "incoming": 0,
  "outgoing": 0,
  "missed": 0,
  "notReached": 0
}


CategoryAnalyticsKpiDto

Aggregate totals for a single category over the whole requested range.

Поля

ПолеТипОбязательноеОписание
categoryCallSessionCategoryDtoда
incomingnumberда
outgoingnumberда
missednumberда
notReachednumberда

Пример

json
{
  "category": "<CallSessionCategoryDto>",
  "incoming": 0,
  "outgoing": 0,
  "missed": 0,
  "notReached": 0
}


CategoryAnalyticsResponseDto

Response of GET /Api/Calls/Analytics/ByCategory. Data lives under the result field.

Поля

ПолеТипОбязательноеОписание
resultCategoryAnalyticsResultDtoда

Пример

json
{
  "result": "<CategoryAnalyticsResultDto>"
}


CategoryAnalyticsResultDto

Поля

ПолеТипОбязательноеОписание
availableCategoriesPaginationFilterResult<CallSessionCategoryDto>[]да
totalCategoryAnalyticsTotalDtoда
chartCategoryAnalyticsChartPointDto[]да
kpiCategoryAnalyticsKpiDto[]да

Пример

json
{
  "availableCategories": [],
  "total": "<CategoryAnalyticsTotalDto>",
  "chart": [],
  "kpi": []
}


CategoryAnalyticsTotalDto

Aggregate across all categories: KPI totals + a per-day chart series.

Поля

ПолеТипОбязательноеОписание
incomingnumberда
outgoingnumberда
missednumberда
notReachednumberда
chartCategoryAnalyticsDayPointDto[]да

Пример

json
{
  "incoming": 0,
  "outgoing": 0,
  "missed": 0,
  "notReached": 0,
  "chart": []
}


CreateAgentRequestDto

Backend-источник: features.callcenterservice/Features.CallCenterService/Nuget.CallCenterApiClient/Dto/Agents/Requests/CreateAgentRequestDto.cs (features.callcenterservice).

Также определён в: integration.callcenternotification.

Поля

ПолеТип (TS)ОбязательноеОписаниеТип (C#)
userIdnumberдаUser id in User serviceint
webexAgentIdstringдаAgent id in Webex servicestring
userFullNamestringдаAgent full namestring
queuesAgentQueueRequestDto[]даQueue associations with joined statusList<AgentQueueRequestDto>

Пример

json
{
  "userId": 0,
  "webexAgentId": "uuid",
  "userFullName": "string",
  "queues": []
}


CreateCallRequestParam

Backend-источник: core.businesslogicservice/Core.BusinessLogicService/Nuget.BusinessApiClient/Dto/CallParams/Request/CreateCallRequestParam.cs (core.businesslogicservice).

Поля

ПолеТип (TS)ОбязательноеОписаниеТип (C#)
clientIdnumberдаИдентификатор клиента.int
callTypenumberдаТип звонкаint
commentstring | nullнетКомментарий к звонку (необязательное поле).string?

Пример

json
{
  "clientId": 0,
  "callType": 0,
  "comment": "string"
}


CreateCallSessionRequestDto

Backend-источник: features.callcenterservice/Features.CallCenterService/Nuget.CallCenterApiClient/Dto/CallSessions/Requests/CreateCallSessionRequestDto.cs (features.callcenterservice).

Поля

ПолеТип (TS)ОбязательноеОписаниеТип (C#)
phoneNumberstringдаstring
callDirectionCallDirectionDtoдаCallDirectionDto
externalEntityTypeCallSessionExternalEntityTypeDto | nullнет
externalEntityIdnumber | nullнет

Пример

json
{
  "phoneNumber": "+49123456789",
  "callDirection": "<CallDirectionDto>",
  "externalEntityType": "<callsessionexternalentitytypedto>",
  "externalEntityId": 0
}


GetAgentsRequestDto

Backend-источник: features.callcenterservice/Features.CallCenterService/Nuget.CallCenterApiClient/Dto/Agents/GetAgentsRequestDto.cs (features.callcenterservice).

Также определён в: integration.callcenternotification.

Поля

ПолеТип (TS)ОбязательноеОписаниеТип (C#)
paginationPaginationдаPagination

Пример

json
{
  "pagination": "<Pagination>"
}


GetCallsAnalyticsRequestDto

Backend-источник: features.callcenterservice/Features.CallCenterService/Nuget.CallCenterApiClient/Dto/Calls/Requests/GetCallsAnalyticsRequestDto.cs (features.callcenterservice).

Поля

ПолеТип (TS)ОбязательноеОписаниеТип (C#)
fromstring | nullнетDateOnly?
tostring | nullнетDateOnly?

Пример

json
{
  "from": "2026-05-05T08:00:00Z",
  "to": "2026-05-05T08:00:00Z"
}


GetCallSessionsRequestDto

Backend-источник: features.callcenterservice/Features.CallCenterService/Nuget.CallCenterApiClient/Dto/CallSessions/Requests/GetCallSessionsRequestDto.cs (features.callcenterservice).

Поля

ПолеТип (TS)ОбязательноеОписаниеТип (C#)
phoneNumberstring | nullнетstring?
withNoEndedAtboolean | nullнетbool?
sessionOutcomeFilterSessionOutcomeDto | nullнет
paginationPaginationдаPagination

Пример

json
{
  "phoneNumber": "+49123456789",
  "withNoEndedAt": false,
  "sessionOutcomeFilter": "<sessionoutcomedto>",
  "pagination": "<Pagination>"
}


GetCallsRequestDto

Filters for GET Api/Calls. Every field except pagination is optional — an absent field applies no condition.

The list unions two sources: calls, and the sessions an agent recorded without a call of their own. A filter on a column only calls have (queueIds, queueTypes, recallCreated, outcomeReason, webexCorrelationId) drops the session branch entirely, because a session cannot satisfy it.

This endpoint ignores pagination.sortBy: the union spans two id sequences, so rows are always ordered by their start time and only pagination.descending is honoured.

Backend-источник: features.callcenterservice/Features.CallCenterService/Nuget.CallCenterApiClient/Dto/Calls/Requests/GetCallsRequestDto.cs (features.callcenterservice).

Также определён в: integration.callcenternotification.

Поля

ПолеТип (TS)ОбязательноеОписаниеТип (C#)
phoneNumbersstring[]даPrefix match against either number of a call, or the single number of a session. Numbers are OR-ed together. callingPhoneNumber and calledPhoneNumber are the per-side forms. An empty array is indistinguishable from an absent field in a query string, so it means "no restriction" and returns every call. To show nothing for a contact without a phone number, skip the call instead of sending an empty array.List<string>?
fromstring | nullнетStart of the window, inclusive, as a local calendar day (YYYY-MM-DD).DateTime?
tostring | nullнетEnd of the window, inclusive, as a local calendar day (YYYY-MM-DD).DateTime?
answeredboolean | nullнетWhether the other side was reached. Read from the agent's session when there is one, otherwise from what Webex reported.bool?
missedboolean | nullнетInverse of answered, in either direction. Kept for compatibility.bool?
categoryCallSessionCategoryDto | nullнетSingle category. categories is the multi-select form.
callDirectionCallDirectionDto | nullнетSingle direction. callDirections is the multi-select form.
agentIdsnumber[]нетMatches calls and sessions handled by any of the listed agents.
queueIdsnumber[]нетMatches calls routed through any of the listed queues. Sessions have no queue.
queueTypesQueueTypeDto[]нетMatches calls whose queue is of any of the listed types. Sessions have no queue. This replaces the singular QueueType parameter the portal used to send, which the backend never read.
callDirectionsCallDirectionDto[]нетMulti-select form of callDirection.
categoriesCallSessionCategoryDto[]нетMulti-select form of category.
sessionOutcomesSessionOutcomeDto[]нетHow the agent judged the conversation.
sessionResultsSessionResultDto[]нетWhat the agent recorded as the result of the conversation.
callingPhoneNumberstringнетPrefix match on the originating number. A session stores one number for both sides, so it matches that number.
calledPhoneNumberstringнетPrefix match on the dialled number. A session stores one number for both sides, so it matches that number.
externalEntityTypesCallSessionExternalEntityTypeDto[]нетKind of entity the session was linked to.
externalEntityIdnumber | nullнетId of the linked entity. Applies on its own, without externalEntityTypes.
recallCreatedboolean | nullнетWhether a recall was created off the call. Set only by the inbound recall worker, so it is always false on outbound calls. Sessions do not carry it.
durationSecondsPaginationRangeFilter<number>нетRange over the length of the conversation in seconds. Calls and sessions that never finished are excluded.
createdAtPaginationRangeFilter<string>нетISO 8601 range over the creation timestamp of the record, not over when the call started.
outcomeReasonstringнетSubstring match on the outcome reason Webex reported. Sessions do not carry it.
commentstringнетSubstring match on the comment the agent left on the session.
webexCorrelationIdstringнетExact match on the Webex correlation id, for tracing a single call. Sessions do not carry it.
paginationPaginationдаPagination

Пример

json
{
  "phoneNumbers": [],
  "from": "2026-05-05T08:00:00Z",
  "to": "2026-05-05T08:00:00Z",
  "answered": false,
  "missed": false,
  "category": "<callsessioncategorydto>",
  "callDirection": "<calldirectiondto>",
  "agentIds": [],
  "queueIds": [],
  "queueTypes": [],
  "callDirections": [],
  "categories": [],
  "sessionOutcomes": [],
  "sessionResults": [],
  "callingPhoneNumber": "+49123456789",
  "calledPhoneNumber": "+49123456789",
  "externalEntityTypes": [],
  "externalEntityId": 0,
  "recallCreated": false,
  "durationSeconds": "<PaginationRangeFilter<number>>",
  "createdAt": "<PaginationRangeFilter<string>>",
  "outcomeReason": "string",
  "comment": "string",
  "webexCorrelationId": "uuid",
  "pagination": "<Pagination>"
}


GetCategoryAnalyticsRequestDto

Поля

ПолеТипОбязательноеОписание
fromstring | nullнет
tostring | nullнет
categoriesPaginationFilter<CallSessionCategoryDto>нет

Пример

json
{
  "from": "2026-05-05T08:00:00Z",
  "to": "2026-05-05T08:00:00Z",
  "categories": "<PaginationFilter<CallSessionCategoryDto>>"
}


PaginatedCallsResponseDto

Response of GET /Api/Calls. The paginated calls live under the result field.

Поля

ПолеТипОбязательноеОписание
resultPaginationResult<CallDto>да

Пример

json
{
  "result": "<PaginationResult<CallDto>>"
}


QueueAgentDto

Backend-источник: features.callcenterservice/Features.CallCenterService/Nuget.CallCenterApiClient/Dto/Queue/QueueAgentDto.cs (features.callcenterservice).

Поля

ПолеТип (TS)ОбязательноеОписаниеТип (C#)
idnumberдаint
joinedbooleanдаbool
createDateTimestringдаDateTimeOffset
updateDateTimestring | nullнетDateTimeOffset?
deleteDateTimestring | nullнетDateTimeOffset?
agentAgentSummaryDtoдаAgentSummaryDto

Пример

json
{
  "id": 0,
  "joined": false,
  "createDateTime": "2026-05-05T08:00:00Z",
  "updateDateTime": "2026-05-05T08:00:00Z",
  "deleteDateTime": "2026-05-05T08:00:00Z",
  "agent": "<AgentSummaryDto>"
}


QueueDto

Backend-источник: features.callcenterservice/Features.CallCenterService/Nuget.CallCenterApiClient/Dto/Queue/QueueDto.cs (features.callcenterservice).

Поля

ПолеТип (TS)ОбязательноеОписаниеТип (C#)
idnumberдаint
webexIdstringдаstring
webexExtensionstringдаstring
queueTypeQueueTypeDto | nullнетQueueTypeDto?
createDateTimestringдаDateTimeOffset
updateDateTimestring | nullнетDateTimeOffset?
deleteDateTimestring | nullнетDateTimeOffset?
queueAgentsQueueAgentDto[]даList<QueueAgentDto>

Пример

json
{
  "id": 0,
  "webexId": "uuid",
  "webexExtension": "string",
  "queueType": "<queuetypedto>",
  "createDateTime": "2026-05-05T08:00:00Z",
  "updateDateTime": "2026-05-05T08:00:00Z",
  "deleteDateTime": "2026-05-05T08:00:00Z",
  "queueAgents": []
}


QueueSummaryDto

Backend-источник: features.callcenterservice/Features.CallCenterService/Nuget.CallCenterApiClient/Dto/Queue/QueueSummaryDto.cs (features.callcenterservice).

Поля

ПолеТип (TS)ОбязательноеОписаниеТип (C#)
idnumberдаint
webexIdstringдаstring
webexExtensionstringдаstring
queueTypeQueueTypeDto | nullнетQueueTypeDto?
createDateTimestringдаDateTimeOffset
updateDateTimestring | nullнетDateTimeOffset?
deleteDateTimestring | nullнетDateTimeOffset?

Пример

json
{
  "id": 0,
  "webexId": "uuid",
  "webexExtension": "string",
  "queueType": "<queuetypedto>",
  "createDateTime": "2026-05-05T08:00:00Z",
  "updateDateTime": "2026-05-05T08:00:00Z",
  "deleteDateTime": "2026-05-05T08:00:00Z"
}


QueueTypeDto

Backend-источник: core.businesslogicservice/Core.BusinessLogicService/Nuget.BusinessApiClient/Dto/Recall/Enums/QueueTypeDto.cs (core.businesslogicservice).

Также определён в: features.callcenterservice, infrastructure.notificationservice, integration.callcenternotification.

Значения

ИмяЗначение (TS)ОписаниеКод (C#)
NotFound00
CallCenter111
CallCenter222
CallCenter333
CallCenter444
Outbound5

Пример

json
0


RecallActionDto

Значения

ИмяЗначениеОписание
Create1
Reschedule2
Cancel3

Пример

json
1


SessionOutcomeDto

Значения

ИмяЗначениеОписание
Positive1
Negative2
Interrupted3

Пример

json
1


SessionResultDto

Значения

ИмяЗначениеОписание
Other0
NoPflegegradAndUnwillingToSelfPay10
PflegegradApplicationJustStarted11
PriceOrAdditionalCostsNotAcceptable12
FearOfDataSharing13
WantsTimeToConsiderOrCompare14
CareByRelatives15
WrongFormFilledOut16
WantsCareSupervisionOrCooking17
TooManyHoursRequested18
OfferedScopeTooSmallNeedsPartTime19
OnlyEveningsOrWeekends20
AlreadyFoundAnotherJob21
DecidedAgainstHousekeepingWork22
AlreadyCooperatingWithOtherProviders23
NoSpaceForFlyers24
NegativePastExperience25
RejectionWithoutReason26
ContractTerminated27
VacationInquiry28
WantsFlyersAgain29
WantsNoMoreFlyers30

Пример

json
0


UpdateAgentRequestDto

Backend-источник: features.callcenterservice/Features.CallCenterService/Nuget.CallCenterApiClient/Dto/Agents/Requests/UpdateAgentRequestDto.cs (features.callcenterservice).

Также определён в: integration.callcenternotification.

Поля

ПолеТип (TS)ОбязательноеОписаниеТип (C#)
idnumberдаAgent Idint
userIdnumber | nullнетAgent user id from UserManagement serviceint?
userFullNamestring | nullнетAgent full namestring?
queuesAgentQueueRequestDto[]даQueue associations with joined statusList<AgentQueueRequestDto>

Пример

json
{
  "id": 0,
  "userId": 0,
  "userFullName": "string",
  "queues": []
}


UpdateCallSessionRecallDto

Поля

ПолеТипОбязательноеОписание
recallIdnumber | nullнетId существующего ожидающего (Waiting) перезвона (из recallService.GetActual). Обязателен для Reschedule / Cancel; отсутствует для Create.
actionRecallActionDtoдаЧто сделать: создать новый (Create; при наличии существующего — переносится), перенести (Reschedule) или отменить (Cancel) существующий перезвон
datestring | nullнетДата/время перезвона. Обязательно для Reschedule и Create, иначе игнорируется
commentstring | nullнетКомментарий к перезвону при Reschedule/Create

Пример

json
{
  "recallId": 0,
  "action": "<RecallActionDto>",
  "date": "2026-05-05T08:00:00Z",
  "comment": "string"
}


UpdateCallSessionRequestDto

Backend-источник: features.callcenterservice/Features.CallCenterService/Nuget.CallCenterApiClient/Dto/CallSessions/Requests/UpdateCallSessionRequestDto.cs (features.callcenterservice).

Поля

ПолеТип (TS)ОбязательноеОписаниеТип (C#)
idnumberдаint
callSessionCategoryCallSessionCategoryDto | nullнет
externalEntityTypeCallSessionExternalEntityTypeDto | nullнет
externalEntityIdnumber | nullнет
sessionOutcomeSessionOutcomeDto | nullнет
answeredbooleanда
sessionResultSessionResultDto | nullнет
recallUpdateCallSessionRecallDto | nullнетРешение по перезвону контакта. action=Create создаёт новый перезвон (при наличии существующего — переносит его), Reschedule / Cancel применяются к существующему ожидающему (Waiting) перезвону (recallId обязателен). Если не задано — поведение автоматическое: не дозвонились → сдвиг; оборвался → ближайший слот; позитив/негатив → текущий перезвон закрывается.
commentstring | nullнетstring?

Пример

json
{
  "id": 0,
  "callSessionCategory": "<callsessioncategorydto>",
  "externalEntityType": "<callsessionexternalentitytypedto>",
  "externalEntityId": 0,
  "sessionOutcome": "<sessionoutcomedto>",
  "answered": false,
  "sessionResult": "<sessionresultdto>",
  "recall": "<updatecallsessionrecalldto>",
  "comment": "string"
}


UpdateQueueAgentRequestDto

Backend-источник: features.callcenterservice/Features.CallCenterService/Nuget.CallCenterApiClient/Dto/Queue/Requests/UpdateQueueAgentRequestDto.cs (features.callcenterservice).

Поля

ПолеТип (TS)ОбязательноеОписаниеТип (C#)
idnumberдаint
agentIdnumberдаint
joinedbooleanдаbool

Пример

json
{
  "id": 0,
  "agentId": 0,
  "joined": false
}


UpdateQueueRequestDto

Backend-источник: features.callcenterservice/Features.CallCenterService/Nuget.CallCenterApiClient/Dto/Queue/Requests/UpdateQueueRequestDto.cs (features.callcenterservice).

Также определён в: integration.callcenternotification.

Поля

ПолеТип (TS)ОбязательноеОписаниеТип (C#)
idnumberдаint
queueTypeQueueTypeDtoдаQueueTypeDto
queueAgentsUpdateQueueAgentRequestDto[]даList<UpdateQueueAgentRequestDto>

Пример

json
{
  "id": 0,
  "queueType": "<QueueTypeDto>",
  "queueAgents": []
}