Действия с чатом

Чтобы включить запросы, связанные с чатом, отметьте чекбоксы, запросы по которым должны приходить, на странице настройки API-канала (Каналы → Канал API → Блок «Отслеживание чатов»). Это могут быть:

  • новый чат: запрос уведомляет о создании нового чата, то есть о первом сообщении в нём;
  • все сообщения чата: запрос уведомляет о создании всех последующих сообщений в чате;
  • возобновление чата: запрос уведомляет о том, что чат был переоткрыт новым сообщением, если чат был завершён до этого.


Все запросы основаны на одном и том же теле запроса с опорным параметром "chat_id". Если "chat_id" уже был создан при одном из запросов, новые сообщения и возобновление чата работают в нужном чате, ориентируясь на этот параметр.

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

ПараметрЗначение

chat_id

id чата
textТекст сообщения
client_idid клиента
client

Информация о клиенте. Содержит параметры:

  • id
  • name – имя
  • avatar – аватар
  • note – заметка
  • emails – почта
  • phones — телефон
  • additional_ids – дополнительный идентификатор
from

От лица кого было написано сообщение

  • user — агент
  • client — клиент

Важно: если сообщение отправлено через правило (бота), вебхук о новом сообщении отправлен не будет. Будет отправлен вебхук об изменении запроса.

platform

Тип канала, с которой был создан чат. Возможные типы:

  • usedesk_tg — телеграм
secretid приложения
idid запроса
status_id

id статуса запроса.

Перечень возможных статусов:

  • 1 (открыт)
  • 2 (выполнен)
  • 3 (закрыт)
  • 4 (удален)
  • 5 (на удержании)
  • 6 (в ожидании)
  • 7 (спам)
  • 8 (новый)
  • 9 (рассылка)
  • 10 (объединён)
subject

Тема запроса

client_idid клиента
assignee_idid исполнителя (агента)
groupid группы исполнителя
last_updated_atДата последнего изменения запроса
channel_idid канала
emailПочта клиента, с которой он написал
published_atДата создания запроса
company_idid компании (аккаунта), из которой пришел вебхук
additional_idДополнительный идентификатор запроса
messageТекст первого сообщения запроса
filesСсылка на файл, прикреплённый к сообщению или отправленный как сообщение
custom_fields

Список полей и их значения. Отправляется только при изменении хотя бы одного из доп. полей.

Содержит параметры:

  • id — id доп. поля
  • name — название доп. поля
  • value — значение доп. поля
custom_blocks

Список доп. блоков системы, который содержит параметры:

  • name — название блока
  • url — url блока
  • secret_key — секретный токен блока
state

Статус чата, если изменился

  • new — новый
  • reopened — переоткрытый
  • closed — закрытый

Если статус чата не изменился — "null"


Пример ответа от сервера
{
    "chat_id": 1962066, 
    "text": "привет", 
    "client_id": 4476034, 
    "client": {
      "id": 4476034,
      "name": "Юля Шовгеня",
      "avatar": "/upload/avatars/123.jpg",
      "note": "есть кредит",
      "emails": [
         {
           "email": "shy@usedesk.ru",
           "client_id": 4476034
         },
         {
           "email": "ylia-8322247@mail.ru",
           "client_id": 4476034
         }
       ],
      "phones": [
         {
           "phone": "79254697403",
           "type": "home",
          "client_id": 4476034
         }
       ],
      "additional_ids": [
         {
           "value": "99999",
           "client_id": 4476034
         }
       ]
     },
    "from": "client", 
    "platform": "usedesk_tg",
    "secret": "***", 
    "ticket": 
    {
        "id": 10264808,
        "status_id": 8,
        "subject": "Арахис — это орех",
        "client_id": 4476034,
        "assignee_id": null,
        "group": null,
        "last_updated_at": "2018-05-11 14:17:12",
        "channel_id": 4242,
        "email": null,
        "published_at": "2018-05-11 14:17:12",
        "company_id": 155568,
        "additional_id": 23,
        "message": "Необъяснимо, но факт.",
        "files": [
      "https://secure.usedesk.ru/v2/files/153712/68977353/249358488/get-file?key=RGh1WDRMNGRzSVQ0VzJVT0NTYW5kdz09Ojoh7gEtjMrY29NOBS8QyIHQ&filter_name=0"
    },
    "state": null
}