#Создать запись

POST /v1/timeline-logs

Создаёт новую запись в журнале (таймлайне) CRM-сущности. Запись появится в истории карточки сделки, лида, контакта, компании или смарт-процесса как сообщение от приложения.

#Поля запроса (body)

Поле Тип Обяз. Описание
entityTypeId number да Тип родительской CRM-сущности: 1=лид, 2=сделка, 3=контакт, 4=компания, 7=предложение, 14=заказ, 31=счёт, ≥128=смарт-процесс. Подробнее — Типы сущностей
entityId number да ID родительской записи. Источник: GET /v1/deals, GET /v1/leads, GET /v1/contacts, GET /v1/companies, GET /v1/items/:entityTypeId
title string да Заголовок записи. Отображается жирным в карточке таймлайна
text string да Основной текст записи. Пустая строка допустима ("")
iconCode string нет Код иконки рядом с заголовком. Часто используемые: info, circle-check, document, link, unlink, view, stage-change, sum, store, relation, IM, call, call-incoming, call-completed. По умолчанию пустая строка "" (без иконки)

#Примеры

#curl — личный ключ

Terminal
curl -X POST https://vibecode.bitrix24.tech/v1/timeline-logs \
  -H "X-Api-Key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "entityTypeId": 2,
    "entityId": 100,
    "title": "AI-агент обработал заявку",
    "text": "Проанализированы данные клиента. Рекомендация: тариф Enterprise."
  }'

#curl — OAuth-приложение

Terminal
curl -X POST https://vibecode.bitrix24.tech/v1/timeline-logs \
  -H "X-Api-Key: YOUR_APP_KEY" \
  -H "Authorization: Bearer USER_SESSION_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "entityTypeId": 2,
    "entityId": 100,
    "title": "AI-агент обработал заявку",
    "text": "Проанализированы данные клиента. Рекомендация: тариф Enterprise."
  }'

#JavaScript — личный ключ

javascript
const res = await fetch('https://vibecode.bitrix24.tech/v1/timeline-logs', {
  method: 'POST',
  headers: {
    'X-Api-Key': 'YOUR_API_KEY',
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    entityTypeId: 2,
    entityId: 100,
    title: 'AI-агент обработал заявку',
    text: 'Проанализированы данные клиента. Рекомендация: тариф Enterprise.',
  }),
})

const { success, data } = await res.json()
console.log('Log ID:', data.id)

#JavaScript — OAuth-приложение

javascript
const res = await fetch('https://vibecode.bitrix24.tech/v1/timeline-logs', {
  method: 'POST',
  headers: {
    'X-Api-Key': 'YOUR_APP_KEY',
    'Authorization': 'Bearer USER_SESSION_TOKEN',
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    entityTypeId: 2,
    entityId: 100,
    title: 'AI-агент обработал заявку',
    text: 'Проанализированы данные клиента. Рекомендация: тариф Enterprise.',
  }),
})

const { success, data } = await res.json()

#Поля ответа

Поле Тип Описание
id number ID созданной лог-записи
created datetime Дата создания, ISO 8601 с таймзоной портала
authorId number ID автора. При создании через API соответствует пользователю API-ключа
title string Заголовок
text string Текст записи
iconCode string Код иконки (или "", если не задан)

#Пример ответа

JSON
{
  "success": true,
  "data": {
    "id": 5012,
    "created": "2026-04-27T10:00:00+03:00",
    "authorId": 1,
    "title": "AI-агент обработал заявку",
    "text": "Проанализированы данные клиента. Рекомендация: тариф Enterprise.",
    "iconCode": ""
  }
}

#Пример ответа при ошибке

400 — пропущено обязательное поле:

JSON
{
  "success": false,
  "error": {
    "code": "INVALID_PARAMS",
    "message": "Required: entityTypeId (positive int), entityId (positive int), title (string), text (string). Optional: iconCode (string, default \"\")"
  }
}

#Ошибки

HTTP Код Описание
400 INVALID_PARAMS Не передан или некорректен entityTypeId, entityId, title, text либо тип iconCode не строка
422 BITRIX_ERROR Битрикс24 отклонил запрос (например, родительская сущность не существует)
403 SCOPE_DENIED API-ключ не имеет скоупа crm
401 TOKEN_MISSING API-ключ не имеет настроенных токенов

Полный список общих ошибок API — Ошибки.

#Известные особенности

Удаление возможно только тем же приложением. Битрикс24 запрещает удалять лог-запись через приложение, отличное от создавшего. Личные ключи (vibe_api_*) ротируют OAuth-токены, поэтому через них DELETE всегда возвращает 403 CROSS_APP_DELETE_FORBIDDEN. Для полного жизненного цикла «создать → удалить через API» используйте OAuth-приложение (vibe_app_* + Authorization: Bearer ...). Подробнее — Удалить запись.

Поле text обязательное, но допускает пустую строку. Битрикс24 принимает text: "", заголовок title всё равно отображается. Если хочется оставить без описания — передавайте пустую строку, а не null.

Поле iconCode сохраняется как пустая строка по умолчанию. В ответе iconCode всегда присутствует, даже если не передавали — приходит "".

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