#Scrum: эпики и размещение задач
Управление скрамом в проектах Битрикс24: создание и переименование эпиков, привязка задач к эпикам, размещение в бэклоге, story points. Работает поверх обычных Задач — сначала задача создаётся через POST /v1/tasks, затем размещается в скраме.
Битрикс24 API: tasks.api.scrum.epic.*, tasks.api.scrum.task.*, tasks.api.scrum.backlog.get
Скоуп: task
#Эндпоинты
| Метод | Путь | Что делает |
|---|---|---|
POST |
/v1/scrum/epics |
Создать эпик |
GET |
/v1/scrum/epics?groupId=N&limit=200 |
Список эпиков (фильтр по проекту и limit опциональны) |
GET |
/v1/scrum/epics/:id |
Получить эпик |
PATCH |
/v1/scrum/epics/:id |
Переименовать / изменить эпик |
GET |
/v1/scrum/tasks/:taskId |
Скрам-размещение задачи (бэклог/спринт, эпик, story points) |
PATCH |
/v1/scrum/tasks/:taskId |
Разместить / переместить задачу в скраме |
#Быстрый старт
#Создать эпик
curl -X POST "https://vibecode.bitrix24.tech/v1/scrum/epics" \
-H "X-Api-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "Папки в чатах",
"groupId": 7,
"description": "Зеркало эпика из внешнего трекера",
"color": "#5eead4"
}'
Ответ 201:
{
"success": true,
"data": {
"id": 87,
"groupId": 7,
"name": "Папки в чатах",
"description": "Зеркало эпика из внешнего трекера",
"createdBy": 1,
"modifiedBy": 1,
"color": "#5eead4"
}
}
#Привязать задачу к эпику
curl -X PATCH "https://vibecode.bitrix24.tech/v1/scrum/tasks/59" \
-H "X-Api-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "epicId": 87 }'
Ответ — фактическое размещение задачи после изменения (API перечитывает его, чтобы вы могли убедиться, что привязка применилась):
{
"success": true,
"data": { "entityId": 1, "epicId": 87, "storyPoints": "" }
}
#Поля эпика (POST / PATCH)
| Поле | Тип | Обяз. | Описание |
|---|---|---|---|
name |
string | ★ (POST) | Название эпика |
groupId |
number | ★ (POST) | Скрам-проект (рабочая группа). Список: GET /v1/workgroups |
description |
string | Описание | |
color |
string | Цвет, например "#5eead4" |
|
createdBy |
number | Только POST: автор, по умолчанию — пользователь ключа. В PATCH отклоняется | |
modifiedBy |
number | Только PATCH |
#Поля размещения задачи (PATCH /v1/scrum/tasks/:taskId)
| Поле | Тип | Описание |
|---|---|---|
epicId |
number | Привязка к эпику. 0 — отвязать от эпика |
entityId |
number | ID бэклога или спринта. Обычно не нужен — резолвится автоматически (см. ниже) |
storyPoints |
string | number | Story points, например "3" или "0.5". Пустая строка очищает |
sort / sortFloat |
number | Позиция в списке (sortFloat приоритетнее) |
modifiedBy |
number | Авторство изменения (createdBy в размещении не изменяется) |
#Что нужно знать перед работой
entityIdрезолвится автоматически. Если задача уже в скраме — её текущее размещение (бэклог или спринт) сохраняется. Если ещё нет — API сам находит бэклог скрам-проекта задачи и помещает её туда. ПередавайтеentityIdявно только когда нужно положить задачу в конкретный спринт.- Задача должна быть в группе. Авторазмещение работает через
groupIdзадачи. Задача без рабочей группы вернёт400 TASK_NOT_IN_GROUP— сначала перенесите её в скрам-проект (PATCH /v1/tasks/:id { "groupId": N }) или передайтеentityIdявно. - Группа должна быть скрам-проектом. Для обычной (не-скрам) группы Битрикс24 не находит бэклог — API вернёт
422 BACKLOG_NOT_RESOLVED. groupIdэпика и задачи должны совпадать. Битрикс24 отклоняет привязку задачи к эпику из другого проекта.- PATCH возвращает фактическое размещение. Нативный метод Битрикс24 возвращает только
true— API дополнительно перечитывает скрам-строку задачи, чтобы ответ был проверяемым (никаких «тихих» неуспехов). - Права. Создание эпиков и перемещение задач требуют членства B24-пользователя ключа в скрам-проекте с правом на создание задач.
- Список эпиков пагинируется автоматически.
GET /v1/scrum/epicsвозвращает доlimitэпиков (по умолчанию 200, максимум 1000) — API сам докачивает страницы Битрикс24 по 50 записей.
#Типичный сценарий: зеркалирование внешнего трекера
- Создать эпик:
POST /v1/scrum/epics { name, groupId }→ запомнитьdata.id. - Создать задачу: `POST /v1/tasks`
{ title, groupId, responsibleId, tags }. - Привязать к эпику:
PATCH /v1/scrum/tasks/:taskId { epicId }— задача автоматически попадёт в бэклог проекта. - При переименовании эпика во внешнем трекере:
PATCH /v1/scrum/epics/:id { name }. - Проверить размещение:
GET /v1/scrum/tasks/:taskId.
#Ошибки
| HTTP | Код | Причина |
|---|---|---|
| 400 | INVALID_PARAMS |
Нет обязательных полей (name, groupId), пустое тело PATCH, нечисловой id |
| 400 | TASK_NOT_IN_GROUP |
Задача без рабочей группы — авторазмещение в бэклог невозможно |
| 403 | SCOPE_DENIED |
У ключа нет скоупа task |
| 403 | WRITE_BLOCKED_READONLY_KEY |
Ключ в режиме «только чтение» |
| 404 | ENTITY_NOT_FOUND |
Эпик / задача / группа не найдены («Epic not found», «Group id not found», …) |
| 422 | BACKLOG_NOT_RESOLVED |
Группа задачи — не скрам-проект, бэклог не найден |
| 422 | BITRIX_ERROR |
Прочие ошибки Битрикс24 (например, Access denied) |
#Смотрите также
- Задачи — создание и обновление самих задач
- Чат задачи — чтение сообщений чата задачи
- Рабочие группы — источник
groupId - Лимиты и оптимизация — rate limits