---
title: "FAQ: типові проблеми під час навчання"
description: "Self-debug для типових помилок у сценаріях: Fast Line Pro, edges, connect, CSAT, tickets, broadcast та канали."
---

# FAQ: типові проблеми під час навчання

> Довідник self-debug для навчального треку. Якщо сценарій коректний, а поведінка платформи суперечлива — **служба підтримки ConnectiveOne**.

---

## Fast Line Pro

### AI не відповідає або `{{ai_answer}}` порожній

| Причина | Що зробити |
|---------|------------|
| `save_response` порожній / не задано | У параметрах `action_fastline_pro` вказати **ім'я змінної**, напр. `save_response: ai_answer` (далі `{{ai_answer}}`) |
| База знань не проіндексована | Fast Line Pro → дочекатися завершення обробки документа |
| Невірний `agent_name` | Ім'я має збігатися з агентом у Fast Line Pro |
| Агент не тестується окремо | Fast Line Pro → «Тестування агента» без сценарію |

### AI відповідає не те / галлюцинації

- Перевірити вміст FAQ-документа (короткий txt для навчання)
- Додати fallback edge і повідомлення «Переформулюйте питання»

---

## Розгалуження (Router / switch та edges)

### Завжди йде одна гілка

- Runs → значення змінної в умові (напр. `{{user_choice}}` порожня)
- Переконатися, що кнопка MessageKeyboard **записує** значення в змінну
- Тип порівняння: рядок `'priority'` vs число `1` vs boolean `true`
- У **Router** увімкнути **default branch** для решти випадків
- У MessageKeyboard підключити **default** edge для вільного тексту

### Зустріли legacy `if_else` у старому сценарії

- Логіка та сама, що в Router: умови + `else`
- На навчанні для нових flow використовуйте **Router** або **`switch`**

### Router / `switch` «не працює» після registered_users__get

- На навчанні **Use Case 2** **не використовує** registered_users — спочатку просте меню з edges або Router за `user_choice`
- Якщо все ж `__get`: edge `error` = клієнт не знайдений — це очікувана гілка, не баг

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

---

## Передача на оператора зі сценарію (Use Case 3)

### Edge `limit` не спрацьовує / клієнт у черзі, але тиша

- У параметрах connect: `status: "queue"` (за потреби)
- Після edge `limit` **має бути** MessageKeyboard з текстом для клієнта
- Перевірити Runs: на якому edge зупинилось виконання

### Connect повертає `error`

- `subject_alias` не збігається з alias теми в Settings → Operator Panel → Теми
- Тема не створена або alias з помилкою (регістр, пробіл)

### Connect `success`, але діалог не там, де очікували

1. Спочатку звірте `subject_alias` у сценарії з темою в Settings
2. Далі — [документація Operator Panel](/uk/operatorline/integrator-hub.md) (маршрутизація, оператори)

---

## CSAT / NPS (Use Case 7b)

### CSAT не запускається після закриття діалогу

- Перевірте `chat_closed_alias` у **усіх** connect-блоках — має вказувати на alias секції CSAT
- Немає дубльованого alias entrypoint у двох секціях
- Секція CSAT існує, alias латиницею

### Помилка запису в Custom Data / INTEGER

- Поле `rate` має тип **INTEGER** у моделі CD
- Free-text на keyboard потрапив у `__set` — захистіть source-handle (від'єднати або Router / validation)
- У Runs: надішліть текст замість кнопки — очікуйте edge `error`, не success на запис

### Оцінка не збирається в email / каналі без keyboard

- Перевірте `supportedMessengers` на ноді keyboard
- Додайте окрему гілку або пропуск CSAT для каналів без кнопок

### NPS / оцінка не після close у widget

- Перевірте alias `chat_closed` / `call_node` path у connect-блоці
- Audit alias у Runs після симуляції close

---

## Operator Panel / черга *(довідково)*

### Оператор не бачить діалог

- Спочатку: `subject_alias` у сценарії vs тема в Settings
- Далі: оператор прив'язаний до теми / skill group — [документація OP](/uk/operatorline/integrator-hub.md)
- Якщо сценарій і Settings коректні — **служба підтримки ConnectiveOne**

---

## Action Jail / телефон (Use Case 5)

### Три формати UA-номера

| Ввід | Очікування |
|------|------------|
| `+380501234567` | success |
| `380501234567` | нормалізація до `+380…` |
| `0501234567` | нормалізація до `+380…` |

Якщо один формат падає — розширте regex / Action Jail; перевірте validation на WaitForInput (`phone` vs `none`).

### Validation на ноді vs Action Jail

- **Validation на input** — відсікає невалідний ввід до action
- **Action Jail** — нормалізує допустимі варіанти до єдиного формату
- Для production часто потрібні **обидва**

---

## CRM / mock API (Use Case 4)

### Яку CRM використовувати для навчання?

**Mock.** Див. [Mock vs production API](/uk/learn/implementer/training/concepts.md#mock-vs-production-api). Справжня CRM — після базового рівня (Use Case 1…9).

### 401 / порожня відповідь

- Токен у `headers` через `{{instance_settings.…}}`
- Ключ Instance Settings існує і заповнений
- `save_responce` (або `response_mapping`) задано в ноді — перевірте ім'я змінної в Runs

### У legacy `if_else` завжди йде в гілку «не знайдено»

- Порівняння `status`: рядок `"200"` vs число `200` — перевірити в Runs фактичний тип
- Перевірити, що `save_responce` записав очікувані поля в `{{crm_data.*}}`

---

### Чат-бот vs Агент у Fast Line Pro

| Питання | Відповідь |
|---------|-----------|
| Чим відрізняються? | **Чат-бот** — відповіді з БЗ/промпту без інструментів. **Агент** — те саме + Інструменти і розширені режими |
| Що брати для FAQ / categorizer? | **Чат-бот** + `action_fastline_pro` (Use Case 1 / 10 / 12) |
| Коли потрібен Агент? | Коли AI викликає tools / streaming — див. [Advanced Fast Line Pro](/uk/learn/implementer/training/optional/use-case-advanced-fastline.md) |
| Дока пише «агент», у UI — «Чат-бот» | Параметр сценарію `agent_name` — це **назва** ШІ-додатку; тип може бути Чат-бот |
| AI мовчить у сценарії | Спочатку «Тестування» у Fast Line Pro без сценарію; потім `agent_name`, БЗ, fallback edge |

---

## Tickets (Use Case 10)

### Де створювати categorizer — основний бот чи copilot?

- **AI-каталог (optional):** lookup у CD у тому ж боті — див. [AI-каталог](/uk/learn/implementer/training/optional/use-case-ai-catalog-search.md)
- **Use Case 12:** окремий copilot — [overview](/uk/learn/copilot/copilot-overview.md)

### Тікет не створюється / error edge

- `subject_alias` не збігається з темою в Settings
- Перевірте `action_tickets_create` vs `action_tickets_create_v2` у Inspector
- Runs → constants після create: `ticket_id` або аналог

### «Залипання» chat_room_id / повторний create

- Перевірте параметри create-action: чи не перевикористовується старий room без логіки
- Новий Run vs продовження того самого діалогу — різна поведінка
- У Runs: який `chat_room_id` у constants до і після create

### Custom field тікета не видно в табличному OP

- Поля теми в Settings → Tickets
- Не блокує Use Case 10 happy path у Runs (`ticket_id` достатньо)

---

## Broadcast (Use Case 11)

### Кнопка з посиланням — Action Jail чи MessageKeyboard?

- **Спочатку:** native URL у MessageKeyboard (`open-url`) — див. [Use Case 11](/uk/learn/implementer/training/advanced/use-case-11-broadcast.md)
- Action Jail — лише якщо native не покриває кейс

### Telegram OK, Viber помилка / не доставлено

- Перевірте `open-url` vs `open-web-app`
- Текст-only vs image+button — спрощуйте для діагностики
- Задокументуйте результат у [result template](/uk/learn/implementer/training/results-template.md) (Viber attempt)

### `send_after` / `one_time`

- **`send_after`:** create success у Runs ≠ миттєва доставка в каналі — зачекайте або перевірте затримку
- **`one_time`:** повторний trigger не має дублювати повідомлення
- Не плутати з `action_broadcast__subscribe` (topic для серії розсилок)

### Навіщо `action_broadcast__subscribe`?

- Підписка користувача на **topic** для майбутніх розсилок, не разова відправка з вкладки «Клієнти»
- Разова розсилка Use Case 11 — через Broadcast template + alias

→ [Broadcast subscribe](/uk/actionjail/reference/actions-reference.md)

---

## Пріоритетний сегмент (optional)

### Різні гілки не спрацьовують

- Порядок нод: **спочатку** перевірка сегменту, **потім** `subject_alias`
- Тип змінної: `'1'` (рядок) vs `1` (число) vs `true` (boolean) — див. Runs
- Mock API / Registered Users / CD — узгодьте джерело ознаки сегменту

→ [Пріоритетний сегмент](/uk/learn/implementer/training/optional/use-case-priority-segment.md)

---

## Copilot / process bot *(optional)*

### Де живе categorizer для каталогу (Use Case 12)?

- У **copilot bot** (окремий бот або process sections)
- Основний bot лише **маршрутизує** (кнопка «Каталог»)

### Copilot vs макрос Use Case 8

| | Copilot Use Case 12 | Macro Use Case 8 |
|---|---------------------|------------------|
| Ініціатор | Клієнт | Оператор |
| Мета | AI + CD lookup | Дія в діалозі |

---

## Deeplink

### Deeplink + registered_users — потрібен get_command + jail?

- **Ні** на першому проході: deeplink params у constants на Start → `registered_users__get` → гілки
- Детальніше — у [Use Case 6](/uk/learn/implementer/training/basic/use-case-06-registered-users.md)

---

## Operator Panel / фільтри

### «В черзі» vs «Не призначені»

- **В черзі:** діалоги, що очікують оператора в черзі
- **Не призначені:** без assignee; можуть перетинатися — перевірте Settings → Operator Panel і Runs connect-блоку

---

## Advanced Fast Line Pro (optional)

- `fastline_completion`, streaming — optional [Advanced Fast Line Pro](/uk/learn/implementer/training/optional/use-case-advanced-fastline.md)

---

## Registered Users

### Дані не зберігаються «назавжди»

- Використано лише state — потрібен `registered_users__set`
- Поля не додані в модель Registered Users в Settings

### Як тестувати між сесіями?

1. Завершити Run після реєстрації
2. Новий Run → `registered_users__get` на старті
3. Опційно — той самий користувач через Telegram

→ [Use Case 6 — реєстрація та повторний візит](/uk/learn/implementer/training/basic/use-case-06-registered-users.md)

---

## Macros

### Оператор не бачить «Запустити макрос»

1. Секція позначена **«Використовується як макрос»**
2. Settings → Operator Panel → **Process макрос** → обрано бота з макросами
3. Діалог відкритий у Operator Line (не лише preview сценарію)
4. Змінні макросу оголошені в параметрах секції

→ [Огляд інтегратора — макроси](/uk/learn/implementer/implementer-overview.md)

---

## Канали

### Telegram не отримує повідомлень

- Settings → Bots → Канали → токен валідний
- Тестували preview, а очікували Telegram — це різні шляхи
- Для Use Case 1 канал опційний; preview достатній для логіки

### Keyboard не показується

- `supportedMessengers` на ноді keyboard
- Канал підтримує inline-кнопки

### Різна поведінка widget vs Telegram

- Окремі гілки або validation за `{{channel}}`
- Тестуйте критичні flow у обох каналах, якщо бот мультиканальний

### URL у повідомленні як текст, не лінк

- Режим повідомлення (HTML / plain) у MessageKeyboard
- Для widget — перевірте параметри відображення посилань у Inspector

→ [Підключити Telegram](/uk/channels/how-to/connect-telegram.md)

---

## AI Помічник (Instance Agent) {#ai-помічник-instance-agent}

> Це **не** Fast Line Pro у боті — див. [концепти — Instance Agent](/uk/learn/implementer/training/concepts.md#instance-agent).

### Правило навчання

1. UC **спочатку руками** → self-check у Runs.
2. **Опційно після** — перезібрати той самий UC через Agent і звірити edges / alias / змінні.
3. **Довіряйте Runs**, не відповіді агента.

### Agent зібрав сценарій, але не працює

- Оновіть Scenario Builder (F5 / Cmd+R) після правок агента
- Перевірте **Runs** — edges, змінні, який edge реально спрацював
- Виправляйте руками; Agent — для пояснень і опційної перезбірки

### Відповідь агента суперечить Runs

- **Довіряйте Runs** і тесту в каналі / OP
- Попросіть агента пояснити **конкретну ноду за назвою (title)**, потім звірте в Inspector

### Немає кнопки «іскра» у Scenario Builder

- [Передумови](/uk/learn/implementer/training/prerequisites.md) — Instance Agent Integration + модуль **AI-асистент** у ролі
- → [Налаштувати доступ](/uk/constructor/how-to/configure-ai-assistant-access.md)

### Read-only або немає права write

- Агент лише пояснює та пропонує **UI-тур** — зміни робите самі
- Режим **Запитати** достатній для більшості UC навчання

---

## Загальний дебаг

| Крок | Інструмент | Дія |
|------|------------|-----|
| 1 | **Runs** | Знайти виконання; крок зупинки; edge |
| 2 | **Trace / лог** | Змінні, constants, текст помилки |
| 3 | **«Тест дії»** | Node Inspector — ізольований тест Action |
| 4 | **Fast Line Pro** | Тест агента окремо від сценарію |
| 5 | **Alias** | `subject_alias`, entrypoints, `chat_closed_alias` vs Settings |
| 6 | **Канал** | Settings → Bots; preview vs Telegram/widget |
| 7 | **Operator Line** | Опційно E2E після connect |

Детальніше: [Use Case 9 — tooling tour](/uk/learn/implementer/training/basic/use-case-09-scenario-audit.md). Поза сценарієм: [коли не сценарій](/uk/learn/implementer/training/reference/when-not-scenario.md).

Якщо після self-debug сценарій коректний, а поведінка платформи суперечлива — **служба підтримки ConnectiveOne**.

---

## Пов'язані матеріали

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