31.05.2026 00:00

Get

[POST] .../v1/chat/get

Возвращает список чатов с возможностью фильтрации и пагинации.

Входные параметры

Название Тип данных Обязательность Описание
ids Array of String Необязательный Массив UUID чатов
external_id String Необязательный Внешний идентификатор чата для точной фильтрации
participant_entity_type Enum Необязательный Тип участника для фильтра (User, Client, ChatBot)
entity_type Enum Необязательный Тип связанной бизнес-сущности чата (Task, Lead, Deal, Ticket)
participant_entity_id Int64 Необязательный ID участника для фильтра
search String Необязательный Поиск по названию чата
closed Boolean Необязательный Фильтр по признаку закрытия чата
archived Boolean Необязательный Фильтр по признаку архивации чата текущим пользователем
pinned Boolean Необязательный Фильтр по признаку закрепления чата текущим пользователем
sort_orders Array of Object Необязательный Массив сортировок { column, direction }
limit Int32 Необязательный Лимит элементов выборки
offset Int32 Необязательный Смещение выборки

Ограничения и проверки

  • Фильтры participant_entity_type и participant_entity_id работают независимо и могут передаваться по отдельности.
  • Фильтр external_id выполняет точное сравнение по полю ctlg_cht_chats_ref.chtc_external_id; пустая строка игнорируется.
  • Для participant_entity_id допустимы только значения больше 0.
  • При передаче closed выполняется фильтрация по признаку закрытия чата.
  • При передаче archived или pinned фильтрация выполняется по персональному состоянию чата текущего пользователя.
  • Фильтрация по participant_entity_type выполняется по таблице участников чата (ctlg_cht_participants_ref).
  • Фильтрация по participant_entity_id выполняется по таблице участников чата (ctlg_cht_participants_ref).
  • Фильтрация по entity_type выполняется по полю ctlg_cht_chats_ref.chtc_entity_type (чаты, связанные с бизнес-сущностями).
  • Если передан только participant_entity_id (без participant_entity_type), фильтрация выполняется только по таблице участников чата.
  • Параметр limit ограничивается серверным максимумом; при слишком большом значении используется допустимый предел.
  • Отрицательное значение offset автоматически приводится к 0.
  • Поиск по search применяется только если строка соответствует минимальной длине, заданной на сервере.
  • Сортировка применяется только если передан массив sort_orders.
  • Если sort_orders не передан или в нем нет валидных элементов, ORDER BY не добавляется.
  • Допустимые значения sort_orders[].column: name, last_message_date, last_update, created_user_id, id.
  • Допустимые значения sort_orders[].direction: ASC, DESC.
  • Возвращаются только чаты, где текущий пользователь является активным участником чата или имеет доступ к связанной сущности.
  • В выборку не попадают удаленные чаты (chtc_deleted = 0).
  • Для обычных (не entity-bound) чатов пользователь с правом chat_manage_all (688) может читать чат без участия; в этом режиме unread_count = 0.
  • Для чатов, связанных с Lead/Deal/Ticket/Task, право Select у сущности дает сотруднику доступ к чату, обычным и staff/private сообщениям.
  • Для Task-чатов используются права project_task_select, project_task_manage_all; crm_manage_all на task-чаты не распространяется.
  • Поле last_message_text заполняется текстом последнего видимого сообщения: для staff-only сообщений (Private, System + StaffNoticeAdded) не-Staff получает текст ближайшего доступного сообщения либо null.

Пример запроса

{
  "external_id": "support-chat-501",
  "participant_entity_type": "User",
  "participant_entity_id": 15,
  "search": "поддержка",
  "sort_orders": [
    { "column": "last_message_date", "direction": "DESC" },
    { "column": "name", "direction": "ASC" }
  ],
  "limit": 20,
  "offset": 0
}

Выходные параметры

Название Тип данных Описание
result Array of Chat Массив чатов
next_offset Int32 Смещение для следующей страницы
total Int64 Общее количество элементов

Пример ответа

{
  "ok": true,
  "result": [
    {
      "id": "6f6fdb2f-7d0b-4c34-b6fd-1fbcf40d37ef",
      "name": "Чат клиентской поддержки",
      "logo_url": "https://example.com/chat/logo.png",
      "external_id": "support-chat-501",
      "last_message_id": "9beec41f-6ef5-4e87-b4ea-05895cff2c54",
      "last_message_date": 1762011120,
      "last_message_text": "Здравствуйте, подскажите по заказу #501",
      "created_user_id": 15,
      "last_update": 1762011120,
      "closed": false,
      "closed_date": null,
      "entity_type": "Task",
      "entity_id": 501,
      "unread_count": 3,
      "muted": false,
      "archived": false,
      "pinned": true,
      "participants": []
    }
  ],
  "next_offset": 20,
  "total": 1
}