# UAT Scenario Checklist ## S0 Login and RBAC deny - Preconditions: - Test users are available (`admin`, `supervisor`, `operator`, `analyst`) - Steps: - Sign in through the gateway - Verify role-dependent access to main flows - Attempt a denied privileged action as `operator` (for example create a user) - Expected: - Login succeeds - Allowed actions work for the selected role - Denied privileged action returns `403` - Result: - [ ] Pass - [ ] Fail - Evidence: - user: - screenshot/log: ## S1 Customer create and search - Preconditions: - Operator UI or API access is available - Steps: - Create a customer - Search the customer by name or phone - Open the customer card - Expected: - Customer is created once - Search returns the same customer - Customer card data is consistent - Result: - [ ] Pass - [ ] Fail - Evidence: - customer_id: - screenshot/log: ## S2 Voice interaction lifecycle - Preconditions: - Operator account is available - Voice queue is available - Steps: - Create a voice interaction - Assign interaction to operator - Change status to `closed` - Open the interaction timeline - Expected: - Status transitions are correct - Timeline contains creation, assignment, and close events - Result: - [ ] Pass - [ ] Fail - Evidence: - interaction_id: - screenshot/log: ## S3 Assignment and escalation to second line - Preconditions: - Queue routing rule for escalation exists - Steps: - Create or select an active interaction - Assign it to an operator - Escalate it to the target queue - Expected: - Assignment is accepted - Queue is changed to the target queue - Status changes to `escalated` - Result: - [ ] Pass - [ ] Fail - Evidence: - interaction_id: - target_queue: ## S4 Routing and timeline verification - Preconditions: - Queue rules are configured - At least one completed interaction exists - Steps: - Execute a route request for the active queue - Verify assigned operator and SLA result - Re-open interaction timeline - Expected: - Routing returns assignee and SLA - Timeline remains complete and chronological - Result: - [ ] Pass - [ ] Fail - Evidence: - queue_id: - route output: ## S5 Voice event intake - Preconditions: - Voice adapter endpoint is reachable - Steps: - Submit a voice event (`call.started`, `ivr.completed`, or `call.ended`) - Verify event is stored and retrievable - Expected: - Voice event is accepted - Event ID is returned - Event can be listed afterwards - Result: - [ ] Pass - [ ] Fail - Evidence: - event_id: - call_id: ## S6 Telegram interaction lifecycle - Preconditions: - Telegram adapter endpoint is reachable - Steps: - Send webhook payload to Telegram adapter - Verify message registration - Verify interaction visibility in operator workflow - Expected: - Message is accepted - Related interaction or adapter state is traceable - Result: - [ ] Pass - [ ] Fail - Evidence: - message_id: - screenshot/log: ## S7 KB usage in active handling - Preconditions: - KB category/article created by analyst/supervisor - Steps: - Search KB by keyword - Open article - Use article during interaction processing - Expected: - Relevant article found - Operator confirms article usability - Result: - [ ] Pass - [ ] Fail - Evidence: - article_id: - keyword: ## S8 Supervisor realtime - Preconditions: - At least two agent states are submitted - Steps: - Set agent states (`READY`, `BUSY`) - Update queue metrics - Open realtime view/API - Expected: - Agent totals and states are visible - Queue snapshot is visible - Result: - [ ] Pass - [ ] Fail - Evidence: - timestamp: - screenshot/log: ## S9 KPI report and export validation - Preconditions: - KPI events are ingested for the test queue - Steps: - Open `/reports/kpi` - Verify KPI payload - Open `/reports/export` and capture CSV output - Expected: - KPI payload contains `SL`, `ASA`, `AHT`, `Abandon`, `FCR` - Export contains the expected header and queue rows - Result: - [ ] Pass - [ ] Fail - Evidence: - queue_id: - export snippet: ## O1 Backup and restore verification - Preconditions: - Pilot environment contains test data - Steps: - Run backup script - Restore into a clean target - Verify the restored data set - Expected: - Archive is created - Restore succeeds - Core interaction data remains intact - Result: - [ ] Pass - [ ] Fail - Evidence: - archive: - restore check: ## O2 Load test baseline (`100 voice + 100 digital`) - Preconditions: - Pilot environment is stable - Steps: - Run `python scripts/load_test.py --base-url http://:8080 --voice 100 --digital 100` - Record success and latency output - Expected: - Load completes without blocking errors - MVP baseline target is met - Result: - [ ] Pass - [ ] Fail - Evidence: - command: - summary: