Цепочки

Вызов цепочки

Кратко

Блок CALL_CHAIN запускает другую цепочку из текущей, передаёт ей переменные и возвращает выбранные переменные обратно; позволяет переиспользовать сценарии как модули.

  • Настройки: выбор цепочки, список передаваемых переменных, список возвращаемых переменных (через запятую)
  • Пустой список означает «все переменные» и для передачи, и для возврата
  • Возвращённые переменные перезаписывают значения в контексте текущей цепочки
  • Циклические вызовы (A вызывает B, B вызывает A) не выполняются, ошибка пишется в лог
На этой странице

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

Вложенной цепочке передаются переменные контекста, а после её завершения выбранные переменные возвращаются обратно.

#Настройки

ПолеОписание
ЦепочкаКакую цепочку вызвать, выбор из списка
Передаваемые переменныеИмена переменных через запятую, которые получит вложенная цепочка. Пусто: передаются все
Возвращаемые переменныеИмена переменных через запятую, которые вернутся в текущую цепочку. Пусто: возвращаются все

Пример заполнения:

text
Передать:  aiResult, lastMessage, name, phone
Вернуть:   aiResult, var_1

Возвращённые значения перезаписывают одноимённые переменные в контексте текущей цепочки.

#Как выполняется

  1. Текущая цепочка доходит до блока: запускается выбранная вложенная цепочка.
  2. Вложенная цепочка получает указанные переменные и выполняется до конца.
  3. Возвращаемые переменные записываются в контекст текущей цепочки.
  4. Текущая цепочка продолжается со следующего блока.

#Пример

Модуль «Сбор контактов» как отдельная цепочка:

text
Отправка: «Как вас зовут?»  → Ожидание ответа → Переменная var_1 = {{lastMessage}}
Отправка: «Ваш телефон?»    → Ожидание ответа → Переменная var_2 = {{lastMessage}}

Основная цепочка вызывает модуль:

text
Отправка: «Давайте оформим заявку»
Вызов цепочки: «Сбор контактов», вернуть var_1, var_2
Отправка: «Спасибо, {{var_1}}! Мы перезвоним на {{var_2}}»

Переиспользование AI-квалификации:

text
Вызов цепочки: «AI-квалификация», передать lastMessage, вернуть aiResult
Условие: {{aiResult}} содержит «горячий»?
  Да    → Отправка: «Менеджер свяжется через 5 минут»
  Иначе → Отправка: «Отправляю каталог»

#Ограничения

  • Циклические вызовы блокируются: если цепочка A вызывает B, а B вызывает A, вложенная цепочка не запустится, в лог запишется ошибка.
  • Общие лимиты выполнения (200 блоков за запуск и другие) описаны на странице Типы блоков.