Блок запускает другую цепочку из текущей, ждёт её завершения и продолжает выполнение с полученными результатами. Так один сценарий (например, сбор контактов) собирается один раз и вызывается из любых цепочек как модуль, без копирования блоков.
Вложенной цепочке передаются переменные контекста, а после её завершения выбранные переменные возвращаются обратно.
#Настройки
| Поле | Описание |
|---|---|
| Цепочка | Какую цепочку вызвать, выбор из списка |
| Передаваемые переменные | Имена переменных через запятую, которые получит вложенная цепочка. Пусто: передаются все |
| Возвращаемые переменные | Имена переменных через запятую, которые вернутся в текущую цепочку. Пусто: возвращаются все |
Пример заполнения:
Передать: aiResult, lastMessage, name, phone
Вернуть: aiResult, var_1Возвращённые значения перезаписывают одноимённые переменные в контексте текущей цепочки.
#Как выполняется
- Текущая цепочка доходит до блока: запускается выбранная вложенная цепочка.
- Вложенная цепочка получает указанные переменные и выполняется до конца.
- Возвращаемые переменные записываются в контекст текущей цепочки.
- Текущая цепочка продолжается со следующего блока.
#Пример
Модуль «Сбор контактов» как отдельная цепочка:
Отправка: «Как вас зовут?» → Ожидание ответа → Переменная var_1 = {{lastMessage}}
Отправка: «Ваш телефон?» → Ожидание ответа → Переменная var_2 = {{lastMessage}}Основная цепочка вызывает модуль:
Отправка: «Давайте оформим заявку»
Вызов цепочки: «Сбор контактов», вернуть var_1, var_2
Отправка: «Спасибо, {{var_1}}! Мы перезвоним на {{var_2}}»Переиспользование AI-квалификации:
Вызов цепочки: «AI-квалификация», передать lastMessage, вернуть aiResult
Условие: {{aiResult}} содержит «горячий»?
Да → Отправка: «Менеджер свяжется через 5 минут»
Иначе → Отправка: «Отправляю каталог»#Ограничения
- Циклические вызовы блокируются: если цепочка A вызывает B, а B вызывает A, вложенная цепочка не запустится, в лог запишется ошибка.
- Общие лимиты выполнения (200 блоков за запуск и другие) описаны на странице Типы блоков.
