Поиск диалогов через API Sherlock Platform

Последние изменения: 07.07.2023

Для поиска диалогов в Sherlock Platform сначала надо авторизоваться.

Далее необходимо вызвать метод GET контроллера Request https://<sherlock_url>/API/V2/Request?<Параметры>. Полученный ранее токен надо передать в заголовке как Bearer Token.

В качестве параметров в метод передаются различные условия фильтрации (все параметры являются опциональными):

  • pageSize - количество возвращаемых записей

  • skip - номер записи с которой надо загружать диалоги. 0 - для загрузки с первой записи

  • requestId - ID диалога для загрузки данных конкретного диалога.

  • keywords - ключевые слова для фильтрации диалога

  • startDate, endDate - задают период диалога по дате создания для фильтрации

  • userProfileId, userProfileIds- отдельный идентификатор канала диалога или список id каналов

  • responsibleId - идентификатор оператора, ответственного за диалог

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

 Например:

  • Для получения всех диалогов за последние 20 минут в запросе надо указать параметр startDate={текущая дата и время - 20 минут}

  • Для выбора диалогов по статусу требуемые статусы нужно указать списком в параметре RequestStatusIds 

Детальное описание параметров постраничного разбиения описаны в статье.

Метод возвращает json с массивом диалогов. По каждому диалогу возвращается следующая информация:

[
 {
 "id": "<Guid>",
 "clientId": "<Guid>",
 "number": 4,
 "date": "2020-05-20T05:24:14.233",
 "requestStatusId": "30db120e-15f0-40e5-b167-0de43d637eea",
 "note": "",
 "lastMessageDate": "2020-06-06T19:01:39.433",
 "lastMessageId": "2c186d84-79d9-4950-a693-6b4e22c5bd21",
 "lastMessageText": "[Русский]",
 "lastMessageDisplayText": "",
 "lastMessageStatusId": 2,
 "lastMessageDirectionId": 2,
 "lastMessageCategoryId": 1,
 "requestCategoryId": 1,
 "lastMessageAuthorPhotoUrl": "",
 "requestTypeId": "12d640ae-d8f7-4281-a56a-9f54fbc3bc72",
 "responsibleId": null,
 "qualityGrade": null,
 "closedAt": null,
 "isFileAttach": false,
 "queueId": "872d2860-e7b9-408a-a144-0a3e04b21f1b",
 "requestPriorityId": "39d8892d-5eef-4d37-9958-41c7d4149f61",
 "lastMessageInId": "6d6fcd4b-9dbc-401b-a952-c9be9a4fe6fd",
 "lastMessageOutId": "2c186d84-79d9-4950-a693-6b4e22c5bd21",
 "socialNetworkMessengerId": "e0e90585-2001-46e2-912e-4bbf41a3eb0f",
 "channelType": "VKontakteGroup",
 "lastMessageAttachmentName": "",
 "userProfileId": "<Guid>",
 "groupProfile": "",
 "groupCaption": "",
 "groupImage": "",
 "groupDescription": "",
 "lastMessageInDate": "2020-06-06T19:01:31.08",
 "postId": null,
 "clientName": "Виталий тест",
 "clientPhotoUrl": "https://app.sherlockcrm.ru/API/SherlockTest//Files/Photo/i2VJ_F5zaOQ.jpg",
 "clientInitials": "ВТ",
 "clientBackgroundColor": "#cc90e2",
 "responsibleFullName": null,
 "requestStatusTitle": "Передан в очередь",
 "requestStatusColor": "#feb113",
 "lastMessageTimestamp": 1591470099,
 "requestPriorityOrder": 500,
 "unreadMessage": 1,
 "currentDateTime": "2020-06-06T19:01:40.4492661Z"
 }
]

Дополнительно метод позволяет получить расширенные и статистические данные по диалогам. Для этого необходимо передать еще параметр IsIncludeExtendedData=true. В этом случае для каждого диалога будут включаться следующие дополнительные реквизиты:

"clientComment": "",
"requestTypeTitle": "Консультация",
"requestReason": [],
"firstQueueStartDate": "2021-01-15T17:54:22.807",
"dialogWorkingDate": "2021-01-15T17:54:22.64",
"firstOperatorAssignedDate": "2021-01-15T17:54:25.403",
"firstResponsibleId": "cbefd178-d7c3-4b4e-b363-56685605108e",
"firstQueueWaitingTime": 3,
"firstQueueWaitingWorkingTime": 3,
"operatorFirstMessageDate": "2021-01-15T17:54:52.57",
"operatorReactionTime": 27,
"firstAnswerTime": 30,
"averageOperatorAnswerTime": null,
"averageClientAnswerTime": null,
"operatorLastMessageDate": "2021-01-15T18:01:18.663",
"totalDialogTime": null,
"totalDialogWorkingTime": null,
"totalOperatorTime": null,
"mainResponsibleId": null

Описание данных полей приведено ниже:

  1. id - уникальный идентификатор диалога

  2. clientId - идентификатор внешнего клиента, который пишет вам в чате или мессенджере

  3. number - номер диалога, задаваемый ботом (если настроено)

  4. date - дата/время начала диалога в UTC

  5. requestStatusId - статус диалога по справочнику статусов. . Актуальный список возвращает метод GET /API/v2/RequestStatuses

  6. note - комментарий пользователя к диалогу. Может быть отражен и редактироваться в правом столбце модуля Диалоги

  7. lastMessageDate - дата/время последнего сообщения в диалоге в UTC

  8. lastMessageId - идентификатор последнего сообщения в диалоге

  9. lastMessageText - текст последнего сообщения. Используется для вывода в списке диалогов

  10. lastMessageDisplayText - обработанный текст последнего сообщения. Используется для вывода в списке диалогов

  11. lastMessageStatusId - статус последнего сообщения

    • 1 - Запланирован

    • 2 - Не прочитано

    • 3 - Прочитано

    • 4 - В очереди

    • 5 - Ошибка

    • 6 - Удален

  12. lastMessageDirectionId - направление последнего сообщения

    • 1 - входящее

    • 2 - исходящее

  13. lastMessageCategoryId - категория последнего сообщения

    • 1 - Личное сообщение

    • 2 - Комментарий. Не отражается клиенту

    • 3 - Кнопки

    • 4 - Статус диалога

    • 5 - Сообщение рассылки

    • 6 - Сервисное сообщение

    • 7 - Слайдер

  14. requestCategoryId - категория диалога

    • 1 - Личный диалог

    • 2 - Групповой диалог

    • 3 - Стена

    • 4 - Внутренний диалог

    • 5 - Рассылки 

  15. lastMessageAuthorPhotoUrl - фото автора последнего сообщения для вывода в списке диалогов

  16. requestTypeId - тип диалога по справочнику типов сообщений. Актуальный список возвращает метод GET /API/v2/RequestType

  17. responsibleId - идентификатор оператора. ответственного за диалог

  18. qualityGrade - целочисленная оценка по диалогу, оставленная клиентом

  19. closedAt - дата финального закрытия/архивирования диалога

  20. isFileAttach - наличие вложений в последнем сообщении диалога

  21. queueId - текущая очередь диалога. Актуальный список возвращает метод GET /API/v2/Queues

  22. requestPriorityId - приоритет диалога, используемый в алгоритме распределения очередью

  23. lastMessageInId - идентификатор последнего входящего сообщения в диалоге

  24. lastMessageOutId - идентификатор последнего исходящего сообщения в диалоге

  25. socialNetworkMessengerId - идентификатор типа канала. Актуальный список возвращает метод GET /API/v2/SocialNetworkMessenger

  26. channelType - код типа канала. Актуальный список возвращает метод GET /API/v2/SocialNetworkMessenger 

  27. lastMessageAttachmentName - название вложения в последнем сообщении. Используется для вывода в списке диалогов

  28. userProfileId - идентификатор канала в Sherlock. Актуальный список возвращает метод GET /API/v2/UserProfile

  29. groupProfile - профиль в социальной сети для группового диалога. Зарезервировано для дальнейшего использования. Сейчас используется в Одноклассниках

  30. groupCaption - заголовок группы. Зарезервировано для дальнейшего использования

  31. groupImage - аватар группы. Зарезервировано для дальнейшего использования

  32. groupDescription - описание группы. Зарезервировано для дальнейшего использования

  33. lastMessageInDate - дата/время последнего входящего сообщения в диалоге в UTC

  34. postId - идентификатор публикации на стене. Используется для обработки комментариев

  35. clientName - имя клиента для вывода в списке диалогов

  36. clientPhotoUrl - фото клиента для вывода в списке диалогов

  37. clientInitials - инициалы клиента для вывода в списке диалогов

  38. clientBackgroundColor - цвет аватарки клиента для вывода в списке диалогов

  39. responsibleFullName - имя ответственного оператора

  40. requestStatusTitle - текстовое значение статуса диалога

  41. requestStatusColor - цвет для статуса диалога

  42. lastMessageTimestamp - timestamp последнего сообщения для быстрой сортировки

  43. requestPriorityOrder - порядок диалога в соответствии с приоритетом. Используется для сортировки в списке диалогов

  44. unreadMessage - количество непрочитанных сообщений в диалоге при просмотре оператором

  45. currentDateTime - текущее серверное время. 

  46. clientComment - комментарий пользователя к клиенту. Может быть отражен и редактироваться в правом столбце модуля Диалоги

  47. requestTypeTitle - текстовое значение типа диалога

  48. requestReason - причины обращения, указанные для диалога. Актуальный список значений справочника возвращает метод GET /API/v2/RequestReason

  49. firstQueueStartDate - дата/время в UTC первой постановки диалога в очереди. Используется для построения отчетов

  50. dialogWorkingDate - дата/время в UTC начала диалога с учетом рабочего графика. Используется для построения отчетов

  51. firstOperatorAssignedDate - дата/время в UTC назначения первого оператора. Используется для построения отчетов

  52. firstResponsibleId - первый ответственный оператор для диалога. Для бота не указывается

  53. firstQueueWaitingTime - длительность ожидания в первой очереди в секундах

  54. firstQueueWaitingWorkingTime - длительность ожидания в первой очереди в секундах с учетом рабочего графика

  55. operatorFirstMessageDate - дата/время в UTC первого сообщения оператора в диалоге. Используется для построения отчетов

  56. operatorReactionTime - время ответа оператора в секундах после передачи диалога оператору

  57. firstAnswerTime - время первого ответа в секундах

  58. averageOperatorAnswerTime - средняя скорость ответа оператора на сообщения в секундах

  59. averageClientAnswerTime - средняя скорость ответов клиента на сообщения в секундах

  60. operatorLastMessageDate - дата/время в UTC последнего сообщения оператора в диалоге. Используется для построения отчетов

  61. totalDialogTime - общая длительность диалога в секундах

  62. totalDialogWorkingTime - общая длительность диалога в секундах в рабочее время

  63. totalOperatorTime - общая длительность работы оператора с диалогом в секундах

  64. mainResponsibleId - оператор, который провел в диалог больше всего времени. Зарезервировано и сейчас не рассчитывается

 

Помогла ли вам статья?