Связи реакций
Реакции редко работают в одиночку — они вызывают друг друга кнопками, цепочками, веткой «иначе», ответами в диалоге и так далее. Связи реакций показывают этот граф переходов: для любой реакции видно, куда она ведёт (исходящие связи) и откуда в неё приходят (входящие связи). Это помогает не потеряться в больших сценариях и безопасно удалять реакции.
Что такое связь
Связь — это направленный переход от одной реакции к другой, помеченный механизмом, который этот переход породил. Платформа обходит реакцию целиком и собирает все исходящие переходы, отбрасывая ссылки на саму себя и пустые цели, а одинаковые переходы схлопывает. Список связей доступен из редактора реакции и по API: GET /api/bots/{id}/reactions/{id}/links.
Входящие и исходящие
- Исходящие — на какие реакции ссылается текущая (её кнопки, цепочки, ветка «иначе» и т. д.).
- Входящие — какие реакции ссылаются на текущую. Полезно перед удалением: если на реакцию кто-то ссылается, удаление разорвёт сценарий.
12 механизмов связей
- Кнопка (
button) — inline-кнопка типа «Вызов реакции» открывает другую реакцию при нажатии. - Замена кнопкой (
button_replace) — кнопка с поведением «заменить сообщение» подставляет содержимое привязанной реакции. - Динамическая кнопка (
dynamic_button) — кнопка из блока «Динамические кнопки из списка» ведёт в реакцию. См. Динамические кнопки и параметры. - Блок «Реакция» (
block) — блок сообщения, который вызывает другую реакцию по ходу отправки. - Цепная реакция (
chain) — действие «Цепная реакция» запускает другую реакцию. - Ветка «иначе» (
else) — если условия не выполнились, управление уходит в указанную реакцию. - Веб-запрос: успех (
web_success) — реакция, запускаемая при успешном веб-запросе. - Веб-запрос: ошибка (
web_error) — реакция, запускаемая при ошибке веб-запроса. - Ожидаемый ответ (
expected_answer) — реакция, которая срабатывает на ответ пользователя в шаге диалога. - Таймаут ожидания (
expected_timeout) — реакция, срабатывающая, если ответа не было до таймаута. - Следующая реакция (
goto_next) — действие «Следующая реакция» передаёт управление следующей подходящей реакции в списке. - Сценарий (
flow) — реакция, привязанная к завершению сценария (flow).
Зачем смотреть граф
- Навигация по сценарию — быстро перейти к связанной реакции, не ища её в списке.
- Безопасное удаление — увидеть входящие связи и не сломать переходы.
- Аудит — проверить, что все ветки сценария ведут куда нужно и нет «висящих» переходов.
Что дальше
- Реакции: основы — порядок срабатывания, цепочки и
goto_next. - Сообщения и кнопки — кнопки и шаги диалога, порождающие связи.
- Динамические кнопки и параметры — связи через динамическую клавиатуру.
- Сценарии — связь через завершение сценария.