Пример: пост каждую неделю
Опубликуйте определение процесса, поставьте триггер на еженедельное срабатывание в вашем часовом поясе, проверьте, что ушло, и выключите расписание.
У вас есть пост, связанный с вашими аккаунтами, и вы хотите, чтобы он выходил каждый вторник и пятницу утром, а не прямо сейчас. Планирование состоит из двух шагов: опубликовать определение процесса, затем поставить триггер на расписание.
Что нужно: клиент ИИ, подключённый к Papera, и процесс с постом, его аккаунтами и триггером, связанным с постом. Шаги с 1 по 5 статьи один пост во все аккаунты собирают ровно это.
Идентификаторы ниже сокращены для читаемости.
1. Опубликуйте определение
Расписание срабатывает на сервере по сохранённому снимку процесса, а не по тому, каким черновик оказался в этот момент. Поэтому процесс сначала нужно опубликовать.
// publish_workflow
{ "project_id": "9c1f2a84", "workflow_id": "41ac7d20" }
Вызов возвращает план и токен. План говорит, что войдёт в снимок. Этот инструмент ничего не публикует наружу ни сейчас, ни потом: он только записывает определение, по которому может работать расписание.
// publish_workflow
{ "project_id": "9c1f2a84", "workflow_id": "41ac7d20", "confirm_token": "ct_2f10..." }
2. Поставьте триггер на расписание
Вы: Публикуй каждый вторник и пятницу в 9 утра по Берлину, начиная со следующего вторника.
// arm_schedule
{
"project_id": "9c1f2a84",
"workflow_id": "41ac7d20",
"trigger_id": "trigger-c3",
"fire_at": "2026-08-25T07:00:00Z",
"recurrence": {
"kind": "weekly",
"timeOfDay": "09:00",
"daysOfWeek": [2, 5],
"timeZone": "Europe/Berlin"
}
}
daysOfWeek считает от воскресенья как 0, поэтому [2, 5] это вторник и
пятница. timeOfDay это время на стенных часах в указанном вами часовом поясе,
то есть 9 утра остаётся 9 утра при переводе часов. fire_at это первое
срабатывание в формате ISO 8601.
Papera возвращает план словами до того, как что-либо поставит на расписание:
Papera: Ставит триггер
trigger-c3. Первое срабатывание 25 августа 2026 в 09:00, далее еженедельно во вторник и пятницу в 09:00 (Europe/Berlin).
Проверьте день и часовой пояс, затем подтвердите:
// arm_schedule
{
"project_id": "9c1f2a84",
"workflow_id": "41ac7d20",
"trigger_id": "trigger-c3",
"fire_at": "2026-08-25T07:00:00Z",
"recurrence": {
"kind": "weekly",
"timeOfDay": "09:00",
"daysOfWeek": [2, 5],
"timeZone": "Europe/Berlin"
},
"confirm_token": "ct_9ab3..."
}
Если процесс не был опубликован, arm_schedule здесь откажет и попросит сначала
выполнить publish_workflow.
3. Проверьте, что ушло
После срабатывания результат записывается по каждому аккаунту, ровно так же, как при публикации вручную:
// get_publish_status
{ "project_id": "9c1f2a84" }
В каждой строке названы аккаунт, опубликовано или не удалось, и ссылка на живой пост при успехе.
4. Выключите расписание
// disarm_schedule
{ "project_id": "9c1f2a84", "workflow_id": "41ac7d20", "trigger_id": "trigger-c3" }
Подтвердите возвращённым токеном, и триггер перестанет срабатывать. Уже вышедшие посты это не затрагивает, а поставить его на расписание снова можно в любой момент.
Другие ритмы
| Что вам нужно | recurrence |
|---|---|
| Один пост в заданное время | { "kind": "none" } |
| Каждые шесть часов до конца года | { "kind": "interval", "every": 6, "unit": "hour", "endAt": "2026-12-31T00:00:00Z" } |
| Каждое утро | { "kind": "daily", "timeOfDay": "09:00", "timeZone": "Europe/Berlin" } |
Интервал не может быть меньше пяти минут.
Если вы измените процесс позже
Расписание работает по снимку, поэтому правки в черновике не доходят до него, пока вы не опубликуете снова. Помните о двух вещах:
- Выполните
publish_workflowещё раз после правки, которую расписание должно подхватить. - Публикация заменяет снимок, и любое поставленное расписание, чей триггер больше не входит в черновик, останавливается. Удаление триггера отменяет его расписание.