
## User-события (ONIMV2*)

Общий первый шаг — подписка: [`POST /v1/chats/events/subscribe`](/docs/chats/events/subscribe) (скоуп `im`, не `imbot`). Без активной подписки Битрикс24 не регистрирует пользовательские события.

Дальше события забирают одним из двух способов:

1. **Вместе с bot-событиями** — передать `withUserEvents=true` в [polling бота](/docs/bots/events/polling). Bot-события (`ONIMBOTV2*`) и user-события (`ONIMV2*`) приходят в одном массиве `events`.
2. **Отдельным опросом от имени пользователя** — [`GET /v1/chats/events`](/docs/chats/events/poll). Не требует зарегистрированного бота, подходит для агентов, работающих от имени пользователя.

## Список событий

| Событие | Описание |
|---------|---------|
| [ONIMV2MESSAGEADD](#onimv2messageadd) | Новое сообщение в подписанном чате |
| `ONIMV2MESSAGEUPDATE` | Сообщение отредактировано |
| `ONIMV2MESSAGEDELETE` | Сообщение удалено |
| `ONIMV2JOINCHAT` | Участник зашёл в чат |
| `ONIMV2REACTIONCHANGE` | Реакция изменена |

## ONIMV2MESSAGEADD

Новое сообщение в подписанном чате. Объект `message` совпадает по составу с событиями ботов, но ключи внутри `params` — в camelCase.

```json
{
  "eventId": 46,
  "type": "ONIMV2MESSAGEADD",
  "date": "2026-04-13T17:15:14+03:00",
  "data": {
    "message": {
      "id": 1520,
      "chatId": 123,
      "authorId": 17,
      "text": "Да, согласен",
      "isSystem": false,
      "forward": null,
      "params": { "replyId": "1518" }
    },
    "chat": { "id": 123, "dialogId": "chat123", "type": "chat", "name": "Рабочий чат" },
    "user": { "id": 17, "name": "Иван Петров", "type": "user" },
    "language": "ru"
  }
}
```

**Поля data:**

| Поле | Тип | Описание |
|------|-----|---------|
| `message.id` | number | ID сообщения |
| `message.text` | string | Текст сообщения |
| `message.authorId` | number | ID автора |
| `message.params.replyId` | string | Ответ на сообщение: ID процитированного сообщения |
| `chat.dialogId` | string | ID диалога |
| `user` | object | Автор сообщения (`id`, `name` и др.) |
| `language` | string | Язык интерфейса пользователя |

## Известные особенности

**Отдельный скоуп:** [подписка](/docs/chats/events/subscribe) и [отписка](/docs/chats/events/unsubscribe) требуют скоуп `im`, а не `imbot`.

## Смотрите также

- [Получить события](/docs/bots/events/polling)
- [Получить пользовательские события](/docs/chats/events/poll)
- [Bot-события](/docs/bots/events/bot-events)
- [Бот-платформа](/docs/bots)
