Campaign Wizard & Testimonial Collection
Relevant source files
The following files were used as context for generating this wiki page:
Introduction
The Campaign Wizard and Testimonial Collection system is a core component of KudosWall, designed to facilitate the rapid gathering of social proof through high-fidelity text and video testimonials. It enables project owners to create white-labeled collection campaigns that are optimized for both desktop and mobile browsers.
The system manages the end-to-end lifecycle of a testimonial—from the initial visitor request on a public collection page to AI-powered sentiment analysis and final publication on a "Wall of Love." By leveraging edge-compatible Next.js routes and structured data injection, the collection process remains performant and SEO-friendly.
Sources: README.md:14-38, apps/web/src/app/collect/[slug]/page.tsx:288-348
Collection Architecture
The collection process is served via a dynamic route (/collect/[slug]) that utilizes Next.js Server Components to fetch project configuration, workspace branding, and compliance settings.
Data Flow and Request Lifecycle
When a visitor accesses the collection page, the system performs a deep merge of project-specific settings with a global DEFAULT_SETTINGS object. This ensures that even unconfigured campaigns have functional defaults for accent colors, form fields, and compliance banners.
The diagram shows the sequence from initial page request to testimonial submission and subsequent processing.
Sources: apps/web/src/app/collect/[slug]/page.tsx:64-165, README.md:131-150
Technical Components
| Component | Responsibility |
|---|---|
CollectionWizard | Orchestrates the multi-step submission flow (type selection, recording, details). |
JsonLd | Injects Product and AggregateRating schemas for Google search visibility. |
CookieConsentBanner | Handles legal compliance based on project settings. |
CollectionFooter | Displays branding, privacy links, and "Powered by" badges for free tiers. |
| Sources: apps/web/src/app/collect/[slug]/page.tsx:14-25, apps/web/src/app/wall/[slug]/page.tsx:143-176 |
Form Configuration and Customization
Collection campaigns are highly customizable, allowing owners to override UI elements and functional constraints via a collectionSettingsJson object stored in the database.
Core Settings Object
The system defaults include specific configurations for form fields, video limits, and compliance messages.
{
"form": {
"fields": {
"fullName": { "enabled": true, "required": true },
"email": { "enabled": true, "required": false },
"linkedin": { "enabled": false, "required": false }
},
"starRating": { "enabled": true },
"minCharCount": 50
},
"video": {
"enabled": false,
"maxLength": 30
}
}
Sources: apps/web/src/app/collect/[slug]/page.tsx:64-100
Thematic and Aesthetic Control
Project owners can control the visual identity of the collection page through:
- Typography: Support for 35+ Google Fonts and custom CSS overrides.
- Backgrounds: Support for solid colors, linear gradients (optionally animated), and blurred images with adjustable opacity.
- Branding: Logo injection from workspace settings or direct overrides within the collection settings.
Sources: apps/web/src/app/collect/[slug]/page.tsx:230-280, README.md:20-22
Testimonial Processing and AI Analysis
Once a testimonial is submitted, KudosWall employs an advanced AI Core for content analysis and security filtering. This process is defined in the prompts.ts library.
AI Capabilities
The AI Core performs several critical functions to manage social proof quality:
- Sentiment Detection: Assigns scores and detects mismatches between star ratings and text.
- Spam Filtering: Strictly filters external links, bots, and toxic content.
- Hero Quote Extraction: Summarizes long reviews into punchy 5-12 word headlines.
- Transcript Refinement: Cleans up speech-to-text data by removing disfluencies (um, uh).
This sequence demonstrates how submitted content is enriched by the AI engine before being finalized.
Sources: apps/web/src/lib/ai/prompts.ts:25-95, apps/web/src/lib/ai/prompts.ts:145-160
Visibility and Distribution
Testimonials are primarily distributed through two public-facing interfaces.
1. Public Collection Pages
Located at /collect/[slug], these pages are designed for high conversion and mobile recording. They utilize unstable_cache with a 600-second revalidation period to ensure performance under load.
Sources: apps/web/src/app/collect/[slug]/page.tsx:110-120
2. Wall of Love
Located at /wall/[slug], this page acts as a dedicated landing page for approved testimonials. It serves a Widget component configured for masonry layouts and includes AggregateRating metadata to improve CTR in search engines.
Sources: apps/web/src/app/wall/[slug]/page.tsx:180-210
Security and Compliance
The collection system implements several layers of data protection and legal compliance:
- Data Processing Agreement (DPA): Outlines sub-processor details (Vercel, Neon, Cloudflare R2) and encryption standards (AES-256).
- Responsible Disclosure: A safe harbor policy for security researchers reporting vulnerabilities in the
api.kudoswall.orgor embed scripts. - Cookie-less Tracking: Impression tracking uses anonymized IP/User-Agent hashing instead of tracking cookies for widget visitors.
Sources: apps/web/src/app/(marketing)/dpa/page.tsx:85-110, apps/web/src/app/(marketing)/security/responsible-disclosure/page.tsx:88-105
Conclusion
The Campaign Wizard and Testimonial Collection system provides a high-performance, AI-enriched pipeline for managing social proof. By combining flexible visual customization with robust backend analysis and SEO-optimized delivery, KudosWall ensures that testimonials are not just collected, but effectively leveraged to build trust and drive conversions.