# Курс в цепочке сообщений

Source: <https://telegafirst.com/docs/chains-course-recipe>
Locale: ru
releaseGitSha: fc570c76ffc9cb87e2462d45b14f5c1b52fbaf0d
sourceContentDigest: 1a39840b3b76b007b3df2e2498981f6da8a5b931400674c1deb55649aae49fb2
Version: 1

Курс, серия уроков или обучающая рассылка собираются из обычной цепочки сообщений: отдельного «конструктора курсов» и отдельного хранилища прогресса в боте нет. Эта страница — рецепт для вашего агента: какой формы бывает цепочка-курс и что остаётся на странице курса. Общий каталог сценариев — в разделе [Сценарии и блоки для MCP-агента](https://telegafirst.com/docs/mcp-playbooks), инструменты цепочек — в разделе [Сегменты, рассылки и цепочки](https://telegafirst.com/docs/marketing).

## Правило шага: 3 перехода и 1 цель

У каждого шага цепочки не больше **трёх кнопок перехода** на другие шаги (`deeplink_buttons`) и **одной кнопки цели** (`button_target`) — ссылки на страницу, бота или мини-приложение. Так цепочку легче пройти, а курсу хватает: «дальше», «повторить» и «в меню» помещаются в три перехода.

Четвёртый переход отклоняется с кодом `CHAIN_STEP_TOO_MANY_TRANSITIONS`. Исправление: разбейте выбор на два шага или вынесите один из вариантов в кнопку цели. Шаг, сохранённый до появления правила, уходит клиентам как есть; его по-прежнему можно выключить, удалить и править, а предел проверяется только при изменении самих переходов.

После нажатия на карточке остаётся только выбранный переход (зелёный «✅ название»); остальные варианты исчезают. Кнопка цели остаётся без изменений.

## Какая бывает форма курса

* **Линейный курс.** Урок 1 → урок 2 → урок 3 → финал. Порядок гарантирует, что предыдущее пройдено.
* **Ветвление со слиянием.** Урок 1 → урок 2.1 или урок 2.2 (по выбору читателя) → урок 3. Обе ветки обязаны сходиться в общем шаге.
* **Дожим.** Если читатель не нажал «дальше», таймаут шага (`timeout_minutes` и `timeout_next_step_id`) сам ведёт его к следующему уроку.

Всё сложнее — вложенные модули, меню курса с отметками «пройдено», свободный порядок уроков — в чате не строится.

## Меню и прогресс живут на странице курса

Меню курса, список уроков и прогресс размещаются на странице курса: на сайте бизнеса, в мини-приложении или в кабинете. Кнопка цели каждого урока называется **«Все материалы»** и ведёт на эту страницу. Бот не ведёт прогресс по читателям: он только присылает следующий урок.

## Как собрать

1. `create_message_chain` — создайте цепочку и запомните её `id`.
2. `create_chain_step` для каждого урока — текст или медиа урока в `content`.
3. `list_chain_steps` — возьмите `id` шагов.
4. `update_chain_step` для каждого урока: переходы в `deeplink_buttons`, кнопка «Все материалы» в `button_target`, таймаут дожима. Уроки-входы отметьте `is_entry_point`.
5. `get_chain_step` — проверьте шаги после сборки и отдайте владельцу готовую `entry_url`.
