Создать групповой чат imbot.v2.Chat.add

Выберите инструмент для разработки с AI-агентом:

  • используйте Битрикс24 Вайбкод, чтобы создать приложение для Битрикс24 по описанию задачи без знания языков программирования. Агент напишет код и разместит приложение на сервере без ручной настройки хостинга
  • используйте MCP-сервер, чтобы разрабатывать интеграцию через REST API в своем проекте. Агент будет обращаться к официальной REST-документации

Scope: imbot

Кто может выполнять метод: владелец зарегистрированного бота

Метод imbot.v2.Chat.add создает групповой чат от имени бота и добавляет бота в участники.

Чтобы отправлять сообщения в созданный чат, передайте result.chat.dialogId из ответа в параметр dialogId методов группы Сообщения.

Параметры метода

Обязательные параметры отмечены *

Название
тип

Описание

botId*
integer

ID бота

botToken
string

Токен бота. Обязателен при авторизации через вебхук, для OAuth не нужен.

Передавайте тот же botToken, который указали при регистрации бота

fields
object

Свойства создаваемого чата (подробное описание)

Параметр fields

Название
тип

Описание

type
string

Тип чата:

  • chat — закрытый групповой чат, по умолчанию
  • open — открытый чат, в который может вступить любой сотрудник

С другим значением метод создаст закрытый чат

title
string

Название чата

description
string

Описание чата

color
string

Цвет чата — доступные цвета.

Если не указан или некорректен — назначается автоматически

avatar
file

Аватар чата в формате Base64

userIds
integer[]

Массив ID участников. Бота передавать не нужно — он добавляется в чат автоматически

ownerId
integer

ID владельца чата, по умолчанию — бот. Владелец автоматически добавляется в чат участником и менеджером. Метод не проверяет, существует ли пользователь: с несуществующим ID чат создастся без ошибки и останется без владельца

Доступные цвета

Код

HEX

red

#df532d

green

#64a513

mint

#4ba984

lightBlue

#4ba5c3

darkBlue

#3e99ce

purple

#8474c8

aqua

#1eb4aa

pink

#f76187

lime

#58cc47

brown

#ab7761

azure

#29619b

khaki

#728f7a

sand

#ba9c7b

marengo

#556574

gray

#909090

graphite

#5e5f5e

Примеры кода

Как использовать примеры в документации

curl -X POST \
  -H "Content-Type: application/json" \
  -H "Accept: application/json" \
  -d '{"botId":456,"botToken":"my_bot_token","fields":{"title":"Support Chat","color":"mint","userIds":[1,2]}}' \
  https://**put_your_bitrix24_address**/rest/**put_your_user_id_here**/**put_your_webhook_here**/imbot.v2.Chat.add
curl -X POST \
  -H "Content-Type: application/json" \
  -H "Accept: application/json" \
  -d '{"botId":456,"fields":{"title":"Support Chat","color":"mint","userIds":[1,2]},"auth":"**put_access_token_here**"}' \
  https://**put_your_bitrix24_address**/rest/imbot.v2.Chat.add
try {
  const response = await $b24.callMethod('imbot.v2.Chat.add', {
    botId: 456,
    fields: {
      title: 'Support Chat',
      color: 'mint',
      userIds: [1, 2],
    },
  });

  const { result } = response.getData();
  console.log('result:', result);
} catch (error) {
  console.error('Error:', error);
}
from b24pysdk.errors import BitrixAPIError, BitrixSDKException

try:
    bitrix_response = client.imbot.v2.chat.add(
        bot_id=456,
        fields={
            "title": "Support Chat",
            "color": "mint",
            "userIds": [
                1,
                2,
            ],
        },
    ).response
    result = bitrix_response.result
    print(result)
except BitrixAPIError as error:
    print(
        "Ошибка Bitrix API",
        f"error: {error.error}",
        f"error_description: {error.error_description}",
        sep="\n",
    )
except BitrixSDKException as error:
    print(f"Ошибка Bitrix SDK: {error.message}")
except Exception as error:
    print(f"Непредвиденная ошибка: {error}")
try {
    $response = $b24Service
        ->core
        ->call(
            'imbot.v2.Chat.add',
            [
                'botId' => 456,
                'fields' => [
                    'title' => 'Support Chat',
                    'color' => 'mint',
                    'userIds' => [1, 2],
                ],
            ]
        );

    $result = $response
        ->getResponseData()
        ->getResult();

    echo 'result: '. print_r($result, true);
} catch (Throwable $exception) {
    error_log($exception->getMessage());
    echo 'Error: '. $exception->getMessage();
}
BX24.callMethod(
    'imbot.v2.Chat.add',
    {
        botId: 456,
        fields: {
            title: 'Support Chat',
            color: 'mint',
            userIds: [1, 2],
        },
    },
    function(result) {
        if (result.error()) {
            console.error(result.error().ex);
        } else {
            console.log('Chat ID:', result.data().chat.id);
        }
    }
);
require_once('crest.php');

$result = CRest::call(
    'imbot.v2.Chat.add',
    [
        'botId' => 456,
        'fields' => [
            'title' => 'Support Chat',
            'color' => 'mint',
            'userIds' => [1, 2],
        ],
    ]
);

if (!empty($result['error'])) {
    echo 'Error: '. $result['error_description'];
} else {
    echo 'Chat ID: '. $result['result']['chat']['id'];
}
// client и ctx уже созданы — см. раздел «SDK для Go»
res, err := client.Core().Call(ctx, "imbot.v2.Chat.add", b24.Params{
	"botId":    456,
	"botToken": "my_bot_token",
	"fields": b24.Params{
		"title":   "Support Chat",
		"color":   "mint",
		"userIds": []int{1, 2},
	},
})
if err != nil {
	return fmt.Errorf("imbot.v2.Chat.add: %w", err)
}

// Форма ответа показана ниже на этой странице.
fmt.Printf("%s\n", res.Result)

Обработка ответа

HTTP-статус: 200

{
    "result": {
        "chat": {
            "id": 5,
            "dialogId": "chat5",
            "name": "Support Chat",
            "description": "",
            "type": "chat",
            "messageType": "C",
            "owner": 456,
            "color": "#4ba984",
            "avatar": "",
            "extranet": false,
            "containsCollaber": false,
            "entityType": "",
            "entityId": "",
            "entityData1": "",
            "entityData2": "",
            "entityData3": "",
            "entityLink": {
                "type": "",
                "url": "",
                "id": ""
            },
            "diskFolderId": null,
            "role": "owner",
            "permissions": {
                "manageUsersAdd": "member",
                "manageUsersDelete": "manager",
                "manageUi": "member",
                "manageSettings": "owner",
                "manageMessages": "member",
                "manageMessagesAutoDelete": "manager",
                "manageGuestInvites": "manager",
                "manageDelete": "member",
                "canPost": "member"
            },
            "hasManageCapability": false,
            "canHaveThreads": true,
            "muteList": [],
            "parentChatId": null,
            "parentMessageId": null,
            "isNew": false,
            "textFieldEnabled": true,
            "backgroundId": null,
            "dateCreate": "2025-01-15T10:00:00+03:00",
            "lastMessageId": 789,
            "lastMessageViews": {
                "messageId": 789,
                "firstViewers": [],
                "countOfViewers": 0
            },
            "lastId": 0,
            "managerList": [456],
            "markedId": 0,
            "messageCount": 1,
            "public": "",
            "unreadId": 0,
            "userCounter": 3,
            "guestCount": 0
        },
        "users": [
            {
                "id": 456,
                "active": true,
                "name": "Support Bot",
                "firstName": "Support Bot",
                "lastName": "",
                "workPosition": "",
                "color": "#4ba984",
                "avatar": "",
                "gender": "M",
                "birthday": "",
                "extranet": false,
                "bot": true,
                "connector": false,
                "externalAuthId": "bot",
                "status": "online",
                "idle": false,
                "lastActivityDate": false,
                "mobileLastDate": false,
                "desktopLastDate": false,
                "absent": false,
                "departments": [],
                "phones": false,
                "type": "bot",
                "website": "",
                "email": ""
            }
        ]
    },
    "time": {
        "start": 1728626400.123,
        "finish": 1728626400.234,
        "duration": 0.111,
        "processing": 0.045,
        "date_start": "2024-10-11T10:00:00+03:00",
        "date_finish": "2024-10-11T10:00:00+03:00"
    }
}

Возвращаемые данные

Название
тип

Описание

result
object

Результат создания чата

result.chat
Chat

Объект созданного чата (подробное описание)

result.users
User[]

Массив с одним элементом — данными бота, от имени которого выполнен запрос. Участников чата возвращает imbot.v2.Chat.User.list. Описание полей — User

time
time

Информация о времени выполнения запроса

Кроме chat и users ответ содержит служебные ключи интерфейса мессенджера: recentConfig, parentChat, copilot, messagesAutoDeleteConfigs и callInfo. Для работы бота они не нужны, поэтому в примере ответа не показаны.

Поля объекта Chat

Название
тип

Описание

id
integer

Идентификатор чата

dialogId
string

Идентификатор диалога. Для группового чата — chat{id}, например chat5

name
string

Название чата

description
string

Описание чата. Пустая строка, если не задано

type
string

Тип чата: chat, open, channel, openChannel, copilot и другие — список значений

messageType
string

Внутренний однобуквенный тип чата, например C для группового и O для открытого

owner
integer

ID владельца чата

color
string

Цвет чата в формате HEX

avatar
string

URL аватара чата. Пустая строка, если аватар не установлен

extranet
boolean

Есть ли в чате экстранет-пользователи

containsCollaber
boolean

Есть ли в чате коллаберы

entityType
string

Тип связанного объекта, например LINES для Открытых линий. Пустая строка, если чат не связан с объектом

entityId
string

Идентификатор связанного объекта

entityData1
string

Дополнительные данные связанного объекта, поле 1

entityData2
string

Дополнительные данные связанного объекта, поле 2

entityData3
string

Дополнительные данные связанного объекта, поле 3

entityLink
object

Ссылка на связанный объект — объект с ключами type, url и id. Если чат не связан с объектом, значения пустые

diskFolderId
integer|null

ID папки на Диске, где хранятся файлы чата

role
string

Роль бота в чате: owner, manager, member или guest. Роль guest — у бота, который не состоит в открытом чате

permissions
object

Минимальная роль для действий в чате. Ключи: manageUsersAdd, manageUsersDelete, manageUi, manageSettings, manageMessages, manageMessagesAutoDelete, manageGuestInvites, manageDelete, canPost. Значения: member, manager, owner или none — действие недоступно никому

canHaveThreads
boolean

Можно ли создавать треды в чате

hasManageCapability
boolean

Служебный признак расширенного доступа к управлению чатом

muteList
integer[]

Содержит ID бота, если бот отключил уведомления в чате, иначе пустой массив

parentChatId
integer|null

ID родительского чата, если это тред

parentMessageId
integer|null

ID родительского сообщения, если это тред

isNew
boolean

true для открытого канала, созданного меньше суток назад. Для остальных чатов — false

textFieldEnabled
boolean

Включено ли поле ввода сообщений

backgroundId
string|null

ID фона чата

dateCreate
string|null

Дата создания чата в формате ISO 8601

lastMessageId
integer|null

ID последнего сообщения

lastMessageViews
object

Просмотры последнего сообщения: messageId — ID сообщения, firstViewers — первые просмотревшие, countOfViewers — число просмотревших

lastId
integer

ID последнего сообщения, прочитанного ботом

managerList
integer[]

ID менеджеров чата

markedId
integer

ID сообщения, отмеченного ботом как непрочитанное. 0, если отметки нет

messageCount
integer

Количество сообщений в чате

public
string|object

Публичная ссылка на чат — объект с полями code и link. Пустая строка, если ссылки нет

unreadId
integer

ID первого непрочитанного ботом сообщения. 0, если непрочитанных нет

userCounter
integer

Количество участников чата

guestCount
integer

Количество гостей в чате

Какие из этих полей приходят в данных событий — на странице Объекты и поля — Chat.

Обработка ошибок

HTTP-статус: 400

{
    "error": "BOT_NOT_FOUND",
    "error_description": "Bot not found"
}

Название
тип

Описание

error
string

Строковый код ошибки. Состоит из цифр, латинских букв и знака подчеркивания. Может прийти пустым — тогда причину показывает только error_description

error_description
string

Текст ошибки для разработчика. Не показывайте его конечному пользователю без обработки

Возможные коды ошибок

Код

Описание

Значение

BOT_TOKEN_NOT_SPECIFIED

Bot token not specified (botToken is required for webhook auth)

Не указан botToken. Обязателен при авторизации через вебхук

BOT_ID_REQUIRED

botId is required

Не указан botId

BOT_NOT_FOUND

Bot not found

Бот не найден

BOT_OWNERSHIP_ERROR

Bot was installed by another rest application

Бот зарегистрирован другим приложением

ACCESS_DENIED

ACCESS_DENIED

Нет права создавать чаты

CREATION_ERROR

Error creating chat

Не удалось создать чат

Статусы и коды системных ошибок

HTTP-статус: 4xx, 5xx

Описанные ниже ошибки возвращает сам REST API, а не логика конкретного метода. Они могут прийти в ответ на любой метод.

Статус

Код
Текст ошибки

Описание

500

INTERNAL_SERVER_ERROR
Internal server error

Возникла внутренняя ошибка сервера. Повторите вызов, а если ошибка сохраняется, обратитесь к администратору сервера или в техническую поддержку Битрикс24

500

ERROR_UNEXPECTED_ANSWER
Server returned an unexpected response

Сервер вернул неожиданный ответ. Повторите вызов, а если ошибка сохраняется, обратитесь к администратору сервера или в техническую поддержку Битрикс24

503

QUERY_LIMIT_EXCEEDED
Too many requests

Превышен лимит на интенсивность запросов

429

OPERATION_TIME_LIMIT
Method is blocked due to operation time limit

Метод заблокирован из-за превышения лимита на ресурсоемкость запросов. Блокировка снимается автоматически, когда накопленное время выполнения метода перестает превышать лимит

401

NO_AUTH_FOUND
Wrong authorization data

В запросе нет авторизационных данных: не передан ни access-токен, ни код вебхука

401

INVALID_REQUEST
Https required

Методы вызываются только по протоколу HTTPS

401

OVERLOAD_LIMIT
REST API is blocked due to overload

REST API заблокирован из-за перегрузки. Это ручная индивидуальная блокировка. Чтобы ее снять, обратитесь в техническую поддержку Битрикс24

401

ACCESS_DENIED
REST is available only on commercial plans

REST API доступен только на коммерческих тарифах. У вебхука текст ошибки другой — REST is available only by subscription

401

INVALID_CREDENTIALS
Invalid request credentials

Не найден активный вебхук с указанным идентификатором пользователя и секретным кодом

404

ERROR_METHOD_NOT_FOUND
Method not found!

Метод с таким именем не найден. Имя написано с ошибкой, метода нет в REST API или он недоступен без нужного скоупа

401

insufficient_scope
The request requires higher privileges than provided by the webhook token

Запрос требует более широких прав, чем есть у токена: у вебхука это выданные ему права, у приложения — скоуп. У приложения текст ошибки заканчивается на provided by the access token

401

expired_token
The access token provided has expired

Срок действия access-токена истек

401

user_access_error
The user does not have access to the application

Приложение установлено, но администратор Битрикс24 открыл доступ к нему только конкретным пользователям

403

PORTAL_DELETED
Portal was deleted

Публичная часть сайта закрыта. Чтобы открыть ее на коробочной установке, отключите опцию «Временное закрытие публичной части сайта». Путь к настройке: Рабочий стол > Настройки > Настройки продукта > Настройки модулей > Главный модуль > Временное закрытие публичной части сайта

Продолжите изучение