# Сценарии

**Сценариев в продукте ещё нет.** Это самый сложный модуль, он спроектирован,
код не написан.

## Что уже решено

**Модель.** Сценарий — граф из узлов. Запуск — конкретный человек, идущий по графу.
Позиция — на каком узле он сейчас и когда следующий шаг.

**Типы узлов:** триггер (регистрация, оплата, вход в сегмент, открытие урока, ответ
на задание, посещение вебинара, ручной запуск), действие (отправить сообщение,
поставить тег, выдать или забрать доступ, добавить в группу, вызвать вебхук),
условие, задержка, ожидание события с таймаутом, завершение.

**Исполнение — на очередях.** Каждый шаг ставит следующий отложенной задачей.
Перезапуск сервера не теряет запущенные сценарии, и это не бонус, а требование:
сценарий с задержкой в трое суток иначе не существует.

**Счётчики на узлах с первого дня.** Сколько человек прошло, сколько сейчас ждёт,
сколько отвалилось. Без этого редактор бесполезен для работы с воронкой: видно,
что сценарий есть, и не видно, где он не работает.

**Трассировка конкретного человека.** Полный путь по графу: где он сейчас, что
произошло на каждом узле, почему он застрял. Доступна и в интерфейсе, и по API —
чтобы можно было построить свой мониторинг воронок.

## Условия здесь не такие, как в доступе к уроку

Важная деталь, которую стоит знать заранее: **это два разных языка условий**,
и общего кода у них нет.

- **Условия доступа к уроку** — только «и», без вложенности и отрицания.
  Цена ошибки: заплативший ученик не попал в урок.
- **Условия сегмента и ветвления сценария** — «и» и «или» с одним уровнем
  вложенности, отрицание — свойство условия. Цена ошибки: неверная рассылка,
  и число попавших видно до отправки.

## Где следить

[Обновления](/changelog/). Спроектированный состав операций —
в [Проекте API](/api/reference/scenarii-avtomatizacii/).
