Advanced flow patterns

Для сложных сценариев — паттерны, проверенные на 1000+ ботов.

State Machine

Используйте `set_variable` для отслеживания состояния клиента:

``` state = "initial" → onboarding flow state = "onboarded" → main menu state = "trial_active" → upsell flow state = "paying" → support flow ```

В начале каждого flow — `condition` на `#{state}` для роутинга.

Sub-flows (composability)

Большой flow → разбейте на sub-flows:

  • "Главное меню" — entry point
  • "Регистрация" — отдельный flow
  • "Заказ" — отдельный flow
  • "Поддержка" — отдельный flow

Связь через action `trigger_flow` или callback button с `/start_flow_X`.

Dynamic loops

Если нужно повторять блок N раз:

  • `set_variable counter = N`
  • Цикл: `condition counter > 0` → действие → `set_variable counter = #{counter - 1}`
  • При counter = 0 — выход из цикла

Важно: visited-set ImpactBot ограничивает 50 итерациями (защита от бесконечных циклов).

Re-engagement triggers

Автоматический возврат неактивных клиентов:

  • Trigger: `scheduled` (cron-like, каждый день)
  • Filter: clients с `last_active < 14 дней`
  • Action: send personalized message

Webhook → flow → CRM

Внешний событийный bus: 1. Webhook `/api/webhooks/custom/X` → ImpactBot 2. Trigger `webhook_event_X` → flow runs 3. Flow обогащает данные через GPT/API 4. Action `crm_create_deal` → AmoCRM

Это превращает бота в orchestrator для бизнес-процессов.