Skip to main content

🎯 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:

  1. βœ… One button on product page
  2. βœ… 5-field form (30 seconds to fill)
  3. βœ… Auto-progress (no waiting blindly)
  4. βœ… Preview/review (before publishing)
  5. βœ… 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!