Use Case 13: Capstone — integrated bot
Goal: one training bot combines the skills of customer onboarding without Copilot — a typical MVP for a customer. Completion is a self-check, with no mentor hand-off.
Required permissions and access
| Module / setting | Why you need it |
|---|---|
| Scenario Builder | Main menu and three flow branches |
| Fast Line Pro | FAQ branch (Use Case 1) |
| Settings → Operator Panel | Connect branch (Use Case 3) |
| Settings → Tickets | Ticket branch (Use Case 10) |
| Custom Data | Optional third branch instead of FAQ (Use Case 7) |
| Runs / Chat preview | Self-check of all branches |
Business context
The customer gets a single bot entry with a main menu: ask an AI question, contact an operator, or submit a formal request (ticket or complaint to a database). This checks that you can assemble a working MVP for a customer without external guidance.
Expected result
MessageKeyboard (main menu)
├─ "Operator" → Use Case 3 flow
├─ "Complaint" / "Ticket" → Use Case 10 flow
└─ "FAQ" → Use Case 1 flow
(or "Complaint to database" → Use Case 7 flow)
No Copilot in the minimal capstone — for Copilot see Use Case 12 (optional).
Architecture
Start → MessageKeyboard (main menu)
├─ operator → [section / subgraph Use Case 3]
├─ ticket → [section / subgraph Use Case 10]
└─ faq → [section / subgraph Use Case 1]
(or complaint → Use Case 7)
Each branch: return to menu or End after completion
Step-by-step implementation
Step 0. Prepare in the existing training bot
Use the same training bot where you completed Use Case 1–11. Do not create a new bot — import or copy already verified scenario fragments.
Make sure the following work from previous Use Cases:
| Use Case | Minimum for capstone |
|---|---|
| Use Case 1 | Fast Line Pro + fallback edge |
| Use Case 3 | connect: success / limit / error |
| Use Case 10 | create: success / error, ticket_id |
| Use Case 7 | (optional) write to CD + id in Runs |
| Use Case 9 | method to audit unconnected edges |
Step 1. Main menu
Node: MessageKeyboard after Start.
| Button | Payload | Leads to |
|---|---|---|
| “Operator” | menu_operator |
Connect flow |
| “Submit a request” | menu_ticket |
Ticket + categorizer flow |
| “FAQ” | menu_faq |
FAQ flow |
| (optional) “Complaint to database” | menu_complaint |
Custom Data flow |
| Parameter | Recommendation |
|---|---|
| Output Variable | main_menu_choice (optional) |
| Default edge | “Please choose a main menu item.” |
Edges: each button → a separate entry into the matching section or subgraph.
Step 2. Sections or subgraphs
It is recommended to put each branch into a separate scenario section:
| Section (example) | Contents |
|---|---|
sec_operator |
“Talk to an operator” button → operator_panel__connect_to_operator_with_msg |
sec_ticket |
Full Use Case 10 flow |
sec_faq |
FAQ greeting → WaitForInput → action_fastline_pro |
sec_complaint |
Use Case 7 flow (if chosen instead of FAQ) |
After a branch finishes — MessageKeyboard “Back to menu” → edge to the main menu.
Step 3. Required edges on critical nodes
Check using the Use Case 9 method:
| Node | Minimum edges |
|---|---|
action_fastline_pro (FAQ) |
reply + fallback |
operator_panel__connect_to_operator_with_msg |
success + limit + error |
action_tickets_create |
success + error |
action_fastline_pro (categorizer) |
main + fallback |
| Main menu | each button + default |
On edge limit there must be your waiting message to the customer — not silence.
Step 4. Self-check in Runs (full pass)
Run three separate Runs (or one Run with sequential returns to the menu):
| # | Scenario | What to check in Runs |
|---|---|---|
| 1 | FAQ: question from the knowledge base | ai_answer; fallback on an unknown question |
| 2 | Operator: connect | success edge or limit with text to the customer |
| 3 | Ticket: description → categorizer → create | ticket_id in constants; error edge tested |
If the third branch is Custom Data: complaint id in Runs/constants.
Step 5. Document the data flow
Fill in the Use Case 13 section in results-template.md:
- Text data flow (3–5 sentences per branch)
- Which
subject_aliasvalues were used - One example root cause you found through Runs during assembly
Completion criteria (self-check)
Troubleshooting
| Symptom | What to check |
|---|---|
| Branch “hangs” afterward | End vs return to menu; unconnected edge |
| FAQ works alone, not from the menu | Main menu payload edge → correct section |
Ticket without ticket_id |
Use Case 10 success edge; subject_alias |
| Operator — silence on limit | limit edge connected → MessageKeyboard |
Independent task
Extend the capstone with one optional module of your choice:
- Priority segment — different
subject_aliasin connect - Deeplink + registered users (Use Case 6)
- Use Case 12: Copilot
Reference links
Optional next: Use Case 12 · Advanced Fast Line Pro