---
title: "Use Case 9: Scenario audit"
description: "Failsafe edges, reverse engineering lab, pre-publish checklist, debug tooling: Runs, logs, action test, channel."
---

# Use Case 9: Failsafe + reverse engineering

**Level:** basic · **Modules:** Scenario Builder

## Required permissions and access

| What you need | Where in the menu | Why |
|---------------|-------------------|-----|
| **Scenario Builder** | Menu → Scenario Builder | Edge audit, Runs, RE lab |

If a section is missing from the menu — check your account permissions or contact ConnectiveOne support.

## Business context

A production scenario must not “go silent” after an API, AI, or connect error. The integrator can read someone else’s flow, find unhandled edges, and verify the scenario before publish.

## Expected result

- In the training scenario (Use Case 1…4) every Action handles **fallback / error / not_ok / limit**.
- Reverse engineering: data flow description, unhandled edges, improvement proposals.
- Pre-publish checklist completed as self-check.

## Flow architecture (audit)

```text
For each Action node:
   Inspector → edge list → canvas → MessageKeyboard / fallback
   If an edge exists in Inspector but is not connected → scenario bug
```

## Step-by-step implementation

### Step 1. Edge audit (Use Case 1…4)

Walk scenarios [Use Case 1](/en/learn/implementer/training/basic/use-case-01-faq-ai.md) … [Use Case 4](/en/learn/implementer/training/basic/use-case-04-api-integration.md) and for **every Action node** fill the table (in the [results file](/en/learn/implementer/training/results-template.md)):

| Action | Expected edges | Connected? | Leads to | What the customer sees if not connected |
|--------|----------------|------------|----------|----------------------------------------|
| `action_fastline_pro` | fallback | | | silence |
| `action_send_request` | not_ok, error | | | silence |
| `operator_panel__connect…` | success, limit, error | | | silence |
| `registered_users__get` | success, error | | | silence |
| `custom_modules__set` | success, error | | | silence |

**Use Case 9 rule:** if an edge exists in Inspector but is **not connected** on the canvas — it is a scenario bug, even if it “rarely fires.”

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

---

### Step 2. Tooling tour — debug algorithm

Walk this sequence for any scenario problem:

| Step | Tool | What to do |
|------|------|------------|
| 1 | **Runs** | Find the execution → stop step → which **edge** fired |
| 2 | **Runs — trace / log** | Variables and **constants** on the problem node; error text if execution failed |
| 3 | **Node Inspector → “Test action”** | Isolated Action test (`send_request`, `registered_users__get`, etc.) |
| 4 | **Fast Line Pro → Testing** | Separately check categorizer / FAQ agent without a scenario |
| 5 | **Instance channel** | Telegram / widget — when preview doesn’t reproduce keyboard, Registered Users across sessions, connect |
| 6 | **Operator Line** *(optional E2E)* | After connect — is the dialog in the correct subject / skill group |

```text
1. Runs → find the execution
2. Stop step + edge + variables/constants
3. Step log/trace (error message)
4. “Test action” in Inspector (Action) or agent test in Fast Line Pro
5. Match alias / subject_alias with Settings
6. Instance channel (Settings → Bots) — if preview is not enough
7. Operator Line — optionally after connect
```

→ [How to test a scenario](/en/scenariobuilder/how-to/test-scenario.md) · [Testing matrix](/en/learn/implementer/training/reference/testing-matrix.md)

### Step 3. Symptom table

| Symptom | Where to look | What to check |
|---------|---------------|---------------|
| Bot went silent after Action | Runs trace | Edge `error` unhandled |
| `{{variable}}` literally in text | Runs → variables | Variable not written |
| Webhook 401 / not_ok | Runs → constants | `save_responce`, Instance Settings, URL |
| Scenario loop | Runs count | Exit point |
| CSAT INTEGER error | Keyboard source-handle | Do not send free-text into CD INTEGER |

---

### Step 4. Reverse engineering lab

Complete the [RE lab](/en/learn/implementer/training/scenarios/reverse-engineering-lab/index.md) (~15 nodes):

1. Describe the **data flow** (variables, constants).
2. Find **3 unhandled edges**.
3. Propose improvements (fallback, validation, alias).

Or audit your own capstone scenario (Use Case 13, advanced level).

---

### Step 5. Pre-publish checklist (self-check)

- [ ] Every Action node: all Inspector edges connected on the canvas (success, error, limit, fallback, not_ok)
- [ ] Keyboard: source-handle does not lead into INTEGER CD / critical write without validation
- [ ] Alias entrypoints: no duplicate names
- [ ] Connect blocks: same `chat_closed_alias` (if CSAT — [Use Case 7b](/en/learn/implementer/training/basic/use-case-07b-csat-nps.md))
- [ ] `subject_alias` / ticket subjects match Settings
- [ ] Fastline: fallback edge connected
- [ ] API: edge `not_ok` / `error` + message to the customer
- [ ] Runs: happy path + intentional broken input (phone, free-text on keyboard)
- [ ] No “silence” after any node on the main branches

## Acceptance criteria (self-check Runs)

- [ ] Edge audit table filled for Use Case 1…4 (minimum).
- [ ] Training scenario has **0** unhandled critical edges on Action nodes.
- [ ] RE lab (or own audit): data flow described, ≥3 findings / proposals.
- [ ] Pre-publish checklist — all items checked.
- [ ] Tooling tour (step 2) completed on at least one intentional error (404 URL or free-text on CSAT).
- [ ] Intentional broken input → customer sees a message, not silence; verified via Runs + trace.

## Common mistakes

| Symptom | Cause | What to do |
|---------|-------|------------|
| “Rarely fires” — didn’t fix | Edge not connected | Connect all Inspector edges |
| Audit skipped connect | Many connect blocks | Same `chat_closed_alias`, all limit/error |
| RE lab — didn’t find edges | Looked only at happy path | Inspector of every Action |
| Published without Runs | No trace | Happy + negative path in Runs |

## Related documentation

- [Edge-driven flow](/en/learn/implementer/training/concepts.md#edge-driven-flow)
- [RE lab](/en/learn/implementer/training/scenarios/reverse-engineering-lab/index.md)
- [Testing matrix](/en/learn/implementer/training/reference/testing-matrix.md)
- [FAQ — general debug](/en/learn/implementer/training/reference/faq.md)
- [When it is not the scenario](/en/learn/implementer/training/reference/when-not-scenario.md)
- [Results template](/en/learn/implementer/training/results-template.md)
- **Basic-level checkpoint** — after Use Case 9 + RE lab proceed to the [advanced level](/en/learn/implementer/training/index.md#advanced-level)
