Объекты и поля чат-ботов 2.0
Описание объектов, которые возвращаются в ответах методов im.v2 и imbot.v2, а также в данных событий и webhook-уведомлениях.
Быстрый переход: User | Bot | Chat | Message | File | Command
Типы полей зависят от контекста:
— в ответах методов и FETCH-событиях Event.get типы сохраняются как есть
— в webhook-событиях все скалярные значения приходят строками из-за сериализации через http_build_query: 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 |
Тип: |
|
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": "employee",
"website": "",
"email": "john@example.com"
}
Bot
Чат-бот. Возвращается в поле bot ответов методов imbot.v2.Bot.get, imbot.v2.Bot.list, а также в данных событий.
Имеет два формата: краткий (публичный) и расширенный (только для владельца бота).
Общие поля
|
Поле |
Описание |
|
id |
ID пользователя-бота |
|
code |
Уникальный строковый код бота |
|
type |
Тип бота. Описание типов — Типы ботов |
|
isHidden |
Скрыт ли бот из списка контактов |
|
isSupportOpenline |
Поддерживает ли бот работу с Открытыми линиями |
|
isReactionsEnabled |
Включены ли реакции на сообщения бота |
|
backgroundId |
ID фона чата бота или |
|
language |
Язык бота по умолчанию, например |
Дополнительные поля (только для владельца)
|
Поле |
Описание |
|
moduleId |
ID модуля, которому принадлежит бот |
|
appId |
ID приложения, зарегистрировавшего бота |
|
eventMode |
Режим доставки событий: |
|
countMessage |
Количество обработанных сообщений |
|
countCommand |
Количество зарегистрированных команд |
|
countChat |
Количество чатов, в которых состоит бот |
|
countUser |
Количество уникальных пользователей |
Пример объекта Bot (расширенный формат)
{
"id": 456,
"code": "support_bot",
"type": "bot",
"isHidden": false,
"isSupportOpenline": false,
"isReactionsEnabled": true,
"backgroundId": null,
"language": "en",
"moduleId": "rest",
"appId": "custom123abc",
"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 пользователей, отключивших уведомления. Отсутствует в событиях — зависит от конкретного пользователя |
|
entityType |
Тип объекта, например |
|
entityId |
Идентификатор элемента |
|
entityData1 |
Дополнительные данные объекта (поле 1) |
|
entityData2 |
Дополнительные данные объекта (поле 2) |
|
entityData3 |
Дополнительные данные объекта (поле 3) |
|
entityLink |
Данные ссылки на внешний объект |
|
diskFolderId |
ID папки на Диске для файлов чата |
|
permissions |
Права доступа для текущего пользователя |
|
parentChatId |
ID родительского чата для тредов |
|
parentMessageId |
ID родительского сообщения для тредов |
|
isNew |
Является ли чат только что созданным |
|
textFieldEnabled |
Включено ли поле ввода текста: |
|
backgroundId |
ID фона чата или |
Дополнительные поля (только в ответах методов)
Поля, которые возвращаются в ответах методов (например, imbot.v2.Chat.get), но не передаются в событиях.
|
Поле |
Описание |
|
dateCreate |
Дата создания чата в формате ISO 8601 |
|
lastMessageId |
ID последнего сообщения |
|
lastId |
ID последнего прочитанного сообщения |
|
managerList |
Массив ID менеджеров чата |
|
messageCount |
Количество сообщений в чате |
|
userCounter |
Количество участников чата |
|
unreadId |
ID первого непрочитанного сообщения |
|
lastMessageViews |
JSON-строка с данными просмотров последнего сообщения |
|
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": "Y",
"backgroundId": null,
"dateCreate": "2025-01-10T09:00:00+03:00",
"lastMessageId": 789,
"managerList": [1, 3],
"messageCount": 42,
"userCounter": 5,
"unreadId": null
}
Message
Сообщение. Возвращается в поле message ответов методов и данных событий.
|
Поле |
Описание |
|
id |
Уникальный идентификатор сообщения |
|
chatId |
ID чата |
|
authorId |
ID автора. |
|
date |
Дата создания в формате ISO 8601 |
|
text |
Текст сообщения. Максимальная длина — 20 000 символов. Более длинные сообщения обрезаются с добавлением суффикса |
|
isSystem |
Является ли сообщение системным |
|
uuid |
UUID для дедупликации |
|
forward |
Информация о пересылке: |
|
params |
Дополнительные параметры: attach, keyboard, файлы и др. |
|
viewedByOthers |
Прочитано ли сообщение другими участниками |
Дополнительные поля (только в ответах методов)
|
Поле |
Описание |
|
unread |
Непрочитанное для текущего пользователя |
|
viewed |
Просмотрено текущим пользователем |
Пример объекта Message
{
"id": 789,
"chatId": 5,
"authorId": 1,
"date": "2025-01-15T10:30:00+03:00",
"text": "Hello bot!",
"isSystem": false,
"uuid": "",
"forward": null,
"params": {},
"viewedByOthers": false
}
File
Файл, прикреплённый к сообщению. Возвращается в поле file ответа метода imbot.v2.File.upload.
|
Поле |
Описание |
|
id |
ID файла на Диске |
|
chatId |
ID чата |
|
date |
Дата загрузки в формате ISO 8601 |
|
type |
Тип контента: |
|
name |
Имя файла с расширением |
|
extension |
Расширение файла в нижнем регистре |
|
size |
Размер файла в байтах |
|
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,
"image": false,
"authorId": 1,
"authorName": "John Smith",
"isTranscribable": false,
"isVideoNote": false,
"isVoiceNote": false
}
Command
Слэш-команда бота. Возвращается в ответах методов imbot.v2.Command.register, imbot.v2.Command.update, imbot.v2.Command.list.
|
Поле |
Описание |
|
id |
Уникальный идентификатор команды |
|
botId |
ID бота-владельца команды |
|
command |
Текст команды с ведущим слэшем, например |
|
common |
Доступна ли команда во всех чатах ( |
|
hidden |
Скрыта ли команда из списка подсказок |
|
extranetSupport |
Доступна ли команда для экстранет-пользователей |
|
title |
Заголовок команды на языке портала. Только в ответах методов |
|
params |
Описание параметров команды на языке портала. Только в ответах методов |
|
category |
Имя бота-владельца команды. Только в ответах методов |
|
context |
Контекст вызова команды. Только в ответах методов |
Пример объекта Command
{
"id": 78,
"botId": 456,
"command": "/help",
"common": false,
"hidden": false,
"extranetSupport": false,
"title": "Show help",
"params": "[query]",
"category": "Support Bot",
"context": "chat"
}