04.07.2026 13:01

MarkRead

[POST] .../v1/chatmessage/markread

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

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

Название Тип данных Обязательность Описание
chat_id String Обязательный UUID чата
last_read_message_id String Необязательный UUID последнего сообщения, до которого нужно отметить сообщения прочитанными включительно

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

  • chat_id обязателен и должен быть корректным UUID чата.
  • Если last_read_message_id передан, он должен быть UUID неудаленного сообщения из указанного чата, доступного текущему пользователю для чтения.
  • Метод работает только для текущего пользователя (из текущей сессии API).
  • Для обычных чатов проверяется право chat_message_select (684).
  • Для чатов, связанных с Lead/Deal/Ticket/Task, доступ наследуется от сущности: Select у сущности заменяет chat_message_select.
  • Закрытие чата (closed = true) не блокирует чтение и отметку прочитанности.
  • Если last_read_message_id не передан, помечаются все доступные непрочитанные и не удаленные сообщения текущего пользователя.
  • Если last_read_message_id передан, помечаются доступные непрочитанные и не удаленные сообщения текущего пользователя до указанного сообщения включительно.
  • Staff-ограниченные сообщения (Private и System с action_code = StaffNoticeAdded) помечаются как прочитанные только пользователям, которым разрешен их просмотр.
  • Для пользователя с правом chat_manage_all (688) без участия в чате история прочтения не ведется: метод возвращает row_affected = 0.
  • Если были изменены строки прочтения, публикуется событие ChatMessageRead с chat_id, user_id, last_read_message_id и row_affected.
  • В payload события last_read_message_id содержит переданную границу прочтения, а если она не была передана - самое новое сообщение, которое было помечено прочитанным этим вызовом.

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

{
  "chat_id": "6f6fdb2f-7d0b-4c34-b6fd-1fbcf40d37ef",
  "last_read_message_id": "8a7fbf46-6df6-4998-a3f4-c5a6b6cc5f6c"
}

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

Название Тип данных Описание
result.row_affected Int64 Количество измененных строк
result.ids Array Всегда null для этого метода

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

{
  "ok": true,
  "result": {
    "row_affected": 12,
    "ids": null
  }
}