Complete inventory of the current staff dashboard and visitor widget, captured from the live beta. This is the redesign contract: every feature and destination listed here survives the redesign — only the presentation changes.
| Layer | What |
|---|---|
| Staff dashboard | Next.js (App Router) on Vercel — staff sign-in, role-based (Super Admin), firm-scoped |
| Visitor widget | Separate Vercel app serving embeddable widget.js (shadow DOM, per-firm config, consent screen) + public demo page |
| Data / auth | Supabase; staff users provisioned per firm via CLI |
| AI | Self-hosted chat model (Qwen via Tailscale) as primary — client data never trains someone else's model · Gemini embeddings · per-firm local-LLM override |
| Multi-tenancy | Every firm: isolated knowledge base, leads, conversations. Demo firm: Bayou Injury Law (Demo) |
| Route | Features (all preserved) |
|---|---|
| / | Home — welcome + card grid to 8 areas |
| /leads | Master-detail pipeline. Filters (status, qualification, search), Export CSV, Scan for duplicates, Extract from recent chats. Detail: hybrid score (rule 88 · AI 90), status + assignment, full field grid, internal notes, transcript, Dispute / Credit Request tab (14-day window) |
| /conversations | Master-detail review. Filters (review status, system status, transcript search, flagged-only). Detail: consent record, AI summary generator, review status / assign / flag / tags, metadata |
| Route | Features (all preserved) |
|---|---|
| /kb | Knowledge base: unanswered-questions triage (Answer in KB / Resolve / Ignore), retrieval preview, import-from-URL, manual items (tags, source type, active/inactive, .txt/.md upload), auto-indexing + re-index |
| /prompts | Versioned prompt system (system / tone / legal_safety / intake): draft → publish (auto-archives) → roll back; live assembled system-prompt preview |
| /test-cases | Scripted multi-turn conversation tests w/ expected replies + pass threshold; run one / run all × N iterations; per-turn match detail |
| /adversarial-eval | Safety eval: 154-case adversarial corpus (Advice-seeking, PHI, Jailbreak, Implied representation, Louisiana-specific); sample runner; run history w/ pass rates |
| Route | Features (all preserved) |
|---|---|
| /analytics | Live metrics: engagement (conversations, messages, avg/chat, handoffs), answer quality (KB-grounded %, guardrail flags, tokens), outcomes (leads, bookings, callbacks), 14-day chart |
| /reconciliation | Billing: monthly report (total/qualified/net-billable/pending disputes/gross/credited/net, per-lead table, Export CSV, Finalize month) + publishable Qualified-Lead Definition (contract text, $/lead, qualifying scores, disqualifying statuses) |
| Route | Features (all preserved) |
|---|---|
| /settings/llm | Provider chain (primary → fallback) + health check; per-firm local-LLM override (base URL, label, model, key, test connection) |
| /settings/widget | Terms of Use + Privacy Policy URLs → widget consent screen links |
| /settings/rate-limit | Live per-IP limits (12/min, 300/day), test-the-limiter, recent real blocks |
| /firms | Firm onboarding (name, intake email, phone) → generated embed snippet + staff-login command |
| Surface | Features (all preserved) |
|---|---|
| Launcher | Floating "Chat with us" pill, per-firm primary color, shadow-DOM encapsulated |
| Consent screen | Disclaimer (not legal advice, no lawyer-client relationship), Terms & Privacy links (from Widget Settings), consent checkbox gates Start chat |
| Chat | Welcome message, quick-reply chips (practice areas, book consultation), streaming replies, restart / close, lead capture + booking / handoff / callback flows |
PRIVATE AI BY PROVA · INTAKE DASHBOARD · FEATURE INVENTORY 2026-08-18 · ALL FEATURES PRESERVED THROUGH REDESIGN