#ATTACH-блоки

Расширенное форматирование сообщений через поле fields.attach. Максимальный размер — 60 000 символов после сериализации.

#Два формата передачи

Полный формат (с метаданными):

JSON
{
  "fields": {
    "attach": {
      "ID": 1,
      "COLOR_TOKEN": "primary",
      "COLOR": "#29619b",
      "BLOCKS": [
        { "MESSAGE": [{ "MESSAGE": "Текст блока", "STYLE": "bold" }] },
        { "DELIMITER": [{ "SIZE": 200, "COLOR": "#c6c6c6" }] }
      ]
    }
  }
}

Сокращённый формат (массив блоков):

JSON
{
  "fields": {
    "attach": [
      { "MESSAGE": [{ "MESSAGE": "Текст блока", "STYLE": "bold" }] },
      { "DELIMITER": [{}] },
      { "GRID": [{ "NAME": "Поле", "VALUE": "Значение" }] }
    ]
  }
}

Если в attach нет ключа BLOCKS, сервер считает, что передан сокращённый формат.

#Типы блоков

#MESSAGE — стилизованный текст

Поле Тип Описание
MESSAGE string Текст сообщения
STYLE string Стиль: bold, italic, base
JSON
{ "MESSAGE": [{ "MESSAGE": "Статус обновлён", "STYLE": "bold" }] }

#USER — карточка пользователя

Поле Тип Описание
NAME string Имя пользователя
AVATAR string URL аватара
LINK string URL профиля
JSON
{ "USER": [{ "NAME": "Иван Петров", "AVATAR": "https://example.com/avatar.jpg", "LINK": "https://portal.bitrix24.ru/company/personal/user/1/" }] }
Поле Тип Описание
NAME string Заголовок ссылки
LINK string URL
DESC string Описание
PREVIEW string URL изображения-превью
JSON
{ "LINK": [{ "NAME": "Документация API", "LINK": "https://vibecode.bitrix24.tech/docs", "DESC": "Полная документация Vibe API" }] }

#DELIMITER — линия-разделитель

Поле Тип Описание
SIZE integer Ширина в пикселях
COLOR string Цвет в формате HEX
JSON
{ "DELIMITER": [{ "SIZE": 200, "COLOR": "#c6c6c6" }] }

#GRID — таблица / сетка

Поле Тип Описание
NAME string Название поля
VALUE string Значение поля
DISPLAY string Отображение: LINE (в строку), BLOCK (блок), ROW (строка)
WIDTH integer Ширина столбца в пикселях
JSON
{
  "GRID": [
    { "NAME": "Задача", "VALUE": "Подготовить отчёт", "DISPLAY": "LINE" },
    { "NAME": "Статус", "VALUE": "Выполнено", "DISPLAY": "LINE" }
  ]
}

#IMAGE — изображение

Поле Тип Описание
LINK string URL полного изображения
NAME string Подпись
PREVIEW string URL превью
WIDTH integer Ширина в пикселях
HEIGHT integer Высота в пикселях
JSON
{ "IMAGE": [{ "LINK": "https://example.com/chart.png", "NAME": "График продаж", "WIDTH": 600, "HEIGHT": 400 }] }

#FILE — прикреплённый файл

Поле Тип Описание
LINK string URL файла
NAME string Имя файла
SIZE integer Размер в байтах
JSON
{ "FILE": [{ "LINK": "https://example.com/report.pdf", "NAME": "report.pdf", "SIZE": 2048576 }] }

#Токены цвета (COLOR_TOKEN)

primary, secondary, alert, base

#Полный пример

JSON
{
  "dialogId": "chat123",
  "fields": {
    "message": "",
    "attach": [
      {
        "MESSAGE": [
          { "MESSAGE": "Статус задачи обновлён", "STYLE": "bold" }
        ]
      },
      { "DELIMITER": [{}] },
      {
        "GRID": [
          { "DISPLAY": "LINE", "NAME": "Задача", "VALUE": "Подготовить отчёт" },
          { "DISPLAY": "LINE", "NAME": "Статус", "VALUE": "Выполнено" },
          { "DISPLAY": "LINE", "NAME": "Исполнитель", "VALUE": "Иванов А.П." }
        ]
      },
      {
        "LINK": [
          { "NAME": "Открыть задачу", "LINK": "https://portal.bitrix24.ru/tasks/42/" }
        ]
      }
    ]
  }
}

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