Используйте этот метод для того, чтобы получить все возможности фильтрации тредов. У фильтра есть одно ограничение: интервал между параметрами start and end не может быть дольше, чем 90 дней.
Разрешения
---- Permissions:INTEGRATOR,SUPERVISOR ----
Пример curl
$ curl 'http://localhost:8080/api/v1/threads/filter?start=2022-11-
09T09%3A00%3A02.249Z&end=2022-11-
10T09%3A00%3A02.249Z&length=600&lengthOperator=GREATER&messageCount=3&messageCountOper
ator=GREATER_EQUAL&firstAnswerTime=1000&firstAnswerTimeOperator=LESS_EQUAL&states=CLOS
ED_STATES&channels=1&channels=2&operators=1&operators=2&operators=3&tagIds=1&tagIds=5&
page=1' -i -X GET \
-H 'Authorization: Bearer <integrator_token>'
Параметры строки запроса
| Параметр | Описание |
start | Начало интервала, в который должна попасть дата создания треда. Значение по умолчанию – текущая дата минус 1 день |
end | Конец интервала, в который должна попасть дата создания треда. Значение по умолчанию – текущая дата |
length | Длительность треда в секундах. Используется вместе с параметром lengthOperator |
lengthOperator | Оператор сравнения, указанный для параметра length. Возможные опции: • LESS • GREATER• EQUAL• LESS_EQUAL• GREATER_EQUAL |
firstTimeAnswer | Количество секунд до первого ответа агента в треде. Используется вместе с параметром firstTimeAnswerOperator |
firstTimeAnswerOperator | Оператор сравнения, указанный для параметра firstTimeAnswer. Возможные опции: • LESS• GREATER• EQUAL• LESS_EQUAL• GREATER_EQUAL |
messageCount | Количество сообщений. Используется вместе с параметром messageCountOperator |
messageCountOperator | Оператор сравнения, указанный для параметра messageCount. Возможные опции: • LESS • GREATER• EQUAL• LESS_EQUAL• GREATER_EQUAL |
states | Возможные опции статуса треда. Каждая опции включает в себя несколько статусов треда: – Опция QUEUED_STATES: NEW, UNASSIGNED, SUSPENDED – Опция WORKING_STATES: ASSIGNED, ANSWER_NEEDED, WAITING, IN_PROGRESS, REASSIGNED– Опция CLOSED_STATES: CLOSED. |
channels | Список ID каналов в edna. Чтобы получить список ID существующих каналов, обратитесь в службу поддержки или проверьте таблицу channels, если {edna} размещена на вашем сервере |
emailAccounts | Список ID email аккаунтов. Если указать вместе с параметром channels, то в ответе вернется список тредов, соответствующих указанным channels, дополненный тредами, соответствующими указанным emailAccounts |
operators | Список ID агентов |
tagsIds | Список ID ваших тегов в edna. Чтобы получить список существующих тегов, обратитесь в службу поддержки или проверьте таблицу tags, если edna размещена на вашем сервере |
client | Строка, использующаяся для того, чтобы найти клиента по externalClientId, name, username, email или phone |
page | Номер страницы. По умолчанию – 1 |
direction | Направление сортировки. По умолчанию – DESC |
Пример HTTP запроса
GET /api/v1/threads/filter?start=2022-11-09T09%3A00%3A02.249Z&end=2022-11- 10T09%3A00%3A02.249Z&length=600&lengthOperator=GREATER&messageCount=3&messageCountOper ator=GREATER_EQUAL&firstAnswerTime=1000&firstAnswerTimeOperator=LESS_EQUAL&states=CLOS ED_STATES&channels=1&channels=2&operators=1&operators=2&operators=3&tagIds=1&tagIds=5& page=1 HTTP/1.1 Authorization: Bearer <integrator_token> Host: localhost:8080
Пример HTTP ответа
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
Content-Length: 2516
{
"count": 5,
"pages": 1,
"threads": [
{
"id": 1,
"startTime": "2022-11-09T22:00:00.000Z",
"clientId": 1,
"clientName": "client name",
"clientPhone": "8-900-800-7060",
"externalClientId": "111",
"blocked": false,
"operator": {
"id": 1,
"name": "operator name",
"role": "OPERATOR",
"photoUrl": null
},
"channel": "WEB",
"initialChannel": null,
"state": "IN_PROGRESS",
"tags": [],
"questionAnswer": null,
"blockRequested": false
},
{
"id": 2,
"startTime": "2022-11-09T22:00:00.000Z",
"clientId": 1,
"clientName": "client name",
"clientPhone": "8-900-800-7060",
"externalClientId": "111",
"blocked": false,
"operator": {
"id": 1,
"name": "operator name",
"role": "OPERATOR",
"photoUrl": null
},
"channel": "WEB",
"initialChannel": null,
"state": "WAITING",
"tags": [],
"questionAnswer": null,
"blockRequested": false
},
{
"id": 3,
"startTime": "2022-11-09T22:00:00.000Z",
"clientId": 2,
"clientName": "client name 2",
"clientPhone": "8-900-800-7061",
"externalClientId": "222",
"blocked": false,
"operator": {
"id": 2,
"name": "operator name 2",
"role": "OPERATOR",
"photoUrl": null
},
"channel": "MOBILE",
"initialChannel": null,
"state": "REASSIGNED",
"tags": [],
"questionAnswer": null,
"blockRequested": true
},
{
"id": 4,
"startTime": "2022-11-09T22:00:00.000Z",
"clientId": 2,
"clientName": "client name 2",
"clientPhone": "8-900-800-7061",
"externalClientId": "222",
"blocked": false,
"operator": {
"id": 2,
"name": "operator name 2",
"role": "OPERATOR",
"photoUrl": null
},
"channel": "MOBILE",
"initialChannel": null,
"state": "ANSWER_NEEDED",
"tags": [],
"questionAnswer": null,
"blockRequested": true
},
{
"id": 5,
"startTime": "2022-11-09T22:00:00.000Z",
"clientId": 3,
"clientName": null,
"clientPhone": null,
"externalClientId": "3",
"blocked": true,
"operator": {
"id": 2,
"name": "operator name 2",
"role": "OPERATOR",
"photoUrl": null
},
"channel": "MOBILE",
"initialChannel": null,
"state": "WAITING",
"tags": [],
"questionAnswer": null,
"blockRequested": false
}
]
}
Поля тела ответа
| Параметр | Тип | Описание |
count | long | Количество найденных тредов |
page | long | Номер страницы |
threads | array of objects | Список найденных тредов |
threads[].id | long | Идентификатор треда |
threads[].startTime | date | Дата начала треда (когда было получено первое сообщение от клиента) |
threads[].clientId | long | Внутренний идентификатор клиента в {edna} к которому привязан тред |
threads[].clientName | string | Имя клиента к которому привязан найденный тред |
threads[].clientPhone | string | Телефонный номер клиента |
threads[].externalClientId | string | Внешний идентификатор клиента во внешней системе |
threads[].blocked | boolean | Параметр, указывающий заблокирован ли клиент |
threads[].operator | object | Объект, описывающий оператора, на которого назначен найденный тред |
threads[].operator.id | long | Внутренний идентификатор пользователя в {edna} |
threads[].operator.name | string | Имя пользователя |
threads[].operator.role | string | Роль пользователя |
threads[].operator.photoUrl | string | Ссылка на аватар пользователя |
threads[].channel | string | Имя канала к которому принадлежит найденный тред. Определяется по последнему сообщению в треде |
threads[].initialChannel | string | Имя канала через который пришло первое сообщение в треде |
threads[].state | string | Состояние найденного треда |
threads[].tags | array of objects | Список тегов, назначенных треду |
threads[].tags[].id | long | Внутренний идентификатор тега в {edna} |
threads[].tags[].name | string | Имя тега |
threads[].tags[].assignDate | date | Дата и время присвоения тега треду |
threads[].tags[].parentTag | object | Объект, описывающий родительский тег |
threads[].questionAnswer | list of objects | Список объектов, описывающих ответы на вопросы о качестве обслуживания |
threads[].questionAnswer[].id | long | Идентификатор ответа на вопрос о качестве обслуживания |
threads[].questionAnswer[].rate | string | Числовая оценка качества обслуживания |
threads[].questionAnswer[].useInKPI | boolean | Параметр, указывающий на использование данной оценки при расчете показателя KPI оператора |
threads[].questionAnswer[].changedByUser | object | Объект, описывающий пользователя, которым был переключен параметр useInKPI |
threads[].questionAnswer[].question | object | Объект, описывающий вопрос о качестве обслуживания |
threads[].questionAnswer[].qualityFormSendingId | long | Идентификатор объекта, опиывающего отправку вопроса о качестве обслуживания |
threads[].blockRequested | boolean | Параметр, указывающий запрошена ли блокировка клиента |