Конструктор вложений ATTACH
Выберите инструмент для разработки с AI-агентом:
- используйте Битрикс24 Вайбкод, чтобы создать приложение для Битрикс24 по описанию задачи без знания языков программирования. Агент напишет код и разместит приложение на сервере без ручной настройки хостинга
- используйте MCP-сервер, чтобы разрабатывать интеграцию через REST API в своем проекте. Агент будет обращаться к официальной REST-документации
Страница содержит практические примеры сборки ATTACH из разных типов блоков. Итоговое вложение зависит от набора и порядка блоков.
Пример 1. Карточка «Баг-трекер»
Системное сообщение с карточкой задачи, ссылкой и таблицами с параметрами.
Как использовать примеры в документации
cURL (Webhook)
cURL (OAuth)
JS
PHP
BX24.js
PHP CRest
curl -X POST \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{"botId":456,"botToken":"my_bot_token","dialogId":"chat20921","fields":{"message":"Карточка задачи","attach":[{"USER":{"NAME":"Уведомления Mantis","AVATAR":"https://files.shelenkov.com/bitrix/images/mantis2.jpg","LINK":"https://shelenkov.com/"}},{"LINK":{"NAME":"Открыть Mantis из внешней сети","LINK":"https://shelenkov.com/"}},{"DELIMITER":{"SIZE":200,"COLOR":"#c6c6c6"}},{"GRID":[{"NAME":"Проект","VALUE":"BUGS","DISPLAY":"LINE","WIDTH":100},{"NAME":"Категория","VALUE":"im","DISPLAY":"LINE","WIDTH":100},{"NAME":"Сводка","VALUE":"Требуется реализовать возможность добавлять структурированные сущности в сообщения и уведомления мессенджера.","DISPLAY":"BLOCK"}]},{"DELIMITER":{"SIZE":200,"COLOR":"#c6c6c6"}},{"GRID":[{"NAME":"Новое обращение","VALUE":"","DISPLAY":"ROW","WIDTH":100},{"NAME":"Назначено","VALUE":"Шеленков Евгений","DISPLAY":"ROW","WIDTH":100},{"NAME":"Дедлайн","VALUE":"04.11.2015 17:50:43","DISPLAY":"ROW","WIDTH":100}]}]}}' \
https://**put_your_bitrix24_address**/rest/**put_your_user_id_here**/**put_your_webhook_here**/imbot.v2.Chat.Message.send
curl -X POST \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{"botId":456,"dialogId":"chat20921","fields":{"message":"Карточка задачи","attach":[{"USER":{"NAME":"Уведомления Mantis","AVATAR":"https://files.shelenkov.com/bitrix/images/mantis2.jpg","LINK":"https://shelenkov.com/"}},{"LINK":{"NAME":"Открыть Mantis из внешней сети","LINK":"https://shelenkov.com/"}},{"DELIMITER":{"SIZE":200,"COLOR":"#c6c6c6"}},{"GRID":[{"NAME":"Проект","VALUE":"BUGS","DISPLAY":"LINE","WIDTH":100},{"NAME":"Категория","VALUE":"im","DISPLAY":"LINE","WIDTH":100},{"NAME":"Сводка","VALUE":"Требуется реализовать возможность добавлять структурированные сущности в сообщения и уведомления мессенджера.","DISPLAY":"BLOCK"}]},{"DELIMITER":{"SIZE":200,"COLOR":"#c6c6c6"}},{"GRID":[{"NAME":"Новое обращение","VALUE":"","DISPLAY":"ROW","WIDTH":100},{"NAME":"Назначено","VALUE":"Шеленков Евгений","DISPLAY":"ROW","WIDTH":100},{"NAME":"Дедлайн","VALUE":"04.11.2015 17:50:43","DISPLAY":"ROW","WIDTH":100}]}]},"auth":"**put_access_token_here**"}' \
https://**put_your_bitrix24_address**/rest/imbot.v2.Chat.Message.send
try {
const response = await $b24.callMethod(
'imbot.v2.Chat.Message.send',
{
botId: 456,
dialogId: 'chat20921',
fields: {
message: 'Карточка задачи',
attach: [
{
USER: {
NAME: 'Уведомления Mantis',
AVATAR: 'https://files.shelenkov.com/bitrix/images/mantis2.jpg',
LINK: 'https://shelenkov.com/'
}
},
{
LINK: {
NAME: 'Открыть Mantis из внешней сети',
LINK: 'https://shelenkov.com/'
}
},
{
DELIMITER: {
SIZE: 200,
COLOR: '#c6c6c6'
}
},
{
GRID: [
{
NAME: 'Проект',
VALUE: 'BUGS',
DISPLAY: 'LINE',
WIDTH: 100
},
{
NAME: 'Категория',
VALUE: 'im',
DISPLAY: 'LINE',
WIDTH: 100
},
{
NAME: 'Сводка',
VALUE: 'Требуется реализовать возможность добавлять структурированные сущности в сообщения и уведомления мессенджера.',
DISPLAY: 'BLOCK'
}
]
},
{
DELIMITER: {
SIZE: 200,
COLOR: '#c6c6c6'
}
},
{
GRID: [
{
NAME: 'Новое обращение',
VALUE: '',
DISPLAY: 'ROW',
WIDTH: 100
},
{
NAME: 'Назначено',
VALUE: 'Шеленков Евгений',
DISPLAY: 'ROW',
WIDTH: 100
},
{
NAME: 'Дедлайн',
VALUE: '04.11.2015 17:50:43',
DISPLAY: 'ROW',
WIDTH: 100
}
]
}
]
}
}
);
const result = response.getData().result.id;
console.log('Created message ID:', result);
} catch (error) {
console.error(error);
}
try {
$response = $b24Service
->core
->call(
'imbot.v2.Chat.Message.send',
[
'botId' => 456,
'dialogId' => 'chat20921',
'fields' => [
'message' => 'Карточка задачи',
'attach' => [
[
'USER' => [
'NAME' => 'Уведомления Mantis',
'AVATAR' => 'https://files.shelenkov.com/bitrix/images/mantis2.jpg',
'LINK' => 'https://shelenkov.com/'
]
],
[
'LINK' => [
'NAME' => 'Открыть Mantis из внешней сети',
'LINK' => 'https://shelenkov.com/'
]
],
[
'DELIMITER' => [
'SIZE' => 200,
'COLOR' => '#c6c6c6'
]
],
[
'GRID' => [
[
'NAME' => 'Проект',
'VALUE' => 'BUGS',
'DISPLAY' => 'LINE',
'WIDTH' => 100
],
[
'NAME' => 'Категория',
'VALUE' => 'im',
'DISPLAY' => 'LINE',
'WIDTH' => 100
],
[
'NAME' => 'Сводка',
'VALUE' => 'Требуется реализовать возможность добавлять структурированные сущности в сообщения и уведомления мессенджера.',
'DISPLAY' => 'BLOCK'
]
]
],
[
'DELIMITER' => [
'SIZE' => 200,
'COLOR' => '#c6c6c6'
]
],
[
'GRID' => [
[
'NAME' => 'Новое обращение',
'VALUE' => '',
'DISPLAY' => 'ROW',
'WIDTH' => 100
],
[
'NAME' => 'Назначено',
'VALUE' => 'Шеленков Евгений',
'DISPLAY' => 'ROW',
'WIDTH' => 100
],
[
'NAME' => 'Дедлайн',
'VALUE' => '04.11.2015 17:50:43',
'DISPLAY' => 'ROW',
'WIDTH' => 100
]
]
]
]
]
]
);
$result = $response->getResponseData()->getResult()['id'];
echo 'Created message ID: ' . $result;
} catch (Throwable $e) {
error_log($e->getMessage());
echo 'Error adding message: ' . $e->getMessage();
}
BX24.callMethod(
'imbot.v2.Chat.Message.send',
{
botId: 456,
dialogId: 'chat20921',
fields: {
message: 'Карточка задачи',
attach: [
{
USER: {
NAME: 'Уведомления Mantis',
AVATAR: 'https://files.shelenkov.com/bitrix/images/mantis2.jpg',
LINK: 'https://shelenkov.com/'
}
},
{
LINK: {
NAME: 'Открыть Mantis из внешней сети',
LINK: 'https://shelenkov.com/'
}
},
{
DELIMITER: {
SIZE: 200,
COLOR: '#c6c6c6'
}
},
{
GRID: [
{
NAME: 'Проект',
VALUE: 'BUGS',
DISPLAY: 'LINE',
WIDTH: 100
},
{
NAME: 'Категория',
VALUE: 'im',
DISPLAY: 'LINE',
WIDTH: 100
},
{
NAME: 'Сводка',
VALUE: 'Требуется реализовать возможность добавлять структурированные сущности в сообщения и уведомления мессенджера.',
DISPLAY: 'BLOCK'
}
]
},
{
DELIMITER: {
SIZE: 200,
COLOR: '#c6c6c6'
}
},
{
GRID: [
{
NAME: 'Новое обращение',
VALUE: '',
DISPLAY: 'ROW',
WIDTH: 100
},
{
NAME: 'Назначено',
VALUE: 'Шеленков Евгений',
DISPLAY: 'ROW',
WIDTH: 100
},
{
NAME: 'Дедлайн',
VALUE: '04.11.2015 17:50:43',
DISPLAY: 'ROW',
WIDTH: 100
}
]
}
]
}
},
function(result) {
if (result.error()) {
console.error(result.error().ex);
} else {
console.log('Message ID:', result.data().id);
}
}
);
require_once('crest.php');
$result = CRest::call(
'imbot.v2.Chat.Message.send',
[
'botId' => 456,
'dialogId' => 'chat20921',
'fields' => [
'message' => 'Карточка задачи',
'attach' => [
[
'USER' => [
'NAME' => 'Уведомления Mantis',
'AVATAR' => 'https://files.shelenkov.com/bitrix/images/mantis2.jpg',
'LINK' => 'https://shelenkov.com/'
]
],
[
'LINK' => [
'NAME' => 'Открыть Mantis из внешней сети',
'LINK' => 'https://shelenkov.com/'
]
],
[
'DELIMITER' => [
'SIZE' => 200,
'COLOR' => '#c6c6c6'
]
],
[
'GRID' => [
[
'NAME' => 'Проект',
'VALUE' => 'BUGS',
'DISPLAY' => 'LINE',
'WIDTH' => 100
],
[
'NAME' => 'Категория',
'VALUE' => 'im',
'DISPLAY' => 'LINE',
'WIDTH' => 100
],
[
'NAME' => 'Сводка',
'VALUE' => 'Требуется реализовать возможность добавлять структурированные сущности в сообщения и уведомления мессенджера.',
'DISPLAY' => 'BLOCK'
]
]
],
[
'DELIMITER' => [
'SIZE' => 200,
'COLOR' => '#c6c6c6'
]
],
[
'GRID' => [
[
'NAME' => 'Новое обращение',
'VALUE' => '',
'DISPLAY' => 'ROW',
'WIDTH' => 100
],
[
'NAME' => 'Назначено',
'VALUE' => 'Шеленков Евгений',
'DISPLAY' => 'ROW',
'WIDTH' => 100
],
[
'NAME' => 'Дедлайн',
'VALUE' => '04.11.2015 17:50:43',
'DISPLAY' => 'ROW',
'WIDTH' => 100
]
]
]
]
]
]
);
if (!empty($result['error'])) {
echo 'Error: ' . $result['error_description'];
} else {
echo 'Message ID: ' . $result['result']['id'];
}
Пример 2. Информационное уведомление
Короткий информационный текст и изображение в составе одного вложения.
Как использовать примеры в документации
cURL (Webhook)
cURL (OAuth)
JS
PHP
BX24.js
PHP CRest
curl -X POST \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{"botId":456,"botToken":"my_bot_token","dialogId":"chat20921","fields":{"message":"У вас новое уведомление","attach":{"ID":1,"COLOR":"#29619b","BLOCKS":[{"MESSAGE":"Коллеги, обновление im 16.0.0 проверено и готово к выгрузке. Необходимо поставить тег. В обновление больше не подкладываем."},{"IMAGE":{"LINK":"https://files.shelenkov.com/bitrix/images/win.jpg"}}]}}}' \
https://**put_your_bitrix24_address**/rest/**put_your_user_id_here**/**put_your_webhook_here**/imbot.v2.Chat.Message.send
curl -X POST \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{"botId":456,"dialogId":"chat20921","fields":{"message":"У вас новое уведомление","attach":{"ID":1,"COLOR":"#29619b","BLOCKS":[{"MESSAGE":"Коллеги, обновление im 16.0.0 проверено и готово к выгрузке. Необходимо поставить тег. В обновление больше не подкладываем."},{"IMAGE":{"LINK":"https://files.shelenkov.com/bitrix/images/win.jpg"}}]}},"auth":"**put_access_token_here**"}' \
https://**put_your_bitrix24_address**/rest/imbot.v2.Chat.Message.send
try {
const response = await $b24.callMethod(
'imbot.v2.Chat.Message.send',
{
botId: 456,
dialogId: 'chat20921',
fields: {
message: 'У вас новое уведомление',
attach: {
ID: 1,
COLOR: '#29619b',
BLOCKS: [
{ MESSAGE: 'Коллеги, обновление im 16.0.0 проверено и готово к выгрузке. Необходимо поставить тег. В обновление больше не подкладываем.' },
{ IMAGE: { LINK: 'https://files.shelenkov.com/bitrix/images/win.jpg' } }
]
}
}
}
);
const result = response.getData().result.id;
console.log('Created message ID:', result);
} catch (error) {
console.error(error);
}
try {
$response = $b24Service
->core
->call(
'imbot.v2.Chat.Message.send',
[
'botId' => 456,
'dialogId' => 'chat20921',
'fields' => [
'message' => 'У вас новое уведомление',
'attach' => [
'ID' => 1,
'COLOR' => '#29619b',
'BLOCKS' => [
['MESSAGE' => 'Коллеги, обновление im 16.0.0 проверено и готово к выгрузке. Необходимо поставить тег. В обновление больше не подкладываем.'],
['IMAGE' => ['LINK' => 'https://files.shelenkov.com/bitrix/images/win.jpg']]
]
]
]
]
);
$result = $response->getResponseData()->getResult()['id'];
echo 'Created message ID: ' . $result;
} catch (Throwable $e) {
error_log($e->getMessage());
echo 'Error adding message: ' . $e->getMessage();
}
BX24.callMethod(
'imbot.v2.Chat.Message.send',
{
botId: 456,
dialogId: 'chat20921',
fields: {
message: 'У вас новое уведомление',
attach: {
ID: 1,
COLOR: '#29619b',
BLOCKS: [
{ MESSAGE: 'Коллеги, обновление im 16.0.0 проверено и готово к выгрузке. Необходимо поставить тег. В обновление больше не подкладываем.' },
{ IMAGE: { LINK: 'https://files.shelenkov.com/bitrix/images/win.jpg' } }
]
}
}
},
function(result) {
if (result.error()) {
console.error(result.error().ex);
} else {
console.log('Message ID:', result.data().id);
}
}
);
require_once('crest.php');
$result = CRest::call(
'imbot.v2.Chat.Message.send',
[
'botId' => 456,
'dialogId' => 'chat20921',
'fields' => [
'message' => 'У вас новое уведомление',
'attach' => [
'ID' => 1,
'COLOR' => '#29619b',
'BLOCKS' => [
['MESSAGE' => 'Коллеги, обновление im 16.0.0 проверено и готово к выгрузке. Необходимо поставить тег. В обновление больше не подкладываем.'],
['IMAGE' => ['LINK' => 'https://files.shelenkov.com/bitrix/images/win.jpg']]
]
]
]
]
);
if (!empty($result['error'])) {
echo 'Error: ' . $result['error_description'];
} else {
echo 'Message ID: ' . $result['result']['id'];
}
Продолжите изучение
Была ли статья полезна?
Предыдущая
Следующая