> Расположение: AI агенты
> Краткое содержание: Агент готовит сообщение черновиком, а отправляет сотрудник: зачем это нужно, почему работает только личным токеном, один черновик на чат и чем от черновика отличается отложенное сообщение
> Это Markdown-версия конкретной страницы. Для контекста за её пределами (правила API, полный перечень методов, авторизация) ОБЯЗАТЕЛЬНО открой [llms.txt](https://dev.pachca.com/llms.txt) перед ответом — это сэкономит токены и предотвратит неполный ответ.


# Черновик вместо отправки

Отправленное сообщение уже прочитали. Если агент написал не в тот чат, не тем тоном или не тому сотруднику, удаление не спасает: уведомление ушло, в ленте остался след, а у собеседника осталось впечатление.

Черновик убирает необратимость. Агент готовит текст, тот появляется в поле ввода нужного чата, и дальше решает сотрудник: дописать, отправить или стереть.

## Работает только личным токеном

Ограничение, от которого зависит вся конструкция: **боту черновики недоступны**. Скоупы `drafts:read` и `drafts:write` токенам ботов не выдаются, и с токеном бота метод ответит `403`.

Значит агент действует личным токеном того сотрудника, за которого пишет. Такой токен даёт [вход из CLI](/guides/cli/authentication), и черновик появляется там же, где сотрудник увидел бы свой собственный.

Это не обход ограничения, а его смысл. Черновик приватен: его не видит ни собеседник, ни администратор пространства. Агент кладёт заготовку в черновик того самого сотрудника, который потом её и отправит. Значит, и отвечать за отправленное будет он.

## Черновик появляется в поле ввода чата

Черновик кладётся в беседу одним запросом:

**Новый черновик**

```bash
curl "https://api.pachca.com/api/shared/v1/drafts" \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
  "draft": {
    "entity_type": "discussion",
    "entity_id": 334,
    "content": "Коллеги, отчёт за неделю готов, прикладываю."
  }
}'
```


Сотрудник открывает чат — текст уже в поле ввода, как будто он сам его набрал. Дальше обычная работа: поправить, дописать, отправить.

Чтобы черновик ушёл ответом на конкретное сообщение, добавьте `--parent-message-id`. Сообщение должно быть в том же чате.

## Что должен знать агент

**На повторное создание приходит `409`.** Номер уже существующего черновика придёт в `errors[].payload.draft_id`. Правильная реакция — не повторять запрос, а дописать существующий методом [Редактирование черновика](/api/drafts/update). Агент, который на `409` пробует снова, будет биться в ту же ошибку.

**Черновик перезаписывается целиком по переданным полям.** Прислали `content` — заменится текст, вложения останутся. Прислали пустой `files` — вложения снимутся. Проверки на то, что черновик успел поправить сам сотрудник, нет: побеждает последняя запись. Поэтому переписывать заготовку вслепую, когда сотрудник уже мог её открыть, не стоит — сначала прочитайте её методом [Информация о черновике](/api/drafts/get).

**Свои черновики агент видит списком** — [Список черновиков](/api/drafts/list). Полезно, чтобы не плодить заготовки и понимать, что уже подготовлено.

**Отправить черновик запросом нельзя.** Метода «отправить черновик» в API нет: отправка — это обычное [Новое сообщение](/api/messages/create), а черновик после неё убирают методом [Удаление черновика](/api/drafts/delete). Так же работает и интерфейс, когда сотрудник нажимает «Отправить сейчас». Для приёма это не ограничение, а его суть: кнопку нажимает сотрудник.

**Черновик не создаёт уведомления.** Сотрудник находит заготовку в поле ввода чата и в разделе «Черновики», но Пачка не сообщает, что она там появилась. Сказать, что готово и в каком чате, — задача той стороны, которая черновик положила.

## Отложенное сообщение

У того же метода есть поле `schedule`. С ним получается уже не черновик: сообщение уйдёт само в назначенное время, и сотрудник не увидит его до отправки. Дописывать и нажимать «Отправить» будет некому, поэтому текст должен быть готов сразу.

Внутри `schedule` три поля. `start_date` — первая отправка, и из неё же берутся время суток, число месяца и день недели, по которым дальше строится повтор. `repetition` — правило повтора. Необязательная `end_date` обрывает повтор после названной даты, без неё он идёт бессрочно.

Чтобы сообщение ушло однократно, передайте в `repetition.interval` значение `once`. Для повтора есть `daily`, `weekly`, `monthly` и более редкие периодичности вплоть до `yearly`. У недельного повтора дни задаются списком `days`, где `0` — воскресенье. У месячного вместо числа можно указать порядковый день недели: `nth_day` от 1 до 4, а 5 означает последний. Так получается «каждый последний вторник месяца».

Сотрудник видит такие сообщения не в поле ввода, а в отдельном разделе «Отложенные», и может там открыть, поправить или удалить любое.

Разница с черновиком принципиальная. «Подготовь ответ клиенту, я проверю» — черновик. «Напомни команде в понедельник утром» — отложенное сообщение. Путать их не стоит: во втором случае проверить текст будет некому.

Превратить отложенное сообщение обратно в черновик нельзя, и отменить отправку тоже можно только удалением: снять расписание правкой не выйдет, метод ответит `422`.

## Ограничения

- Обычный черновик в чате, треде или личной переписке может быть только один
- Отложенных сообщений на один чат — до 50
- Вложений в черновике — до 10
- Пустой черновик создать нельзя: нужен либо текст, либо вложения


## Связанные разделы

- [Взаимодействие с агентом](/guides/ai-agents/interaction)
- [Авторизация](/api/authorization)
- [CLI: авторизация](/guides/cli/authentication)
