Skip to main content

Внешние системы: Function и инструменты

Цель модуля: вызвать CRM двумя разными способами и понимать, когда какой уместен.
Есть два способа сходить во внешнюю систему, и разница между ними — кто решает, что пора идти.
Инспектор узла Function: заглушка или HTTP, параметры, переменные из ответа

Function. Переключатель Заглушка / HTTP, параметры с {{var}}, разбор ответа по JSONPath в переменные и реплика-филлер на время вызова.

Инспектор узла Function: заглушка или HTTP, параметры, переменные из ответа
Инспектор Conversation с инструментом book_appointment и переопределением модели

Conversation + инструмент. Тот же вызов, но решение принимает модель: инструмент book_appointment плюс своя модель генерации для этого узла.

Инспектор Conversation с инструментом book_appointment и переопределением модели

Что настраивается у Function

  • Метод, URL, query, заголовки, тело — с подстановкой {{var}} и секретов {{env.ИМЯ}}. Секрет в поле не пишут: пишут имя переменной окружения.
  • Таймаут, ретраи, проверка TLS, критерий успеха (2xx и подобное).
  • Переменные из ответаslots_count ← $.count. После вызова доступны служебные <имя>_status, _success, _error, _result: по ним строят ветвление «успех / ошибка» формулой.
  • Реплика во время вызова — «Секунду, смотрю свободное время…». В голосе это не украшение: без неё клиент слышит тишину на всё время запроса.
  • Заглушка — фиксированный ответ. На ней собирают и тестируют флоу, пока API клиента не готов, и ею же пользуется чат-тест в режиме «заглушки HTTP».
Грабли: неуспех — это тоже маршрутСеть падает, CRM отвечает 500. Если из Function выходит один переход Always, ошибка поедет дальше как «всё хорошо» — с пустыми переменными. Правильно: после Function поставить ветвление по {{имя}}_success и вести неуспех на человека или на вежливое «мы перезвоним».