06.04.2026 22:55

SetParticipants

[POST] .../v1/chat/setparticipants

Добавляет или обновляет участников чата.

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

Название Тип данных Обязательность Описание
id String Обязательный UUID чата
participants Array of ChatParticipantAddEdit Обязательный Список участников для добавления/обновления
ChatParticipantAddEdit
Название Тип данных Описание
entity_type Enum Тип участника: User, Client
entity_id Int64 ID сущности участника
role Enum Роль участника: Staff или Member

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

  • id должен быть корректным UUID существующего чата.
  • participants обязателен и должен содержать хотя бы одного участника.
  • Для каждого участника обязательны корректные entity_type, entity_id и role (entity_id > 0).
  • В participants не должно быть дубликатов одной и той же пары (entity_type + entity_id).
  • Через Chat/SetParticipants нельзя добавлять ChatBot (используется Chat/AddBot).
  • Существующие ChatBot этим методом не изменяются и сохраняются в чате.
  • На сервере роль нормализуется по типу участника: User -> Staff, Client -> Member.
  • Метод доступен только участнику чата с ролью Staff.
  • Для пользователей с правом chat_manage_all (688) метод также доступен в обычных чатах.
  • Для entity-чатов (Task/Lead/Deal/Ticket) прямое изменение состава участников через этот метод запрещено.
  • Для entity-чатов обратная синхронизация из Chat/* в сущность не выполняется; состав берется только из связанной сущности.
  • Метод выполняет полную замену состава участников чата на переданный список.
  • Для участников, которые уже состояли в чате, персональная read-история не сбрасывается.

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

{
  "id": "6f6fdb2f-7d0b-4c34-b6fd-1fbcf40d37ef",
  "participants": [
    {
      "entity_type": "User",
      "entity_id": 31,
      "role": "Member"
    }
  ]
}

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

Название Тип данных Описание
result.row_affected Int64 Количество измененных строк

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

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