Use Case 2: Розгалуження за вибором клієнта
Рівень: базовий · Модулі: Scenario Builder · Ноди: MessageKeyboard, Router (опційно)
Перед стартом: прочитайте Edge-driven flow і Розгалуження: Router / switch.
Необхідні права та доступ
| Що потрібно | Де в меню | Навіщо |
|---|---|---|
| Scenario Builder | Меню → Scenario Builder | Меню, edges, Router |
Якщо розділу немає в меню — перевірте права облікового запису або зверніться до підтримки ConnectiveOne.
Бізнес-контекст
Бот показує меню: «Продаж», «Підтримка», «Інше» — і веде клієнта в різні гілки сценарію. Це основа більшості client-ботів: один вхід, кілька бізнес-напрямків.
Очікуваний результат
- Кнопки меню ведуть у різні гілки сценарію.
- Значення вибору зберігається у змінній
user_choice(для Runs і подальших кроків). - Якщо клієнт написав текст замість кнопки — зрозуміла підказка (default).
- Розуміння різниці: edges з кнопок vs Router за змінною після збереження вибору.
Архітектура flow
Start → MessageKeyboard (3 кнопки)
├─ edge «sales» → MessageKeyboard (гілка Продаж)
├─ edge «support» → MessageKeyboard (гілка Підтримка)
├─ edge «other» → MessageKeyboard (гілка Інше)
└─ edge default / вільний текст → «Оберіть пункт меню»
Важливо: для меню за кнопками — окремий edge на кожну кнопку MessageKeyboard. Альтернатива — нода Router (
first_match+ default) після збереження вибору в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
- Кожна кнопка → своя гілка.
- У trace:
user_choice=sales|support|other. - Випадковий текст → default.
Крок 4 (опційно). Router — одна нода за user_choice
Замість трьох окремих edges після меню можна зібрати Router (action_router):
| Налаштування | Значення |
|---|---|
| Режим | first_match |
| Правило 1 | {{user_choice}} equals sales → гілка Продаж |
| Правило 2 | equals support → Підтримка |
| Правило 3 | equals other → Інше |
| Default branch | «Оберіть пункт меню» |
Альтернатива: Action switch з тими самими умовами — зручно для JSON-сценаріїв.
Legacy action
if_elseу старих ботах робить те саме; на навчанні використовуйте Router абоswitch.
Критерії приймання (self-check Runs)
Типові помилки
| Симптом | Причина | Що зробити |
|---|---|---|
| Усі кнопки ведуть в одну гілку | Один edge на всі кнопки | Окремий edge на кожен payload |
user_choice порожній |
Не задано Output Variable | Увімкнути Output Variable на MessageKeyboard |
| Бот «замовкає» після тексту | Немає default edge | Підключити default → підказка |
| Невірна гілка в Router | Порівняння з іншим значенням | Звірити payload кнопок і правила Router |
| Завжди default у Router | Немає default branch | Увімкнути default branch у Router |