---
title: "Ключові концепти"
description: "Edges, Router/switch, mock API, categorizer, broadcast, Instance Agent — читайте підрозділ перед відповідним Use Case."
---

# Ключові концепти платформи

**Не читайте весь файл одразу** — лише підрозділ перед відповідним Use Case.

| Підрозділ | Коли читати |
|-----------|-------------|
| [Edge-driven flow](#edge-driven-flow) | Перед **Use Case 2** і далі |
| [Розгалуження: Router / switch](#router-branching) | Перед **Use Case 2** (опційно), **Use Case 4**, **Use Case 10** |
| [AI Помічник і База знань](#instance-agent) | Перед **Use Case 1**; нагадування після UC-1…4 |
| [Mock vs production API](#mock-vs-production-api) | Перед **Use Case 4** |
| [Categorizer pattern](#categorizer-pattern) | Перед **Use Case 10** |
| [Broadcast vs scenario entry](#broadcast-vs-scenario-entry) | Перед **Use Case 11** |

**Змінні діалогу vs Registered Users** — у [Use Case 6](/uk/learn/implementer/training/basic/use-case-06-registered-users.md).

---

## Edge-driven flow {#edge-driven-flow}

ConnectiveOne — **edge-driven**: після Action виконання йде по **гілці (edge)**, яку ви підключили на полотні.

| Тип ноди | Обов'язково обробити |
|----------|---------------------|
| **Action** (API, custom) | `success` + **`error`** |
| **operator_panel__connect_to_operator_with_msg** | **`success`** + **`limit`** + **`error`** |
| **registered_users__get** | **`success`** + **`error`** |
| **action_fastline_pro** | відповідь AI + **fallback** |
| **action_tickets_create** | **`success`** + **`error`** |
| **Router** / **`switch`** | кожне правило + **default** / `else` |
| **MessageKeyboard** | кожна кнопка або **default** |

**Принцип:** сценарій не повинен обриватися без повідомлення клієнту. Якщо edge не підключений — бот може «замовкнути» (див. [Use Case 9](/uk/learn/implementer/training/basic/use-case-09-scenario-audit.md)).

→ [Built-in actions](/uk/scenariobuilder/reference/standard-built-in-actions.md)

---

## Розгалуження: Router / switch {#router-branching}

| Підхід | Коли використовувати |
|--------|---------------------|
| **Edges з MessageKeyboard** | Меню за кнопками — окремий edge на кожну кнопку + **default** для вільного тексту |
| **Router** (`action_router`) | Розгалуження за **змінною** після збереження вибору або API; режим `first_match` + **default branch** |
| **Action `switch`** | Те саме в Action-ноді — зручно для JSON / імпортованих сценаріїв |

**На навчанні:** за змінною (`user_choice`, `ticket_category`, `crm_data`) будуємо **Router** або **`switch`**, не legacy action `if_else`.

> У старих сценаріях можна зустріти **`if_else`** — логіка та сама (умови + `else`), але для нових flow краще Router.

→ [Умовні гілки (Router)](/uk/scenariobuilder/explanation/router-node.md) · [Built-in actions — switch](/uk/scenariobuilder/reference/standard-built-in-actions.md)

---

## AI Помічник і База знань {#instance-agent}

| Інструмент | Де | Навіщо на навчанні |
|------------|-----|-------------------|
| **База знань** (Fast Line Pro) | Fast Line Pro → База знань | Документи для FAQ (Use Case 1); дочекайтеся індексації |
| **AI Помічник (Instance Agent)** | Іконка «іскра» у Scenario Builder | Пояснення нод; опційно — перезбірка UC **після** ручної реалізації |

**Правило:** Use Case збираєте **руками** → self-check у Runs → опційно той самий UC через Agent і порівняння. Agent **не** замінює перший прохід.

→ [Що таке AI Помічник](/uk/constructor/explanation/what-is-ai-assistant.md) · [FAQ — Instance Agent](/uk/learn/implementer/training/reference/faq.md#ai-помічник-instance-agent)

---

## Mock vs production API {#mock-vs-production-api}

Для **Use Case 4** достатньо **mock API** — не потрібна справжня CRM.

| Підхід | Коли | Приклад |
|--------|------|---------|
| **Публічний mock** | Навчання, перші інтеграції | [JSONPlaceholder](https://jsonplaceholder.typicode.com/) |
| **Webhook inspector** | Побачити запит | [webhook.site](https://webhook.site/) |
| **Instance Settings + URL** | Імітація CRM з токеном | `training_api_token` + mock URL |
| **Production CRM** | Реальний проєкт | Після базового рівня |

→ [Action Jail — інтеграції](/uk/actionjail/how-to/integrator-embed-actions.md)

---

## Categorizer pattern {#categorizer-pattern}

**Вхід:** вільний текст клієнта.  
**Вихід:** категорія або `subject_alias`.

1. Fast Line Pro (Чат-бот) + [categorizer prompt](/content/uk/learn/implementer/training/scenarios/prompts/categorizer-training.txt)
2. `action_fastline_pro` → змінна `ticket_category`
3. **Router** / **`switch`** → мапінг на тему тікета

**Use Case 10:** categorizer перед `action_tickets_create`.

---

## Broadcast vs scenario entry {#broadcast-vs-scenario-entry}

| Шлях | Коли |
|------|------|
| **Alias entry** + Broadcast template | Use Case 11 — разова/масова розсилка |
| **`action_broadcast__subscribe`** | Підписка на topic |
| **`send_after` / `one_time`** | Відкладена / одноразова доставка |

Alias має **точно** збігатися між сценарієм і шаблоном.

→ [Налаштувати alias для розсилки](/uk/broadcast/how-to/configure-broadcast-alias.md)

---

## Довідкові матеріали

- [Глосарій actions](/uk/learn/implementer/training/reference/actions-glossary.md)
- [FAQ](/uk/learn/implementer/training/reference/faq.md)
- [Матриця тестування](/uk/learn/implementer/training/reference/testing-matrix.md)
- [Коли не сценарій](/uk/learn/implementer/training/reference/when-not-scenario.md)
