#Сохранить заметку

POST /v1/timeline-logs/:id/note

Сохраняет заметку к одному элементу таймлайна. У каждого элемента таймлайна может быть только одна заметка — повторный вызов с тем же :id перезаписывает предыдущий текст.

#Параметры

Параметр Тип Обяз. Описание
id (path) number да ID лог-записи (или другого элемента таймлайна), к которому прикрепляем заметку

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

Поле Тип Обяз. По умолч. Описание
entityTypeId number да Тип родительской CRM-сущности — той, в чьём таймлайне находится элемент. См. Типы сущностей
entityId number да ID родительской записи
text string да Текст заметки. Перезапишет существующую заметку, если она есть
itemType number нет 1 Тип элемента: 1 — запись истории таймлайна (включая лог-записи), 2 — дело (см. `/v1/activities`)

#Примеры

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

Terminal
curl -X POST https://vibecode.bitrix24.tech/v1/timeline-logs/5012/note \
  -H "X-Api-Key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "entityTypeId": 2,
    "entityId": 100,
    "text": "Клиент обычно отвечает в течение 2 дней."
  }'

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

Terminal
curl -X POST https://vibecode.bitrix24.tech/v1/timeline-logs/5012/note \
  -H "X-Api-Key: YOUR_APP_KEY" \
  -H "Authorization: Bearer USER_SESSION_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "entityTypeId": 2,
    "entityId": 100,
    "text": "Клиент обычно отвечает в течение 2 дней."
  }'

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

javascript
const res = await fetch('https://vibecode.bitrix24.tech/v1/timeline-logs/5012/note', {
  method: 'POST',
  headers: {
    'X-Api-Key': 'YOUR_API_KEY',
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    entityTypeId: 2,
    entityId: 100,
    text: 'Клиент обычно отвечает в течение 2 дней.',
  }),
})

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

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

javascript
const res = await fetch('https://vibecode.bitrix24.tech/v1/timeline-logs/5012/note', {
  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,
    text: 'Клиент обычно отвечает в течение 2 дней.',
  }),
})

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

#Поля ответа

Поле Тип Описание
success boolean Всегда true при успехе
data.saved boolean Всегда true — подтверждение операции

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

HTTP 201:

JSON
{
  "success": true,
  "data": { "saved": true }
}

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

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

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

#Ошибки

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

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

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

Один вызов создаёт или обновляет. Если у элемента нет заметки — создастся; если есть — текст перезапишется. Отдельного метода для обновления нет, повторный POST с новым текстом и есть «обновление».

Не валидирует существование :id лог-записи. Если передать id несуществующей записи — save всё равно вернёт 201 + {saved: true}. Заметка реально не привяжется — при попытке прочитать через `GET /:id/note` ответом будет 404 ENTITY_NOT_FOUND. Перед save убедитесь, что лог-запись существует.

itemType: 1 подходит для лог-записей и комментариев таймлайна. Используйте itemType: 2 только если работаете с делом из `/v1/activities`.

Заметка и лог-запись — разные понятия. Лог-запись — самостоятельный элемент в истории таймлайна (создаётся через `POST /v1/timeline-logs`). Заметка — короткий комментарий, прикреплённый к элементу. У одного элемента максимум одна заметка.

Заметку нельзя получить без entityTypeId + entityId. Несмотря на то что заметка привязана к конкретному itemId, B24 требует контекст родительской сущности при чтении и удалении. Сохраняйте эти параметры при создании.

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