Получить отфильтрованные треды

Используйте этот метод для того, чтобы получить все возможности фильтрации тредов. У фильтра есть одно ограничение: интервал между параметрами 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
firstTimeAnswer
Operator
Оператор сравнения, указанный для параметра 
firstTimeAnswer.

Возможные опции: 

LESS
GREATER
EQUAL
LESS_EQUAL
GREATER_EQUAL
messageCountКоличество сообщений. Используется вместе с параметром messageCountOperator
messageCount
Operator
Оператор сравнения, указанный для параметра messageCount.

Возможные опции: 

LESS 
GREATER
EQUAL
LESS_EQUAL
GREATER_EQUAL
statesВозможные опции статуса треда. Каждая опции включает в себя несколько статусов треда:

— Опция QUEUED_STATESNEWUNASSIGNEDSUSPENDED 
— Опция WORKING_STATESASSIGNEDANSWER_NEEDEDWAITING
IN_PROGRESSREASSIGNED
— Опция CLOSED_STATESCLOSED.
channelsСписок ID каналов в edna. Чтобы получить список ID существующих каналов, обратитесь в службу поддержки или проверьте таблицу channels, если {edna} размещена на вашем сервере
emailAccountsСписок ID email аккаунтов. Если указать вместе с параметром channels, то в ответе вернется список тредов, соответствующих указанным channels, дополненный тредами, соответствующими указанным emailAccounts
operatorsСписок ID агентов
tagsIdsСписок ID ваших тегов в edna. Чтобы получить список существующих тегов, обратитесь в службу поддержки или проверьте таблицу tags, если edna размещена на вашем сервере
clientСтрока, использующаяся для того, чтобы найти клиента по externalClientIdnameusernameemail или 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
        }
    ]
}

Поля тела ответа

ПараметрТипОписание
countlongКоличество найденных тредов
pagelongНомер страницы
threadsarray of objectsСписок найденных тредов
threads[].idlongИдентификатор треда
threads[].startTimedateДата начала треда (когда было получено первое сообщение от клиента)
threads[].clientIdlongВнутренний идентификатор клиента в {edna} к которому привязан тред
threads[].clientNamestringИмя клиента к которому привязан найденный тред
threads[].clientPhonestringТелефонный номер клиента
threads[].externalClientIdstringВнешний идентификатор клиента во внешней системе
threads[].blockedbooleanПараметр, указывающий заблокирован ли клиент
threads[].operatorobjectОбъект, описывающий оператора, на которого назначен найденный тред
threads[].operator.idlongВнутренний идентификатор пользователя в {edna}
threads[].operator.namestringИмя пользователя
threads[].operator.rolestringРоль пользователя
threads[].operator.photoUrlstringСсылка на аватар пользователя
threads[].channelstringИмя канала к которому принадлежит найденный тред. Определяется по последнему сообщению в треде
threads[].initialChannelstringИмя канала через который пришло первое сообщение в треде
threads[].statestringСостояние найденного треда
threads[].tagsarray of objectsСписок тегов, назначенных треду
threads[].tags[].idlongВнутренний идентификатор тега в {edna}
threads[].tags[].namestringИмя тега
threads[].tags[].assignDatedateДата и время присвоения тега треду
threads[].tags[].parentTagobjectОбъект, описывающий родительский тег
threads[].questionAnswerlist of objectsСписок объектов, описывающих ответы на вопросы о качестве обслуживания
threads[].questionAnswer[].idlongИдентификатор ответа на вопрос о качестве обслуживания
threads[].questionAnswer[].ratestringЧисловая оценка качества обслуживания
threads[].questionAnswer[]
.useInKPI
booleanПараметр, указывающий на использование данной оценки при расчете показателя KPI оператора
threads[].questionAnswer[]
.changedByUser
objectОбъект, описывающий пользователя, которым был переключен параметр useInKPI
threads[].questionAnswer[]
.question
objectОбъект, описывающий вопрос о качестве обслуживания
threads[].questionAnswer[]
.qualityFormSendingId
longИдентификатор объекта, опиывающего отправку вопроса о качестве обслуживания
threads[].blockRequestedbooleanПараметр, указывающий запрошена ли блокировка клиента