Testimonial Inbox & Keyboard Triage
Relevant source files
The following files were used as context for generating this wiki page:
The Testimonial Inbox & Keyboard Triage system is a high-performance workflow within KudosWall designed for efficient management and moderation of customer feedback. It serves as a centralized hub where administrators can review, approve, or reject incoming text and video testimonials. The system is built on a type-safe stack using Next.js 16 and tRPC, prioritizing speed and user experience through advanced keyboard shortcuts and AI-driven analysis.
The triage process facilitates the transition of testimonials from a pending state to an approved state, making them ready for public sharing or embedding in widgets. This workflow is critical for maintaining social proof quality, filtering spam, and identifying high-impact marketing assets through sentiment and enthusiasm scoring.
Sources: README.md:14-25, README.md:195-205, apps/web/src/lib/ai/prompts.ts:16-25
Keyboard-Driven Moderation
KudosWall implements a specialized "Keyboard-Driven Triage" system to minimize the manual effort required for moderation. This allows users to navigate the workspace inbox and perform actions without relying on a mouse.
Triage Shortcuts
The system uses standardized hotkeys for rapid processing of entries:
J: Move to the next testimonial / step down.K: Move to the previous testimonial / highlight up.A: Instantly Approve the highlighted testimonial.R: Instantly Reject the highlighted testimonial.
Sources: README.md:46-46, README.md:199-202
Testimonial Analysis & AI Core
The triage system is augmented by the "AI Core," which performs deep analysis on incoming content to assist the moderator. This involves sentiment detection, tone analysis, and high-fidelity spam filtering.
Analysis Logic Flow
When a testimonial enters the inbox, the AI Core processes it using a structured analysis schema.
The flow shows how incoming content is automatically enriched with metadata before human review.
Sources: apps/web/src/lib/ai/prompts.ts:32-48, apps/web/src/lib/ai/prompts.ts:140-155
AI Schemas and Capabilities
The system uses specific Zod-validated schemas to ensure structured output from AI analysis.
| Feature | Description | Relevant Schema Field |
|---|---|---|
| Sentiment | Detects if the tone is positive, neutral, or negative. | sentiment |
| Enthusiasm Score | A 1-10 scale used for advanced sorting in the inbox. | enthusiasm_score |
| Mismatch Detection | Flags if the star rating does not align with the text content. | is_mismatch |
| Spam Filter | Evaluates marketing bots and toxic content with a confidence score. | is_legit / confidence |
| Summary | Generates a 100-character max summary for quick triage scanning. | summary |
Sources: apps/web/src/lib/ai/prompts.ts:51-64, apps/web/src/lib/ai/prompts.ts:67-71
Triage Data Model & Transitions
Testimonials undergo a state transition during the triage process. Data is stored in a Neon serverless PostgreSQL database and managed via Drizzle ORM.
State Transitions
This diagram represents the lifecycle of a testimonial within the triage system.
Sources: README.md:195-205, apps/web/e2e/submission.spec.ts:10-70
Content Verification
The inbox identifies "Verified" social proof by tracking identity verification through LinkedIn or Google OAuth. Testimonials originating from these sources are highlighted in the triage UI with a "Verified" badge to indicate higher trustworthiness.
Sources: apps/web/src/lib/comparisons.tsx:143-150, apps/web/src/lib/comparisons.tsx:180-185
Video Triage & Processing
For video testimonials, the triage system includes a suite for media management. This involves R2 media signing and AI-driven transcript refinement.
Media Signing Sequence
Testimonials with video assets require secure handling before they can be previewed or shared.
This sequence ensures that video assets are only accessible to authorized users during the triage phase.
Sources: README.md:88-105, README.md:143-143
Transcript Editing
The AI Core provides a CLEANUP_TRANSCRIPT function used during triage to fix speech-to-text data for subtitles. It removes disfluencies (um, uh) and run-on sentences while preserving industry jargon.
Sources: apps/web/src/lib/ai/prompts.ts:123-135
Strategic Questions and Follow-ups
The triage system also supports proactive engagement. Administrators can use the system to generate follow-up questions to elicit stronger "Result" metrics from customers.
Follow-up Generation
| Input Context | AI Generated Follow-up Example |
|---|---|
| "It saved us time" | "Exactly how many hours per week did your team reclaim?" |
| "The UI is beautiful" | "Which specific design element did your users compliment most?" |
Sources: apps/web/src/lib/ai/prompts.ts:271-285, apps/web/src/components/testimonial-questions-directory.tsx:32-65
Summary
The Testimonial Inbox & Keyboard Triage system is a performance-optimized tool for social proof management. By combining rapid keyboard navigation, secure HMAC-signed media delivery, and AI-driven content analysis, KudosWall enables founders to moderate large volumes of feedback with minimal friction. The system ensures that only high-quality, verified, and relevant testimonials reach the public-facing "Wall of Love."
Sources: README.md:14-25, apps/web/src/lib/ai/prompts.ts:16-25