Інструкція
Markdown статтіПовідомити про помилку

Use Case 2: Розгалуження за вибором клієнта

Рівень: базовий · Модулі: Scenario Builder · Ноди: MessageKeyboard

Перед стартом: прочитайте Edge-driven flow і Розгалуження: edges / Router / switch.

Необхідні права та доступ

Що потрібно Де в меню Навіщо
Scenario Builder Меню → Scenario Builder Меню та edges

Якщо розділу немає в меню — перевірте права облікового запису або зверніться до підтримки ConnectiveOne.

Бізнес-контекст

Бот показує меню: «Продаж», «Підтримка», «Інше» — і веде клієнта в різні гілки сценарію. Це основа більшості client-ботів: один вхід, кілька бізнес-напрямків.

Очікуваний результат

  • Кнопки меню ведуть у різні гілки сценарію.
  • Значення вибору зберігається у змінній user_choice (для Runs і подальших кроків).
  • Якщо клієнт написав текст замість кнопки — зрозуміла підказка (default).
  • Розуміння: для меню за кнопками основний спосіб — окремі edges, а не Router.

Архітектура flow

Start → MessageKeyboard (3 кнопки)
   ├─ edge «sales»    → MessageKeyboard (гілка Продаж)
   ├─ edge «support»  → MessageKeyboard (гілка Підтримка)
   ├─ edge «other»    → MessageKeyboard (гілка Інше)
   └─ edge default / вільний текст → «Оберіть пункт меню»

Важливо: для меню за кнопками — окремий edge на кожну кнопку MessageKeyboard + default для вільного тексту. Нода Router тут не підходить: вона працює з полями контексту звернення (канал, статус, теги…), а не з довільною змінною на кшталт user_choice.

Покрокова реалізація

Крок 1. MessageKeyboard — меню

Нода: Повідомлення з кнопками.

Параметр Значення Навіщо
Текст «Оберіть тему звернення:» Меню
Тип клавіатури inline Кнопки під повідомленням
Кнопка 1 Текст: «Продаж» · payload / value: sales Стабільне значення
Кнопка 2 «Підтримка» · support
Кнопка 3 «Інше» · other
Output Variable user_choice Записує вибір — перевіряйте в Runs

Edges:

Edge Куди Навіщо
sales MessageKeyboard «Ви обрали Продаж…» Окрема гілка за edge кнопки
support «Підтримка…»
other «Інше…»
Default «Натисніть одну з кнопок меню.» Не залишати клієнта без відповіді

Крок 2. Три гілки-відповіді

Нода: MessageKeyboard (×3).

Гілка Текст (приклад)
sales «Відділ продажу. Напишіть, що вас цікавить.»
support «Підтримка. Опишіть проблему.»
other «Загальні питання. Чим можемо допомогти?»

Крок 3. Перевірка в Runs

  1. Кожна кнопка → своя гілка.
  2. У trace: user_choice = sales | support | other.
  3. Випадковий текст → default.

Коли знадобиться розгалуження за змінною (пізніше)

На цьому Use Case достатньо edges. Якщо після API, categorizer або іншої дії потрібно розгалузитись за збереженою константою сценарію — використовуйте Action switch (не Router). Деталі й типові пастки: Built-in actions — switch.

Legacy action if_else у старих ботах також порівнює вирази і має гілку else. Для нових flow за змінною — switch; для контексту звернення (канал, статус, теги) — Router.

Критерії приймання (self-check Runs)

Типові помилки

Симптом Причина Що зробити
Усі кнопки ведуть в одну гілку Один edge на всі кнопки Окремий edge на кожен payload
user_choice порожній Не задано Output Variable Увімкнути Output Variable на MessageKeyboard
Бот «замовкає» після тексту Немає default edge Підключити default → підказка
Не вдається обрати user_choice у Router Router не приймає довільні змінні сценарію Для меню лишіться на edges; за константою — switch

Пов'язана документація

Працюєте з власним ШІ-агентом?Встановіть відкритий skill, щоб ваш ШІ-агент працював з актуальною офіційною документацією ConnectiveOne.Отримати skillПотрібна підтримка?Не знайшли відповідь або потрібна допомога команди ConnectiveOne? Створіть запит у Client Portal.Створити запит