---
title: "Use Case 9: Аудит сценарію"
description: "Failsafe edges, reverse engineering lab, чекліст перед публікацією, tooling дебагу: Runs, логи, тест дії, канал."
---

# Use Case 9: Failsafe + reverse engineering

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

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

| Що потрібно | Де в меню | Навіщо |
|-------------|-----------|--------|
| **Scenario Builder** | Меню → Scenario Builder | Аудит edges, Runs, RE lab |

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

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

Production-сценарій не повинен «замовкати» після помилки API, AI або connect. Інтегратор вміє читати чужий flow, знаходити необроблені edges і перевіряти сценарій перед публікацією.

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

- У навчальному сценарії (Use Case 1…4) кожна Action має обробку **fallback / error / not_ok / limit**.
- Reverse engineering: опис data flow, необроблені edges, пропозиції покращень.
- Чекліст перед публікацією пройдено self-check.

## Архітектура flow (аудит)

```text
Для кожної Action-ноди:
   Inspector → список edges → полотно → MessageKeyboard / fallback
   Якщо edge є в Inspector, але не з'єднаний → баг сценарію
```

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

### Крок 1. Аудит edges (Use Case 1…4)

Пройдіть сценарії [Use Case 1](/uk/learn/implementer/training/basic/use-case-01-faq-ai.md) … [Use Case 4](/uk/learn/implementer/training/basic/use-case-04-api-integration.md) і для **кожної Action-ноди** заповніть таблицю (у [файлі результатів](/uk/learn/implementer/training/results-template.md)):

| Action | Очікувані edges | Підключено? | Куди веде | Що бачить клієнт, якщо не підключено |
|--------|-----------------|-------------|-----------|--------------------------------------|
| `action_fastline_pro` | fallback | | | тиша |
| `action_send_request` | not_ok, error | | | тиша |
| `operator_panel__connect…` | success, limit, error | | | тиша |
| `registered_users__get` | success, error | | | тиша |
| `custom_modules__set` | success, error | | | тиша |

**Правило Use Case 9:** якщо edge є в Inspector, але **не з'єднаний** на полотні — це баг сценарію, навіть якщо «рідко спрацьовує».

→ [Edge-driven flow](/uk/learn/implementer/training/concepts.md#edge-driven-flow)

---

### Крок 2. Tooling tour — алгоритм дебагу

Пройдіть послідовно при будь-якій проблемі в сценарії:

| Крок | Інструмент | Що робити |
|------|------------|-----------|
| 1 | **Runs** | Знайти виконання → крок зупинки → який **edge** спрацював |
| 2 | **Runs — trace / лог** | Змінні та **constants** у проблемній ноді; текст помилки, якщо виконання failed |
| 3 | **Node Inspector → «Тест дії»** | Ізольований тест Action (`send_request`, `registered_users__get` тощо) |
| 4 | **Fast Line Pro → Тестування** | Окремо перевірити categorizer / FAQ-агента без сценарію |
| 5 | **Канал на інстансі** | Telegram / widget — коли preview не відтворює keyboard, Registered Users між сесіями, connect |
| 6 | **Operator Line** *(опційно E2E)* | Після connect — чи діалог у правильній темі / skill group |

```text
1. Runs → знайти виконання
2. Крок зупинки + edge + змінні/constants
3. Лог/trace кроку (повідомлення помилки)
4. «Тест дії» в Inspector (Action) або тест агента в Fast Line Pro
5. Звірка alias / subject_alias з Settings
6. Канал на інстансі (Settings → Bots) — якщо preview недостатньо
7. Operator Line — опційно після connect
```

→ [Як протестувати сценарій](/uk/scenariobuilder/how-to/test-scenario.md) · [Матриця тестування](/uk/learn/implementer/training/reference/testing-matrix.md)

### Крок 3. Таблиця симптомів

| Симптом | Де шукати | Що перевіряти |
|---------|-----------|---------------|
| Бот замовк після Action | Runs trace | Edge `error` без обробки |
| `{{змінна}}` буквально в тексті | Runs → variables | Змінна не записана |
| Webhook 401 / not_ok | Runs → constants | `save_responce`, Instance Settings, URL |
| Scenario loop | Runs count | Exit point |
| CSAT INTEGER error | Keyboard source-handle | Не вести free-text у CD INTEGER |

---

### Крок 4. Reverse engineering lab

Пройдіть [RE lab](/uk/learn/implementer/training/scenarios/reverse-engineering-lab/index.md) (~15 нод):

1. Опишіть **data flow** (змінні, constants).
2. Знайдіть **3 необроблені edges**.
3. Запропонуйте покращення (fallback, validation, alias).

Або проведіть audit власного capstone-сценарію (Use Case 13, просунутий рівень).

---

### Крок 5. Чекліст перед публікацією (self-check)

- [ ] Кожна Action-нода: усі edges з Inspector підключені на полотні (success, error, limit, fallback, not_ok)
- [ ] Keyboard: source-handle не веде в INTEGER CD / критичний запис без validation
- [ ] Alias entrypoints: немає дублікатів імен
- [ ] Connect-блоки: однаковий `chat_closed_alias` (якщо є CSAT — [Use Case 7b](/uk/learn/implementer/training/basic/use-case-07b-csat-nps.md))
- [ ] `subject_alias` / теми тікетів збігаються з Settings
- [ ] Fastline: fallback edge підключений
- [ ] API: edge `not_ok` / `error` + повідомлення клієнту
- [ ] Runs: happy path + навмисний зламаний ввід (телефон, free-text на keyboard)
- [ ] Немає «тиші» після жодної ноди в основних гілках

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

- [ ] Таблиця аудиту edges заповнена для Use Case 1…4 (мінімум).
- [ ] У навчальному сценарії **0** необроблених критичних edges на Action-нодах.
- [ ] RE lab (або власний audit): data flow описано, ≥3 знайдені проблеми / пропозиції.
- [ ] Чекліст перед публікацією — усі пункти перевірені.
- [ ] Tooling tour (крок 2) пройдено хоча б на одній навмисній помилці (404 URL або free-text на CSAT).
- [ ] Навмисно зламаний ввід → клієнт бачить повідомлення, не тишу; перевірено через Runs + trace.

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

| Симптом | Причина | Що зробити |
|---------|---------|------------|
| «Рідко спрацьовує» — не фіксили | Edge не підключений | Підключити всі edges з Inspector |
| Audit пропустив connect | Багато connect-блоків | Однаковий `chat_closed_alias`, усі limit/error |
| RE lab — не знайшли edges | Дивились лише happy path | Inspector кожної Action |
| Публікували без Runs | Немає trace | Happy + negative path у Runs |

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

- [Edge-driven flow](/uk/learn/implementer/training/concepts.md#edge-driven-flow)
- [RE lab](/uk/learn/implementer/training/scenarios/reverse-engineering-lab/index.md)
- [Матриця тестування](/uk/learn/implementer/training/reference/testing-matrix.md)
- [FAQ — загальний дебаг](/uk/learn/implementer/training/reference/faq.md)
- [Коли не сценарій](/uk/learn/implementer/training/reference/when-not-scenario.md)
- [Шаблон результатів](/uk/learn/implementer/training/results-template.md)
- **Checkpoint базового рівня** — після Use Case 9 + RE lab переходьте до [просунутого рівня](/uk/learn/implementer/training/index.md#просунутий-рівень)
