# To-do дела CRM

Создание и изменение дел типа «To-do» — дел провайдера `CRM_TODO` у сделки, лида, контакта или компании. Чтение и список таких дел — в разделе [Дела](../activities.md).

Битрикс24 API: `crm.activity.todo.*`
Скоуп: `crm`

## Операции

- [Создать to-do](./todos/create.md) — `POST /v1/activity-todos`
- [Изменить to-do](./todos/update.md) — `PATCH /v1/activity-todos/:id`

## Ключевые поля

| Поле | Тип | Описание |
|------|-----|---------|
| `ownerTypeId`, `ownerId` | number | Объект CRM, к которому относится дело. Для сделки `ownerTypeId` равен `2`, `ownerId` — ID из [`GET /v1/deals`](/docs/entities/deals/list). Задаются только при создании |
| `deadline` | string | Срок дела в формате ISO 8601. В ответе приходит в UTC |
| `title` | string | Заголовок дела. В ответе приходит в поле `subject` |
| `description` | string | Описание дела |
| `responsibleId` | number | ID ответственного. Список: [`GET /v1/users`](/docs/entities/users/list) |
| `parentActivityId` | number | ID дела, к которому привязывается новое. Список дел объекта: [`GET /v1/activities`](/docs/entities/activities/list) с фильтром по `ownerTypeId` и `ownerId` |
| `pingOffsets` | number[] | Напоминания: за сколько минут до срока напомнить |
| `colorId` | string | Цвет дела: `default` или от `1` до `7` |

Полный состав полей в ответе — [Поля дела](/docs/entities/activities/fields).

## Что нужно знать перед работой

1. **Читаются to-do через дела CRM.** Отдельного чтения и списка в этом разделе нет: используйте [`GET /v1/activities/:id`](/docs/entities/activities/get) или [`GET /v1/activities`](/docs/entities/activities/list) с фильтром `providerId=CRM_TODO`. Ответ на создание и изменение имеет ту же форму, что и `GET /v1/activities/:id`.
2. **Привязка к родителю завершает родителя.** Новое дело с `parentActivityId` связывается с существующим, и родительское дело становится завершённым. Родитель должен относиться к тому же объекту CRM.
3. **Завершённое to-do не изменяется.** `PATCH` по нему отвечает `422 ACTIVITY_TODO_COMPLETED`.
4. **Цвет задаётся только при создании.** `PATCH` с `colorId` из палитры отвечает `422 UNSUPPORTED_ACTIVITY_BLOCKS`, с цветом вне палитры — `400 INVALID_PARAMS`.

## Типичный сценарий

1. Найти сделку: [`GET /v1/deals`](/docs/entities/deals/list).
2. Создать to-do у сделки: [`POST /v1/activity-todos`](./todos/create.md) с `ownerTypeId: 2`, `ownerId` и `deadline`.
3. Перенести срок или поменять текст: [`PATCH /v1/activity-todos/:id`](./todos/update.md).
4. Проверить дело: [`GET /v1/activities/:id`](/docs/entities/activities/get).
5. Завершить дело: [`POST /v1/activities/:id/complete`](/docs/entities/activities/complete).

## Лимиты

| Лимит | Значение |
|-------|----------|
| Пагинация | не применяется — в разделе нет списков |
| Пакетные вызовы | не поддерживаются: [`POST /v1/batch`](/docs/batch) отвечает `UNKNOWN_ENTITY` на `activity-todos`, эндпоинты раздела вызываются по одному |
| Частота запросов | общая для API Вайбкод — см. [Лимиты и оптимизация](/docs/optimization) |

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

- [Дела](../activities.md)
- [Завершить дело](/docs/entities/activities/complete)
- [Перенести срок](/docs/entities/activities/deadline)
- [Сделки](../deals.md)
- [Справочник сущностей](/docs/entity-api)
