Workflow Infographics
This page provides visual walkthroughs of the primary user journeys in Oversight. Each workflow is shown as a two-lane infographic: the User lane on the left shows what the user does, and the System lane on the right shows what Oversight does in response. Decision points and error states are called out inline.
Workflow 1: Analyst File Upload
This is the primary workflow for analyzing a pre-recorded chatbot conversation.
Text description of the flow:
- User selects a JSON file on the
/uploadpage - Client-side validation — File type, size (≤ 5 MB), and JSON structure are checked
- Error state: Invalid format or size → inline error message shown
- User configures analysis settings — Analysis mode (Gemini/Groq/Both), analysis types (hallucination/bias/toxicity), and optional ground truth document
- User clicks Upload →
POST /api/uploadfires- Error state: Rate limit exceeded (5/min or 40/day) → HTTP 429 shown
- File is stored to Vercel Blob storage
- Upload record is created in the database with status
processing - Analysis pipeline runs — Each selected category (hallucination, bias, toxicity) is analyzed in parallel using the selected provider(s)
- User sees the processing page (
/processing/[id]) with a polling animation- Note: The progress bar is simulated — it does not reflect actual backend progress
- Upload status updated to
completedorfailed- Error state: All analyses fail → status set to
failed, error message stored - Success: At least one analysis category succeeds → status set to
completed
- Error state: All analyses fail → status set to
- User is redirected to the analysis dashboard (
/dashboard/[id]) - Dashboard displays results across tabs: Overview, Hallucination, Bias, Toxicity
Workflow 2: Live Chat Monitoring
This workflow covers a customer interacting with the live chatbot and the automatic quality monitoring.
Text description of the flow:
- Customer visits
/chat(no login required) - Customer types a message →
POST /api/chat- Rate limit check: 5/min, 40/day per IP address
- Error state: Rate limit exceeded → HTTP 429 returned
- Bot reply generated using Groq Llama
- Live monitoring runs in parallel on the latest assistant turn:
- Hallucination check → returns
trueorfalse - Bias score check → returns a score from 0 to 100
- Hallucination check → returns
- Monitoring results displayed in the monitoring panel below the chat
- Decision point: Violation detected?
- No violation — Conversation continues, monitoring result shown
- Violation (hallucination = true OR bias score ≥ analyst threshold):
- Session is automatically ended
- "Live agent required" message shown to customer
POST /api/chat/[id]/completefires with violation details- Full batch analysis runs on the entire conversation
- Alert emails sent to all analysts with
alertEmailconfigured
- On normal "End Chat" (no violation path):
POST /api/chat/[id]/completefires- Full batch analysis runs on the entire conversation
- Alert emails sent to analysts
- Upload record created with
source: "chat", visible in all analysts' upload history
Workflow 3: Analyst Live Monitoring Dashboard
This workflow covers an analyst observing active and recent chat sessions.
Text description of the flow:
- Analyst visits
/monitor - Session Sidebar loads and polls
GET /api/monitor/sessionsevery 30 seconds- Shows sessions from the last 30 minutes
- Each session shows: status badge (Active/Violated/Ended), last message preview, message count, relative timestamp
- Analyst clicks a session in the sidebar
- Session Detail Panel loads the full message history via
GET /api/chat/[id]- If the session is active: polls every 5 seconds for new messages
- Per-message monitoring results are displayed:
- Bias score bar (color-coded: green/yellow/red based on threshold)
- Hallucination flag indicator
- Violation banner if the session was flagged
- Analyst adjusts threshold in
/settingsto tune sensitivity for future sessions
Workflow 4: Batch Upload
This workflow covers uploading and analyzing multiple files at once.
Text description of the flow:
- User selects up to 10 JSON files on the
/uploadpage - Shared settings configured — Analysis mode, analysis types, optional ground truth (same for all files)
- Files uploaded sequentially to
POST /api/upload, each with a sharedbatchId- Per-file status shown inline: Pending → Uploading → Done / Error
- Error state: Individual file fails → marked as error, other files continue
- When all files complete — "View Batch Report" button appears
- Batch report at
/batch/[batchId]shows:- Aggregate KPIs (total issues, detection rates across all files)
- Per-file results table sorted by issue count
- Subtype breakdown across all files
- Link to individual dashboard per file