Объекты и поля чат-ботов 2.0
Выберите инструмент для разработки с AI-агентом:
- используйте Битрикс24 Вайбкод, чтобы создать приложение для Битрикс24 по описанию задачи без знания языков программирования. Агент напишет код и разместит приложение на сервере без ручной настройки хостинга
- используйте MCP-сервер, чтобы разрабатывать интеграцию через REST API в своем проекте. Агент будет обращаться к официальной REST-документации
Пользователь, бот, чат, сообщение, файл и команда приходят в ответах методов im.v2 и imbot.v2, в данных событий и в webhook-уведомлениях.
Быстрый переход: User | Bot | Chat | Message | File | Command
Типы полей зависят от того, откуда пришел объект:
- ответ метода или событие из
Event.getв режимеfetch— типы сохраняются как есть - событие в режиме
webhook— все скалярные значения приходят строками:integer→"123",boolean→"1"/"0". Поля со значениемnullи пустые массивы в данные события не попадают
В событиях онлайн-поля объекта User — idle, lastActivityDate, mobileLastDate, desktopLastDate — всегда равны false.
User
Пользователь системы. Возвращается в полях user и в коллекциях users.
|
Поле |
Описание |
|
id |
Уникальный идентификатор пользователя |
|
active |
Активен ли пользователь в системе |
|
name |
Полное имя |
|
firstName |
Имя. |
|
lastName |
Фамилия. |
|
workPosition |
Должность или |
|
color |
Цвет аватара-заглушки в формате HEX, например |
|
avatar |
URL аватара. Пустая строка, если аватар не установлен |
|
gender |
Пол: |
|
birthday |
Дата рождения. Пустая строка, если не указана |
|
extranet |
Является ли пользователь экстранет-пользователем |
|
bot |
Является ли пользователь ботом |
|
connector |
Является ли пользователь коннектором Открытых линий |
|
externalAuthId |
Тип внешней авторизации: |
|
status |
Статус пользователя. В ответах методов |
|
idle |
Время начала бездействия в формате ISO 8601, или |
|
lastActivityDate |
Дата последней активности в формате ISO 8601, или |
|
mobileLastDate |
Дата последнего входа с мобильного в формате ISO 8601, или |
|
desktopLastDate |
Дата последнего входа с десктопа в формате ISO 8601, или |
|
absent |
Дата и время возвращения из отпуска в формате ISO 8601. Это следующий день после окончания отпуска. |
|
departments |
Массив ID отделов |
|
phones |
Телефоны пользователя или |
|
type |
Тип пользователя, например |
|
internalAccount |
Внутренняя учетная запись Битрикс24 |
|
intranetUser |
Пользователь интранета — сотрудник компании |
|
website |
Персональный сайт |
|
email |
|
Пример объекта User
В примере показаны не все поля.
{
"id": 1,
"active": true,
"name": "John Smith",
"firstName": "John",
"lastName": "Smith",
"workPosition": "Developer",
"color": "#df532d",
"avatar": "",
"gender": "M",
"birthday": "",
"extranet": false,
"bot": false,
"connector": false,
"externalAuthId": "default",
"status": "online",
"idle": false,
"lastActivityDate": "2025-01-15T10:29:00+03:00",
"absent": false,
"departments": [1, 5],
"phones": false,
"type": "user",
"website": "",
"email": "john@example.com"
}
Bot
Чат-бот. Возвращается в поле bot ответа imbot.v2.Bot.get, в массиве bots ответа imbot.v2.Bot.list, а также в данных событий.
Объект приходит в двух форматах: краткий содержит общие поля, расширенный — еще и поля, которые видит только владелец бота. В событиях режима webhook приходит третий формат с полями id, code и auth. Он описан в разделе Формат объекта bot.
Общие поля
|
Поле |
Описание |
|
id |
ID пользователя-бота |
|
code |
Уникальный строковый код бота |
|
type |
Тип бота. Описание типов — Типы ботов |
|
isHidden |
Скрыт ли бот из списка контактов |
|
isSupportOpenline |
Поддерживает ли бот работу с Открытыми линиями |
|
isReactionsEnabled |
Включены ли реакции на сообщения бота |
|
backgroundId |
ID фона чата бота или |
|
language |
Язык бота по умолчанию, например |
Дополнительные поля (только для владельца)
|
Поле |
Описание |
|
moduleId |
ID модуля, которому принадлежит бот |
|
eventMode |
Режим доставки событий: |
|
countMessage |
Служебный счетчик, см. примечание под таблицей |
|
countCommand |
Служебный счетчик. Не равен числу зарегистрированных команд |
|
countChat |
Служебный счетчик |
|
countUser |
Служебный счетчик |
Битрикс24 обновляет счетчики countMessage, countCommand, countChat и countUser не для всех действий и с задержкой. После сообщений и вызова команды значения могут остаться 0. Чтобы считать сообщения, команды или чаты бота, ведите учет на своей стороне по событиям.
Пример объекта Bot (расширенный формат)
{
"id": 456,
"code": "support_bot",
"type": "bot",
"isHidden": false,
"isSupportOpenline": false,
"isReactionsEnabled": true,
"backgroundId": null,
"language": "en",
"moduleId": "rest",
"eventMode": "fetch",
"countMessage": 150,
"countCommand": 3,
"countChat": 12,
"countUser": 45
}
Chat
Чат. Возвращается в поле chat ответов методов imbot.v2.Chat.get, imbot.v2.Chat.add, а также в данных событий.
|
Поле |
Описание |
|
id |
Уникальный идентификатор чата |
|
dialogId |
Идентификатор диалога: |
|
name |
Название чата |
|
type |
Тип чата, например |
|
messageType |
Внутренний тип: |
|
owner |
ID владельца чата |
|
color |
Цвет чата в формате HEX |
|
avatar |
URL аватара чата. Пустая строка, если не установлен |
|
description |
Описание чата |
|
extranet |
Содержит ли чат экстранет-пользователей |
|
role |
Роль текущего пользователя: |
|
containsCollaber |
Содержит ли чат коллаберов |
|
muteList |
ID текущего пользователя, если он отключил уведомления чата, иначе пустой массив. ID других участников в список не попадают. Отсутствует в событиях |
|
entityType |
Тип объекта, к которому привязан чат, например |
|
entityId |
Идентификатор объекта, к которому привязан чат |
|
entityData1 |
Дополнительные данные объекта (поле 1) |
|
entityData2 |
Дополнительные данные объекта (поле 2) |
|
entityData3 |
Дополнительные данные объекта (поле 3) |
|
entityLink |
Ссылка на объект, к которому привязан чат: |
|
diskFolderId |
ID папки на Диске для файлов чата |
|
permissions |
Права в чате. (подробное описание) |
|
parentChatId |
ID родительского чата для тредов |
|
parentMessageId |
ID родительского сообщения для тредов |
|
isNew |
Является ли чат только что созданным |
|
textFieldEnabled |
Включено ли поле ввода текста |
|
backgroundId |
ID фона чата или |
|
hasManageCapability |
Служебное поле интерфейса |
|
canHaveThreads |
Можно ли в чате создавать треды |
Объект permissions
Каждый ключ — группа действий в чате. Значение — минимальная роль, которой разрешены эти действия: member — участник, manager — администратор чата, owner — владелец чата, none — действия запрещены всем.
|
Поле |
Описание |
|
manageUsersAdd |
Добавлять участников |
|
manageUsersDelete |
Исключать участников |
|
manageUi |
Менять название, описание, цвет и аватар чата |
|
manageSettings |
Менять права, владельца и администраторов чата |
|
manageMessages |
Писать и закреплять сообщения |
|
manageMessagesAutoDelete |
Настраивать автоудаление сообщений |
|
manageGuestInvites |
Приглашать гостей |
|
manageDelete |
Удалять чат |
|
canPost |
Повторяет значение |
Дополнительные поля (только в ответах методов)
Поля, которые возвращаются в ответах методов (например, imbot.v2.Chat.get), но не передаются в событиях.
|
Поле |
Описание |
|
dateCreate |
Дата создания чата в формате ISO 8601 |
|
lastMessageId |
ID последнего сообщения |
|
lastId |
ID последнего прочитанного сообщения. |
|
managerList |
Массив ID менеджеров чата |
|
messageCount |
Количество сообщений в чате |
|
userCounter |
Количество участников чата |
|
unreadId |
ID первого непрочитанного сообщения. |
|
lastMessageViews |
Кто посмотрел последнее сообщение чата: |
|
markedId |
ID отмеченного сообщения |
|
public |
Настройки публичного доступа |
Пример объекта Chat
В примере показаны не все поля.
{
"id": 5,
"dialogId": "chat5",
"name": "Support Chat",
"type": "chat",
"messageType": "C",
"owner": 1,
"color": "#ab7761",
"avatar": "",
"description": "",
"extranet": false,
"role": "member",
"containsCollaber": false,
"diskFolderId": 42,
"textFieldEnabled": true,
"backgroundId": null,
"dateCreate": "2025-01-10T09:00:00+03:00",
"lastMessageId": 789,
"managerList": [1, 3],
"messageCount": 42,
"userCounter": 5,
"unreadId": 0
}
Message
Сообщение. Возвращается в поле message ответов методов и данных событий.
|
Поле |
Описание |
|
id |
Уникальный идентификатор сообщения |
|
chatId |
ID чата |
|
authorId |
ID автора. |
|
date |
Дата создания в формате ISO 8601 |
|
text |
Текст сообщения. Текст длиннее 20 006 символов обрезается до 20 000 символов, в конце добавляется |
|
isSystem |
Является ли сообщение системным |
|
uuid |
UUID сообщения, если его передали при отправке, или |
|
forward |
Данные о пересылке, если сообщение переслано, или |
|
params |
Дополнительные параметры сообщения: вложения, клавиатура, файлы и другие. Если параметров нет, приходит пустой массив |
|
viewedByOthers |
Прочитано ли сообщение другими участниками |
Объект params
В params приходят только ключи, заданные у сообщения. Основные:
|
Поле |
Описание |
|
ATTACH |
Вложения — карточки со свойствами, ссылками, изображениями: массив объектов с полями |
|
KEYBOARD |
Кнопки клавиатуры под сообщением: массив объектов с полями |
|
FILE_ID |
ID файлов сообщения: массив строк |
|
REPLY_ID |
ID исходного сообщения строкой, если это сообщение — ответ |
|
LIKE |
Массив ID пользователей, которые поставили реакцию «нравится» |
|
IS_EDITED |
|
|
IS_DELETED |
|
Дополнительные поля (только в ответах методов)
|
Поле |
Описание |
|
unread |
Непрочитанное для текущего пользователя |
|
viewed |
Просмотрено текущим пользователем |
Пример объекта Message
В примере показаны не все поля.
{
"id": 789,
"chatId": 5,
"authorId": 1,
"date": "2025-01-15T10:30:00+03:00",
"text": "Hello bot!",
"isSystem": false,
"uuid": null,
"forward": null,
"params": [],
"viewedByOthers": false
}
File
Файл, прикрепленный к сообщению. Возвращается в поле file ответа метода imbot.v2.File.upload.
|
Поле |
Описание |
|
id |
ID файла на Диске |
|
chatId |
ID чата |
|
date |
Дата загрузки в формате ISO 8601 |
|
type |
Тип контента: |
|
name |
Имя файла с расширением |
|
extension |
Расширение файла в нижнем регистре |
|
size |
Размер файла в байтах |
|
duration |
Длительность аудио или видео. У остальных файлов — |
|
image |
Размеры превью для изображений: |
|
authorId |
ID пользователя, загрузившего файл |
|
authorName |
Имя пользователя, загрузившего файл |
|
isTranscribable |
Возможна ли транскрибация файла |
|
isVideoNote |
Является ли файл видеозаметкой |
|
isVoiceNote |
Является ли файл голосовым сообщением |
Пример объекта File
{
"id": 138,
"chatId": 5,
"date": "2025-01-15T10:30:00+03:00",
"type": "file",
"name": "report.pdf",
"extension": "pdf",
"size": 35341,
"duration": null,
"image": false,
"authorId": 1,
"authorName": "John Smith",
"isTranscribable": false,
"isVideoNote": false,
"isVoiceNote": false
}
Command
Слэш-команда бота — команда, которую пользователь вызывает в чате через косую черту, например /help. Состав полей зависит от того, где пришел объект: в ответе на регистрацию или изменение команды, в списке команд или в событии вызова команды.
В ответах register и update
Поле command ответа imbot.v2.Command.register и imbot.v2.Command.update.
|
Поле |
Описание |
|
id |
ID команды |
|
botId |
ID бота-владельца команды |
|
command |
Текст команды с ведущим слэшем, например |
|
common |
Доступна ли команда во всех чатах ( |
|
hidden |
Скрыта ли команда из списка подсказок |
|
extranetSupport |
Доступна ли команда для экстранет-пользователей |
Пример объекта:
{
"id": 78,
"botId": 456,
"command": "/help",
"common": false,
"hidden": false,
"extranetSupport": false
}
В ответе list
Элементы массива commands ответа imbot.v2.Command.list. В список входят и встроенные команды Битрикс24, например /me: у них id — строка вида def0, а botId — 0.
|
Поле |
Описание |
|
ID команды. У встроенных команд — строка |
|
|
botId |
ID бота-владельца команды. |
|
command |
Текст команды с ведущим слэшем |
|
category |
Имя бота-владельца или раздел встроенных команд |
|
common |
Доступна ли команда во всех чатах: |
|
context |
Контекст команды. У команд, зарегистрированных через REST, — пустая строка |
|
title |
Заголовок команды на языке Битрикс24 |
|
params |
Описание параметров команды на языке Битрикс24 |
|
extranet |
Доступна ли команда для экстранет-пользователей: |
Пример элемента массива:
{
"id": 78,
"botId": 456,
"command": "/help",
"category": "Support Bot",
"common": "N",
"context": "",
"title": "Показать помощь",
"params": "запрос",
"extranet": "N"
}
В событии вызова команды
В событии ONIMBOTV2COMMANDADD объект command содержит поля id, command, params и context. В params — аргументы, которые пользователь передал при вызове, в context — способ вызова. Поля описаны в разделе Объект command.