Зв'язки реакцій

Реакції рідко працюють поодинці — вони викликають одна одну кнопками, ланцюжками, гілкою «інакше», відповідями в діалозі тощо. Зв'язки реакцій показують цей граф переходів: для будь-якої реакції видно, куди вона веде (вихідні зв'язки) і звідки в неї приходять (вхідні зв'язки). Це допомагає не загубитися у великих сценаріях і безпечно видаляти реакції.

Що таке зв'язок

Зв'язок — це спрямований перехід від однієї реакції до іншої, позначений механізмом, який породив цей перехід. Платформа обходить реакцію цілком і збирає всі вихідні переходи, відкидаючи посилання на саму себе і порожні цілі, а однакові переходи згортає. Список зв'язків доступний із редактора реакції і через 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).
  • Навігація по сценарію — швидко перейти до пов'язаної реакції, не шукаючи її в списку.
  • Безпечне видалення — побачити вхідні зв'язки і не зламати переходи.
  • Аудит — перевірити, що всі гілки сценарію ведуть куди потрібно і немає «висячих» переходів.

Що далі