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 для бизнес-процессов.