Создать комментарий таймлайна с файлами по ключу операции
Добавляет текст и подготовленные файлы в карточку с защитой от повторной отправки.

Видимая часть формы настройки в Битрикс24. Скриншот показывает поля действия; он не подтверждает выполнение учебного примера.
Для кого и какую проблему решает
Робот полезен для менеджера, который фиксирует итог этапа в таймлайне CRM. При повторной доставке события один комментарий может появиться несколько раз. Робот добавляет текст и подготовленные вложения с постоянным ключом операции и возвращает сохранённый результат при подтверждённом повторе.
Что делает и когда применять
Добавляет текст и подготовленные файлы в карточку с защитой от повторной отправки.
Принимает тип и ID карточки, текст, уникальный REQUEST_KEY и PREPARED_FILES: массив до пяти объектов name, contentBase64, allowedFormats. Максимальный общий размер 5 МиБ; поддержаны pdf/png/jpeg/gif/webp/zip. Вложения создаются из переданных данных; готовые ID Диска не принимаются. Возвращает ID комментария и файлов, признак сохранённого результата. Повтор проверяет текущий доступ, автора, карточку, текст и имена/размеры файлов; содержимое независимо не скачивается. Неизвестный результат блокирует повторную отправку до ручной сверки.
Что подготовить
Нужен установленный робот из приложения «CRM роботы 2.0 + AI» и право на настройку автоматизации нужной CRM-воронки или шаблона бизнес-процесса. Пользователю, от имени которого работает приложение, должны быть доступны выбранные CRM-элементы и нужное действие с ними.
Определите тип и ID карточки и один ключ для конкретного события. Для повторной проверки этого события используйте тот же ключ; для нового комментария создайте другой.
Как настроить и использовать
- Откройте автоматизацию нужной сущности и выберите стадию, на которой нужен робот «Создать комментарий таймлайна с файлами по ключу операции». В шаблоне бизнес-процесса добавьте одноимённое действие.
- Определите тип и ID карточки и один ключ для конкретного события. Для повторной проверки этого события используйте тот же ключ; для нового комментария создайте другой.
- Заполните Тип карточки CRM, ID карточки CRM, Текст комментария, Подготовленные файлы: JSON, Уникальный ключ операции. Для рабочего сценария подставьте значения полей документа или результаты предыдущих действий вместо учебных данных ниже.
- Проверьте обязательные поля и варианты выбора в таблице настроек. Сохраните действие и свяжите его результаты с дальнейшими условиями процесса.
- Выполните пробный запуск на отдельном учебном элементе. Сначала проверьте статус и пояснение ошибки, затем содержательный результат и ветку, выбранную следующим действием.
Параметры робота
Имена полей ниже совпадают с настройками действия. Значения из таблицы относятся к самому роботу; результаты предыдущих шагов выбирайте через подстановку значения в редакторе.
| Поле в настройках | Что передать | Обязательность и исходное значение |
|---|---|---|
Тип карточки CRM (OWNER_TYPE_ID) |
Формат: целое число. | Обязательно. Значение по умолчанию в настройках не задано |
ID карточки CRM (OWNER_ID) |
Формат: целое число. | Обязательно. Значение по умолчанию в настройках не задано |
Текст комментария (TEXT) |
Формат: текст. | Обязательно. Значение по умолчанию в настройках не задано |
Подготовленные файлы: JSON (PREPARED_FILES) |
Формат: текст. | Необязательно. По умолчанию: [] |
Уникальный ключ операции (REQUEST_KEY) |
Формат: строка. | Обязательно. Значение по умолчанию в настройках не задано |
Учебный пример
Пример показывает способ настройки на вымышленных данных и ожидаемый смысл результата; это не отчёт о запуске на вашем портале.
- Тип карточки CRM (
OWNER_TYPE_ID):2. - ID карточки CRM (
OWNER_ID):501. - Текст комментария (
TEXT):Состав заказа согласован.. - Подготовленные файлы: JSON (
PREPARED_FILES):[]. - Уникальный ключ операции (
REQUEST_KEY):deal-501-approved-v1.
Подготовленные файлы: JSON (PREPARED_FILES)
Копируйте в это поле только содержимое блока, без названия поля и внешней обёртки со всеми настройками. Здесь нужен JSON-массив в квадратных скобках. Пустой массив [] означает отсутствие элементов; объект {} его не заменяет. Каждый файл задаётся объектом с name (имя с расширением), contentBase64 (полное содержимое файла в Base64 строкой) и allowedFormats (массив разрешённых форматов). Допустимы pdf, png, jpeg, gif, webp, zip; максимум пять файлов и 5 МиБ суммарно. [] создаёт комментарий без файлов. ID Диска и ссылка на файл не заменяют contentBase64.
[]
Вариант с одним маленьким учебным PNG показывает полный объект файла. Для рабочего вложения передайте собственные имя, полное содержимое и разрешённый формат; не вставляйте в contentBase64 адрес файла или путь на компьютере.
[
{
"name": "sample.png",
"contentBase64": "iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR4nGNg+A8AAQIBAEK+vGgAAAAASUVORK5CYII=",
"allowedFormats": [
"png"
]
}
]
Первый успешный запуск создаст комментарий. Подтверждённый повтор с теми же данными вернёт его ID и признак сохранённого результата. Неизвестный итог требует сверки, а не нового ключа ради принудительной отправки.
Какие данные возвращает и что делать дальше
| Результат | Какое значение получает следующий шаг |
|---|---|
ID комментария (commentId) |
целое число |
ID файлов комментария (fileIds) |
целое число, несколько значений |
Получен сохранённый результат (replayed) |
да/нет |
Статус выполнения (status) |
да/нет |
Пояснение ошибки (error) |
строка |
Сохраните «ID комментария» для дальнейшей связи с событием. Для обновления используйте отдельного робота изменения собственного комментария. Вложения передавайте подготовленными данными, а не готовыми ID Диска.
Ошибки и ограничения
Проверяйте результат действия до следующего изменения карточки. Ошибка доступа, неверный идентификатор и отсутствие найденного элемента требуют разных веток процесса. Не подставляйте нулевой или пустой результат как идентификатор существующего документа.