Phase 4: Trial/Hand-Raise

Freemium Embed โ†’ Usage Tracking โ†’ Conversion Triggers

Month 4 - Trial Layer

Phase Overview

Phase 4 embeds freemium expert AI clone at Step 7 of playbooks. Users interact with expert clone for 3-5 trial questions, triggering hand-raise mechanics that feed into Phase 5 Loom delivery. This is the "try before you buy" conversion accelerator.

Step 7
Trial Placement
3-5
Free Questions
30%
Trial โ†’ Hand-Raise
Auto
Loom Trigger
๐ŸŽฏ Phase 4 Success Criteria
  • Freemium expert clone embedded at Step 7 in all playbooks
  • 3-5 free questions per user tracked in trials table
  • Usage tracking capturing questions + AI responses
  • Hand-raise triggers operational (30% conversion target)
  • Conversion readiness scoring algorithm live
  • Automatic transition to Phase 5 Loom generation

Quick Actions

Freemium Expert Clone Embed

Step 7 is optimal placement: user has invested 60-90 minutes in playbook, understands methodology, and is thinking "how do I apply this to MY situation?" The trial answers that question.

โ–ถStep 7 Placement Rationale
Why Step 7

User Psychology at Step 7:

  • Consumed 6 steps of methodology (high investment)
  • Cleared email gate โ†’ qualified and committed
  • Context-aware: understands expert's approach
  • Ready to execute: thinking about their specific situation
  • Natural question point: "How does this apply to me?"
๐Ÿ’ก The "Try Before You Buy" Psychology

Freemium at Step 7 = demonstrate value AFTER teaching methodology:

  • Steps 1-6: "Here's HOW the expert thinks"
  • Step 7 Trial: "Try asking the expert YOUR questions"
  • Post-Trial: "Want unlimited expert access? 5-min demo"
โ–ถReact Component Structure
Technical Implementation
ExpertCloneTrial Component (React): <ExpertCloneTrial expertId="brad-himel" expertName="Brad Himel" playbookId="newsletter-growth" userId={user.id} freeQuestions={3} trialContext={{ completedSteps: 6, emailCaptured: true, userStage: "scaling", userRevenue: "$10K-$50K" }} /> Component Features: - AI chat interface styled like expert (avatar, voice, examples) - Question counter: "3 free questions remaining" - Contextual prompt injection (playbook methodology + user data) - Usage tracking on every Q&A interaction - Paywall after 3-5 questions: "Want more? Watch 5-min demo"
Backend API Endpoint (FastAPI): @app.post("/api/trial/ask") async def trial_ask_question( user_id: str, expert_id: str, playbook_id: str, question: str, trial_context: dict ): # Check trial limit trial = await get_or_create_trial(user_id, playbook_id) if trial.questions_used >= trial.questions_allowed: return {"error": "Trial limit reached", "hand_raise": True} # Build context-aware prompt prompt = f"""You are {expert_id}, expert in {playbook_id}. User context: - Completed 6 steps of your methodology - Stage: {trial_context['userStage']} - Revenue: {trial_context['userRevenue']} Answer their question using your methodology from the playbook: {question}""" # Call Claude API response = await anthropic_api_call(prompt) # Log usage await supabase.table('trials').update({ 'questions_used': trial.questions_used + 1, 'last_question_at': datetime.now() }).eq('id', trial.id).execute() await supabase.table('trial_interactions').insert({ 'trial_id': trial.id, 'question': question, 'response': response, 'question_number': trial.questions_used + 1 }).execute() return { "response": response, "questions_remaining": trial.questions_allowed - trial.questions_used - 1 }

Question Limits & Paywall

3-5 free questions optimizes for value demonstration without cannibalization. After limit, paywall appears with "Want more? Watch 5-min demo to see how [Expert] AI works".

โ–ถFreemium Limit Strategy
3-5 Questions
๐ŸŽฏ Why 3-5 Questions?

Too Few (1-2): Not enough to demonstrate value

Just Right (3-5): Show competency, create appetite, maintain scarcity

Too Many (6+): Cannibalize paid offering, reduce conversion urgency

Paywall Copy Template: ๐Ÿ”’ Trial Complete โ€” Want Unlimited Access? You've used your 3 free questions with [Expert Name]. Ready to see how [Expert] AI can transform your [specific use case]? ๐Ÿ“น Watch this 5-minute demo showing: โ€ข How [Expert] AI applies methodology to YOUR business โ€ข Real examples from businesses like yours โ€ข Pricing: $[X]/mo for unlimited questions [BUTTON: Watch 5-Min Demo โ†’ ] No credit card required for demo.
โš ๏ธ Paywall Design Anti-Patterns
  • Don't: Hard sell with urgency ("Limited time offer!")
  • Don't: Ask for credit card before demo
  • Don't: Use generic "upgrade now" language
  • Do: Frame as "see how this works for YOUR situation"
  • Do: Use Frankie's Loom model: Show outcome AFTER service

Usage Tracking

Every trial interaction captured for conversion intelligence: questions asked, response quality, time spent, follow-up patterns. This data feeds Phase 5 Loom personalization.

โ–ถTrials Table Schema
Supabase
Trials Table (Phase 4 Extensions): CREATE TABLE trials ( id UUID PRIMARY KEY, user_id UUID REFERENCES leads(id), playbook_id UUID REFERENCES playbooks(id), expert_id UUID REFERENCES experts(id), -- Trial limits questions_allowed INT DEFAULT 3, questions_used INT DEFAULT 0, -- Timing started_at TIMESTAMP DEFAULT NOW(), last_question_at TIMESTAMP, completed_at TIMESTAMP, -- Hand-raise tracking hand_raise_triggered BOOLEAN DEFAULT FALSE, hand_raise_trigger_type VARCHAR(50), -- 'limit_reached', 'high_engagement', 'explicit_request' hand_raise_at TIMESTAMP, -- Conversion tracking loom_sent BOOLEAN DEFAULT FALSE, loom_sent_at TIMESTAMP, loom_watched BOOLEAN DEFAULT FALSE, loom_watched_at TIMESTAMP, -- Metadata utm_source VARCHAR(100), utm_campaign VARCHAR(100) ); Trial Interactions Table: CREATE TABLE trial_interactions ( id UUID PRIMARY KEY, trial_id UUID REFERENCES trials(id), question_number INT, question TEXT, response TEXT, response_length INT, -- Quality signals user_rating INT, -- 1-5 stars (optional) follow_up_question BOOLEAN DEFAULT FALSE, created_at TIMESTAMP DEFAULT NOW() );
โ–ถUsage Analytics Dashboard
PostHog Integration

Key Metrics to Track:

  • Trial Start Rate: % of Step 7 viewers who start trial
  • Questions Per Trial: Average 1-5 questions used
  • Time to Paywall: Minutes from start to limit reached
  • Hand-Raise Rate: % who click "Watch Demo" at paywall
  • Question Patterns: Most common question types
  • Response Quality: User ratings (if implemented)
๐Ÿ“Š Target Metrics (Phase 4)
Trial Start Rate: 60% (Step 7 viewers) Avg Questions Used: 2.8 questions Time to Paywall: 12 minutes Hand-Raise Rate: 30% (paywall โ†’ demo request) Loom Watch Rate: 40% (demo sent โ†’ watched)

Hand-Raise Triggers

Automatic signals that user is conversion-ready. Three trigger types: limit reached (passive), high engagement (active), explicit request (direct).

๐Ÿ”’Limit Reached
User exhausted 3-5 free questions. Passive hand-raise: "I consumed all free value"
Trigger: questions_used >= questions_allowed
๐Ÿ”ฅHigh Engagement
User asked follow-up questions, spent 15+ minutes, rated responses highly. Active hand-raise: "This is valuable"
Trigger: 3+ questions + 15+ min + follow-ups
๐Ÿ’ฌExplicit Request
User asks "How do I get more?" or "Can I book a call?" Direct hand-raise: "I want to buy"
Trigger: NLP detection or "Watch Demo" click
โ–ถHand-Raise Detection Logic
Python Algorithm
Hand-Raise Detection (FastAPI Background Task): async def detect_hand_raise(trial_id: str): trial = await supabase.table('trials').select('*').eq('id', trial_id).single() if trial.hand_raise_triggered: return # Already triggered # Trigger 1: Limit Reached if trial.questions_used >= trial.questions_allowed: await trigger_hand_raise(trial_id, 'limit_reached') return # Trigger 2: High Engagement interactions = await supabase.table('trial_interactions')\ .select('*').eq('trial_id', trial_id).execute() time_spent = (datetime.now() - trial.started_at).total_seconds() / 60 follow_ups = sum(1 for i in interactions if i.follow_up_question) if (trial.questions_used >= 3 and time_spent >= 15 and follow_ups >= 2): await trigger_hand_raise(trial_id, 'high_engagement') return # Trigger 3: Explicit Request (detected in question content) last_question = interactions[-1].question.lower() trigger_phrases = ['how do i get more', 'can i book', 'pricing', 'want to buy', 'interested in', 'sign up'] if any(phrase in last_question for phrase in trigger_phrases): await trigger_hand_raise(trial_id, 'explicit_request') async def trigger_hand_raise(trial_id: str, trigger_type: str): await supabase.table('trials').update({ 'hand_raise_triggered': True, 'hand_raise_trigger_type': trigger_type, 'hand_raise_at': datetime.now() }).eq('id', trial_id).execute() # Trigger Phase 5: Loom generation await generate_personalized_loom(trial_id)

Conversion Readiness Scoring

0-100 score predicting likelihood of watching Loom and converting. Combines trial behavior, lead data from Phase 3, and engagement patterns.

โ–ถScoring Algorithm
Conversion Probability
Conversion Readiness Score Calculation: Base Score (Trial Behavior): - Questions used: 10 points per question (max 50) - Time spent: 1 point per minute (max 20) - Follow-up questions: 10 points each (max 20) Lead Quality Multiplier (from Phase 3): - Scaling stage + $10K+ revenue: 1.5x - Building stage + any revenue: 1.2x - Just starting: 1.0x Engagement Bonus: - Completed all playbook steps: +15 points - Watched Loom demo: +25 points - Replied to nurture email: +10 points - High engagement hand-raise: +15 points Example Calculations: User A: 3 questions (30) + 18 min (18) + 2 follow-ups (20) = 68 ร— Scaling + $10K+ (1.5x) = 102 points + High engagement (15) = 117 points โ†’ HOT LEAD User B: 2 questions (20) + 8 min (8) = 28 ร— Just starting (1.0x) = 28 points โ†’ COLD User C: 5 questions (50) + 25 min (20) + 3 follow-ups (20) = 90 ร— Building + revenue (1.2x) = 108 points + Completed steps (15) = 123 points โ†’ URGENT Score Tiers: - 0-40: Cold (nurture sequence) - 41-70: Warm (standard Loom) - 71-90: Hot (personalized Loom) - 91-100: Urgent (immediate outreach + custom Loom)

Automatic Loom Trigger

Hand-raise detection automatically triggers Phase 5 personalized Loom generation. No manual intervention requiredโ€”system detects conversion readiness and delivers demo.

โ–ถPhase 4 โ†’ Phase 5 Handoff
Automatic Transition
Loom Trigger Workflow (n8n): 1. Trigger: Hand-raise detected (Supabase webhook) Event: trials table hand_raise_triggered = TRUE 2. Fetch Context: - Trial interactions (questions + responses) - Lead data (stage, revenue, challenge) - Playbook completion status - UTM attribution data 3. Calculate Conversion Score: - Run scoring algorithm - Determine Loom type (standard/personalized/custom) 4. Branch by Score: IF score >= 91: โ†’ Custom Loom (manual, notify Jason) ELSE IF score >= 71: โ†’ Personalized Loom (AI-generated, high quality) ELSE: โ†’ Standard Loom (template-based) 5. Generate Loom (Phase 5): - Create script using trial context - Record or auto-generate video - Upload to Loom - Get shareable link 6. Send Loom: - Email to user - SMS notification (optional) - Slack alert to Jason 7. Track Delivery: - Update trials.loom_sent = TRUE - Log loom_id and loom_url - Start watch tracking
๐ŸŽฏ Frankie's Loom Model

Key Insight: Show outcome AFTER service, not BEFORE

Standard SaaS Demo: "Here's what our product can do" (features)

Frankie's Model: "I analyzed YOUR trial questions, here's the outcome" (results)

  • Opens with: "I reviewed your 3 questions about [specific topic]"
  • Shows: Actual analysis + recommendations based on THEIR trial
  • Proves: AI already delivered value (sunk cost)
  • Closes with: "Want more? Here's pricing for unlimited access"

Next Steps