π― Product Funnel Wizard β Visual UX Flow
The Simplest Possible UXβ
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β STEP 1: Product Detail Page β
β β
β ValkyrAI Masterclass $299 β
β Complete course on AI workflows β
β β
β [Buy Now] [β¨ Generate Funnel with AI] β MAGIC BUTTON! β
β β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β
β (User clicks)
βΌ
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β STEP 2: Simple Modal Form (5 fields, 30 seconds) β
β β
β Generate Funnel for: ValkyrAI Masterclass β
β β
β Brand Name: [Valkyr Labs ] β
β Target Audience: [developers, founders ] β
β Price Tier: [Core ($299-$999) βΌ] β
β Delivery Mode: [Course βΌ] β
β Hero Benefit: [Master AI workflows in 14 days] β
β β
β [Cancel] [β¨ Generate Funnel] β
β β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β
β (Backend starts workflow)
βΌ
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β STEP 3: Progress Indicator (30-60 seconds) β
β β
β Generating Your Funnel... β¨ β
β β
β ββββββββββββββββββββββββββββββββ 65% β
β β
β Current Step: Generating ad variants... β
β β
β What's being created: β
β β
Complete PRD with problem/promise β
β β
Landing page sections (hero, features, CTA) β
β β³ Ad variants (TikTok, Instagram, LinkedIn) β
β β³ Email sequence (3-5 emails) β
β β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β
β (Generation completes)
βΌ
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β STEP 4: Review Screen β
β β
β β
Funnel Generated Successfully! β
β β
β Generated Assets: β
β β
Complete PRD β
β β
Landing Page (6 sections) β
β β
Ad Variants (3 platforms: TikTok, Instagram, LinkedIn) β
β β
Email Sequence (5 emails) β
β β
β [ποΈ Preview Landing Page] [π Publish Now] [Close] β
β β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β
β (User clicks Publish)
βΌ
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β STEP 5: Success! β
β β
β π Funnel Published! β
β β
β Your landing page is now live: β
β π /valkyr-labs-valkyrai-masterclass β
β β
β What you can do now: β
β β’ View landing page β
β β’ Download ad scripts for TikTok/Instagram β
β β’ Set up email automation β
β β’ Track analytics β
β β
β [Visit Landing Page] [View Full Report] [Close] β
β β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Backend Flow (What Happens Behind the Scenes)β
User clicks "Generate Funnel"
β
βΌ
ProductFunnelWizardController.startWizard()
β
ββ Create ProductFunnelWizard record (status: generating)
ββ Return wizardId immediately
β
βΌ
ProductFunnelWizardService.executeGenerationWorkflow() [async]
β
ββ Build workflow input from form data
β
βΌ
FunnelGeneratorModule.execute()
β
ββ Build AI system prompt (Stack/Ambitious Labs style)
ββ Build user prompt with product details
ββ Call OpenAI GPT-4o
ββ Parse JSON response
β
βΌ
Generate structured content:
ββ PRD (problem, promise, offer structure, funnel stages)
ββ Landing page sections (hero, features, testimonials, CTA)
ββ Ad variants (TikTok 15s, Instagram 30s, LinkedIn 45s)
ββ Email sequence (5 emails with send delays)
β
βΌ
ProductFunnelWizardService saves:
ββ ContentData (structured content)
ββ ProductLandingPage (landing page config)
ββ Update wizard status to "review"
β
βΌ
Frontend polls /status endpoint
β
ββ Shows review screen when status = "review"
User clicks "Publish"
β
βΌ
ProductFunnelWizardController.publishFunnel()
β
ββ Mark ProductLandingPage as published
ββ Update wizard status to "published"
ββ Return landing page URL
Data Flow Diagramβ
βββββββββββββββ
β Product β (Existing digital product)
β id: uuid β
β name: str β
β price: $$ β
ββββββββ¬βββββββ
β
β (User starts wizard)
βΌ
ββββββββββββββββββββββββ
β ProductFunnelWizard β (Wizard state tracker)
β - productId β
β - brand β
β - targetAudience β
β - priceTier β
β - deliveryMode β
β - heroBenefit β
β - wizardStatus β β draft β generating β review β published
β - generatedContent β β [Links to ContentData]
β - generatedLandingPage β [Links to ProductLandingPage]
ββββββββββββ¬ββββββββββββ
β
β (AI generation)
βΌ
ββββββββββββββββββββββββ
β FunnelGeneratorModuleβ (AI content generation)
β - Calls GPT-4o β
β - Returns JSON β
ββββββββββββ¬ββββββββββββ
β
β (Structured output)
βΌ
ββββββββββββββββββββββββ
β ContentData β (Generated funnel content)
β - contentType: funnel
β - prd: {...} β β Problem, promise, modules
β - landingPageSections: [...] β 6+ sections
β - adVariants: [...] β TikTok, Instagram, LinkedIn
β - emailSequence: [...] β 3-5 emails
β - status: draft β
ββββββββββββ¬ββββββββββββ
β
β (Landing page creation)
βΌ
ββββββββββββββββββββββββ
β ProductLandingPage β (Publishable landing page)
β - productId β
β - slug β β /valkyr-labs-ai-masterclass
β - seoTitle β
β - seoDescription β
β - config: {...} β β Sections from ContentData
β - isPublished: false β β User clicks "Publish" β true
ββββββββββββββββββββββββ
React Component Hierarchyβ
ProductDetailPage
ββ ProductDetail
ββ ProductHeader
ββ ProductDescription
ββ ActionButtons
ββ BuyNowButton
ββ GenerateFunnelButton β MAGIC BUTTON
β
β (onClick)
βΌ
FunnelWizardModal β Main wizard component
β
ββ (Step 1) WizardForm
β ββ BrandInput
β ββ AudienceInput
β ββ PriceTierSelect
β ββ DeliveryModeSelect
β ββ HeroBenefitTextarea
β
ββ (Step 2) ProgressIndicator
β ββ ProgressBar
β ββ CurrentStepLabel
β
ββ (Step 3) ReviewScreen
β ββ GeneratedAssetsList
β ββ PreviewButton
β ββ PublishButton
β
ββ (Step 4) SuccessScreen
ββ LandingPageLink
ββ NextStepsActions
API Endpoints (Auto-Generated by ThorAPI)β
POST /api/v1/product-funnel-wizard/start
ββ Input: ProductFunnelWizard
ββ Output: WizardStartResponse { wizardId, status, estimatedSeconds }
GET /api/v1/product-funnel-wizard/{wizardId}/status
ββ Output: WizardStatusResponse {
wizardId,
status,
progress,
currentStep,
contentDataId,
landingPageId,
landingPageUrl,
generatedAssets {
prdGenerated,
landingPageSectionsCount,
adVariantsCount,
emailSequenceCount
}
}
POST /api/v1/product-funnel-wizard/{wizardId}/publish
ββ Output: { landingPageUrl, published: true }
GET /api/v1/product-funnel-wizard/{wizardId}/preview
ββ Output: HTML preview of landing page
# Plus all CRUD endpoints auto-generated for:
GET/POST/PUT/DELETE /api/v1/ProductFunnelWizard
GET/POST/PUT/DELETE /api/v1/ContentData
GET/POST/PUT/DELETE /api/v1/ProductLandingPage
State Machine (Wizard Status)β
βββββββββββ
β draft β (Initial state)
ββββββ¬βββββ
β startWizard()
βΌ
ββββββββββββββ
β generating β (AI working)
βββββββ¬βββββββ
β (on success)
βΌ
ββββββββββ
β review β (User reviews)
ββββββ¬ββββ
β publishFunnel()
βΌ
βββββββββββββ
β published β (Landing page live)
βββββββββββββ
β (on error)
βΌ
ββββββββββ
β failed β (Show error message)
ββββββββββ
Why This UX is SUPER SIMPLEβ
1. One Button to Rule Them Allβ
<button>β¨ Generate Funnel with AI</button>
- No complex navigation
- No multi-page wizard
- Just click and wait
2. 5-Field Form (30 seconds)β
- Brand name (pre-filled from product)
- Target audience (text input)
- Price tier (dropdown with 4 options)
- Delivery mode (dropdown with 7 options)
- Hero benefit (textarea)
That's it! No overwhelming configuration.
3. Auto-Progress Updatesβ
// Frontend polls every 2 seconds
useGetWizardStatusQuery(wizardId, { pollingInterval: 2000 })
// Backend updates:
"Generating PRD..." β 20%
"Creating landing page..." β 50%
"Generating ad variants..." β 75%
"Finalizing..." β 100%
4. Preview Before Publishingβ
- User clicks "Preview" β See HTML
- Review content β Make edits if needed
- Click "Publish" β Landing page goes live
5. No Manual Workβ
- No writing copy
- No designing landing page
- No creating ads
- No writing emails
- AI does it all!
Summaryβ
This UX is ridiculously simple:
- β One button on product page
- β 5-field form (30 seconds to fill)
- β Auto-progress (no waiting blindly)
- β Preview/review (before publishing)
- β One-click publish (landing page goes live)
No complexity. No overwhelm. Just magic. β¨
Total user time: 2-3 minutes from click to published landing page!