Дела
Управление делами CRM: звонки, встречи, задачи, email. Привязываются к сделкам, лидам, контактам и другим сущностям.
Bitrix24 API: crm.activity.*
Скоуп: crm
Одно дело можно показать в таймлайне сразу нескольких CRM-сущностей — см. Привязки дел.
Дело с собственным оформлением в таймлайне — иконка, заголовок, блоки, кнопки — создаётся через Конфигурируемые дела.
AI-расшифровку звонка клиента — дела типа «Звонок» — возвращает Расшифровки звонков CRM.
Создать дело
POST /v1/activities
Создаёт новое CRM-дело: звонок, встречу, задачу или email. Дело привязывается к CRM-сущности через ownerTypeId + ownerId.
Поля запроса (body)
Минимальный набор для создания дела — subject, typeId, communications плюс привязка к CRM-сущности. Привязку задаёт либо пара ownerTypeId + ownerId, либо поля entityTypeId + entityId внутри элемента communications. Если не задано ни одно из двух, Bitrix24 не может привязать коммуникацию и возвращает ошибку про communications.
| Параметр | Тип | Обяз. | Описание |
|---|---|---|---|
subject |
string | да | Тема дела |
typeId |
number | да | Тип: 1 — звонок, 2 — встреча, 3 — задача, 6 — email |
communications |
object[] | да | Коммуникации дела. Массив объектов: [{ "value": "+7…", "entityTypeId": 3, "entityId": 17 }]. Вложенные ключи принимаются в camelCase (type, value, entityTypeId, entityId) — как и во всём остальном API — либо в ВЕРХНЕМ регистре Bitrix24 (TYPE, VALUE, ENTITY_TYPE_ID, ENTITY_ID). value — телефон/e-mail; entityTypeId + entityId — CRM-сущность, которой принадлежит коммуникация (задаёт привязку, если не переданы ownerTypeId/ownerId). Когда владелец указан, достаточно [{ "value": "+7…" }] |
ownerTypeId |
number | да¹ | Тип родительской сущности: 1 — лид, 2 — сделка, 3 — контакт, 4 — компания |
ownerId |
number | да¹ | ID родительской сущности. Поиск: GET /v1/deals, GET /v1/leads, GET /v1/contacts, GET /v1/companies |
responsibleId |
number | Ответственный. По умолчанию — текущий пользователь. Список: GET /v1/users |
|
description |
string | Описание | |
priority |
number | Приоритет: 1 — низкий, 2 — средний, 3 — высокий |
|
direction |
number | Направление: 1 — входящее, 2 — исходящее |
|
completed |
boolean | Завершена | |
startTime |
datetime | Дата начала | |
endTime |
datetime | Дата окончания | |
deadline |
datetime | Крайний срок. На создании Bitrix24 игнорирует переданное значение и вычисляет deadline из startTime/endTime — отдельно задать его при POST нельзя |
¹ Пара ownerTypeId + ownerId нужна вместе и только если привязка не задана через entityTypeId/entityId внутри communications. Если привязка идёт через коммуникацию — оба поля можно опустить.
ℹ️ Вложенные ключи
communicationsпринимаются в двух формах: camelCase (type,value,entityTypeId,entityId) — единообразно с остальным API — и в ВЕРХНЕМ регистре Bitrix24 (TYPE,VALUE,ENTITY_TYPE_ID,ENTITY_ID). Если в одном объекте заданы обе формы одного ключа, приоритет у ВЕРХНЕГО регистра.
Полный список полей: GET /v1/activities/fields.
Примеры
curl — личный ключ
curl -X POST https://vibecode.bitrix24.tech/v1/activities \
-H "X-Api-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"typeId": 1,
"ownerTypeId": 3,
"ownerId": 17,
"subject": "Звонок клиенту",
"description": "Обсудить условия поставки",
"responsibleId": 1,
"priority": 2,
"direction": 2,
"communications": [
{ "value": "+7 999 123-45-67", "entityTypeId": 3, "entityId": 17 }
],
"startTime": "2026-04-16T10:00:00+03:00",
"endTime": "2026-04-16T10:15:00+03:00"
}'
curl — OAuth-приложение
curl -X POST https://vibecode.bitrix24.tech/v1/activities \
-H "X-Api-Key: YOUR_APP_KEY" \
-H "Authorization: Bearer USER_SESSION_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"typeId": 1,
"ownerTypeId": 3,
"ownerId": 17,
"subject": "Звонок клиенту",
"description": "Обсудить условия поставки",
"responsibleId": 1,
"priority": 2,
"direction": 2,
"communications": [
{ "value": "+7 999 123-45-67", "entityTypeId": 3, "entityId": 17 }
],
"startTime": "2026-04-16T10:00:00+03:00",
"endTime": "2026-04-16T10:15:00+03:00"
}'
JavaScript — личный ключ
const res = await fetch('https://vibecode.bitrix24.tech/v1/activities', {
method: 'POST',
headers: {
'X-Api-Key': 'YOUR_API_KEY',
'Content-Type': 'application/json',
},
body: JSON.stringify({
typeId: 1,
ownerTypeId: 3,
ownerId: 17,
subject: 'Звонок клиенту',
description: 'Обсудить условия поставки',
responsibleId: 1,
priority: 2,
direction: 2,
communications: [
{ value: '+7 999 123-45-67', entityTypeId: 3, entityId: 17 },
],
startTime: '2026-04-16T10:00:00+03:00',
endTime: '2026-04-16T10:15:00+03:00',
}),
})
const { success, data } = await res.json()
console.log('Activity ID:', data.id)
JavaScript — OAuth-приложение
const res = await fetch('https://vibecode.bitrix24.tech/v1/activities', {
method: 'POST',
headers: {
'X-Api-Key': 'YOUR_APP_KEY',
'Authorization': 'Bearer USER_SESSION_TOKEN',
'Content-Type': 'application/json',
},
body: JSON.stringify({
typeId: 1,
ownerTypeId: 3,
ownerId: 17,
subject: 'Звонок клиенту',
description: 'Обсудить условия поставки',
responsibleId: 1,
priority: 2,
direction: 2,
communications: [
{ value: '+7 999 123-45-67', entityTypeId: 3, entityId: 17 },
],
startTime: '2026-04-16T10:00:00+03:00',
endTime: '2026-04-16T10:15:00+03:00',
}),
})
const { success, data } = await res.json()
Поля ответа
| Поле | Тип | Описание |
|---|---|---|
id |
number | ID созданного дела |
typeId |
number | Тип дела |
ownerTypeId |
number | Тип родительской сущности |
ownerId |
number | ID родительской сущности |
subject |
string | Тема |
responsibleId |
number | Ответственный |
createdAt |
datetime | Дата создания |
updatedAt |
datetime | Дата изменения |
Ответ содержит все поля дела.
Пример ответа
{
"success": true,
"data": {
"id": 3894,
"typeId": 1,
"ownerTypeId": 3,
"ownerId": 17,
"subject": "Звонок клиенту",
"description": "Обсудить условия поставки",
"responsibleId": 1,
"priority": 2,
"direction": 2,
"completed": false,
"startTime": "2026-04-16T10:00:00+03:00",
"endTime": "2026-04-16T10:15:00+03:00",
"deadline": "2026-04-16T10:00:00+03:00",
"createdAt": "2026-04-15T14:30:00+03:00",
"updatedAt": "2026-04-15T14:30:00+03:00"
}
}
Пример ответа при ошибке
400 — не передано обязательное поле (subject, typeId или communications):
{
"success": false,
"error": {
"code": "MISSING_REQUIRED_FIELDS",
"message": "Body field \"communications\" is required to create activity."
}
}
403 — нет скоупа:
{
"success": false,
"error": {
"code": "SCOPE_DENIED",
"message": "This endpoint requires 'crm' scope"
}
}
Ошибки
| HTTP | Код | Описание |
|---|---|---|
| 400 | MISSING_REQUIRED_FIELDS |
Не передано одно из обязательных полей: subject, typeId, communications (проверяется до вызова Bitrix24) |
| 400 | INVALID_REQUEST |
Невалидные значения полей |
| 403 | SCOPE_DENIED |
API-ключ не имеет скоупа crm |
| 401 | TOKEN_MISSING |
API-ключ не имеет настроенных токенов |
Полный список общих ошибок API — Ошибки.
Смотрите также
- Список дел — получение с фильтрами
- Поля дела — полный список полей
- Сделки — привязка через
ownerTypeId=2 - Лиды — привязка через
ownerTypeId=1 - Entity API — общие принципы
- Лимиты и оптимизация — rate limits