Phase 5: Conversion

5-Min Loom → Payment → Onboarding → Partnership Ascension

Month 5 - Conversion Layer

Phase Overview

Phase 5 delivers personalized 5-min Loom demos using Frankie's model: show outcome AFTER service. Each Loom analyzes the user's trial questions and demonstrates value already delivered. Includes payment processing, automated onboarding, and partnership ascension paths.

5 Min
Loom Length
40%
Watch Rate
15%
Watch → Purchase
Auto
Onboarding
🎯 Phase 5 Success Criteria
  • 5-min personalized Loom delivered within 24 hours of hand-raise
  • 40%+ watch rate (hand-raise → watched Loom)
  • 15%+ conversion rate (watched → purchased)
  • Stripe payment integration with automatic provisioning
  • Automated onboarding sequence (email + access)
  • Partnership ascension path for high-value customers

Quick Actions

5-Min Loom Script Generation

AI-generated personalized script based on trial interactions. Follows Frankie's model: "I reviewed YOUR questions, here's the outcome".

Script Generation Prompt
Claude API
Loom Script Generator (Claude Prompt): You are creating a 5-minute Loom video script for [Expert Name]'s AI clone demo. This follows Frankie's model: show outcome AFTER service, not features. User Context: - Name: [User Name] - Trial Questions Asked: [Q1, Q2, Q3] - Lead Stage: [Scaling/Building/Starting] - Revenue: [$10K-$50K/Pre-revenue] - Primary Challenge: [From Phase 3 capture] - Conversion Score: [71-90 = personalized / 91+ = custom] Structure (5 minutes = ~750 words): HOOK (30 sec / 75 words): "Hey [Name], I reviewed the 3 questions you asked [Expert] AI about [specific topic]. You're clearly working on [their challenge], and I wanted to show you the analysis I did based on your situation." OUTCOME DEMONSTRATION (2 min / 300 words): Walk through THEIR trial questions + show deeper analysis: - Question 1: [Their Q] → "Here's what the AI recommended..." - Question 2: [Their Q] → "And when you asked about X, the answer was..." - Question 3: [Their Q] → "This is the key insight from your situation..." Show screenshots/examples of: - How expert methodology applies to their business - Specific tactics for their stage/revenue - 2-3 concrete next steps they can take VALUE ALREADY DELIVERED (1 min / 150 words): "So you've already gotten value from 3 questions. Imagine having unlimited access to [Expert] AI for your entire [process]. That's what [Product Name] does." PRICING & OFFER (1 min / 150 words): - "$[X]/month for unlimited questions" - "Includes: [Feature 1, Feature 2, Feature 3]" - "No setup fee, cancel anytime" - "Most customers see ROI in first week" CALL TO ACTION (30 sec / 75 words): "Link below takes you to checkout. Questions? Reply to the email I sent with this video. Looking forward to seeing what you build with unlimited [Expert] access." Tone: Operator-to-operator, no fluff, results-focused Format: Conversational script, NOT bullet points Output: Full script ready for recording
💡 Frankie's Model Key Elements
  • Personalization: Reference THEIR specific questions by topic
  • Proof of value: Show analysis already done (sunk cost)
  • Zero features: Never say "Our platform has X features"
  • Outcome-focused: "Here's what you'll accomplish" not "Here's what we offer"
  • Operator voice: Peer-to-peer, not vendor-to-customer
Script Generation API
FastAPI Implementation
Generate Loom Script (FastAPI): @app.post("/api/loom/generate-script") async def generate_loom_script(trial_id: str): # Fetch trial data trial = await supabase.table('trials').select('*').eq('id', trial_id).single() lead = await supabase.table('leads').select('*').eq('id', trial.user_id).single() interactions = await supabase.table('trial_interactions')\ .select('*').eq('trial_id', trial_id).execute() # Build context questions = [i.question for i in interactions] responses = [i.response for i in interactions] # Generate script using Claude prompt = f"""Generate 5-min Loom script following Frankie's model... User: {lead.email} Stage: {lead.stage} Revenue: {lead.revenue} Challenge: {lead.challenge} Trial Questions: {chr(10).join(f"Q{i+1}: {q}" for i, q in enumerate(questions))} Conversion Score: {trial.conversion_score} """ script = await anthropic_api_call(prompt) # Save script await supabase.table('looms').insert({ 'trial_id': trial_id, 'script': script, 'generated_at': datetime.now(), 'status': 'script_ready' }).execute() return {"script": script, "trial_id": trial_id}

3 Types of Loom Demos

Conversion score determines Loom type: Standard (template), Personalized (AI-generated), or Custom (manual by Jason).

📹Standard Loom
Pre-recorded template video with token replacement. Used for low-score leads (0-70) or high volume.
Score Range: 0-70
Effort: 0 min (automated)
Conversion: 10-12%
Personalization: Name + topic only
🎯Personalized Loom
AI-generated script + automated video (Synthesia/HeyGen) or Jason recording from script. References actual trial questions.
Score Range: 71-90
Effort: 5-10 min (record from script)
Conversion: 15-20%
Personalization: Trial Q&A analysis
👑Custom Loom
Fully custom video by Jason, includes screen share of their trial, specific recommendations, may include partnership discussion.
Score Range: 91-100
Effort: 15-20 min (full custom)
Conversion: 30-40%
Personalization: Full custom analysis
Loom Type Decision Tree
Automation Logic
Loom Type Selection Algorithm: async def select_loom_type(trial_id: str): trial = await get_trial_with_score(trial_id) lead = await get_lead(trial.user_id) # Custom Loom (91-100 score) if trial.conversion_score >= 91: await notify_jason_custom_loom(trial_id) return { 'type': 'custom', 'handler': 'manual', 'priority': 'urgent', 'message': f'High-value lead: {lead.email} | Score: {trial.conversion_score}' } # Personalized Loom (71-90 score) elif trial.conversion_score >= 71: script = await generate_loom_script(trial_id) return { 'type': 'personalized', 'handler': 'ai_generated_script', 'script': script, 'delivery': 'jason_records' # or 'synthesia_auto' } # Standard Loom (0-70 score) else: template = await get_template_loom(trial.playbook_id) personalized_url = template.url.replace( '{name}', lead.email.split('@')[0] ) return { 'type': 'standard', 'handler': 'template', 'url': personalized_url }

Payment Processing

Stripe integration for subscription payments. Multiple tiers: ValidationHub ($2K one-time), Expert AI ($47-197/mo), Partnership ($5K setup + $500/mo).

Stripe Checkout Integration
Payment Links
Stripe Checkout Session (FastAPI): import stripe stripe.api_key = os.getenv('STRIPE_SECRET_KEY') @app.post("/api/checkout/create-session") async def create_checkout_session( trial_id: str, product_tier: str # 'validation_hub', 'expert_ai', 'partnership' ): trial = await get_trial(trial_id) lead = await get_lead(trial.user_id) # Product pricing products = { 'validation_hub': { 'price_id': 'price_validation_2k', 'mode': 'payment', # One-time 'amount': 2000_00 }, 'expert_ai_basic': { 'price_id': 'price_expert_ai_47', 'mode': 'subscription', 'amount': 47_00 }, 'expert_ai_pro': { 'price_id': 'price_expert_ai_197', 'mode': 'subscription', 'amount': 197_00 }, 'partnership': { 'price_id': 'price_partnership_setup', 'mode': 'subscription', # Includes setup fee 'amount': 500_00 # Monthly after $5K setup } } product = products[product_tier] # Create Stripe session session = stripe.checkout.Session.create( customer_email=lead.email, payment_method_types=['card'], mode=product['mode'], line_items=[{ 'price': product['price_id'], 'quantity': 1 }], success_url=f'https://studio.masterymade.com/success?session_id={{CHECKOUT_SESSION_ID}}', cancel_url=f'https://studio.masterymade.com/cancel?trial_id={trial_id}', metadata={ 'trial_id': trial_id, 'user_id': trial.user_id, 'product_tier': product_tier } ) return {"checkout_url": session.url} Stripe Webhook Handler (Payment Success): @app.post("/webhooks/stripe") async def stripe_webhook(request: Request): payload = await request.body() sig_header = request.headers.get('stripe-signature') event = stripe.Webhook.construct_event( payload, sig_header, os.getenv('STRIPE_WEBHOOK_SECRET') ) if event['type'] == 'checkout.session.completed': session = event['data']['object'] # Log conversion await supabase.table('conversions').insert({ 'trial_id': session.metadata['trial_id'], 'user_id': session.metadata['user_id'], 'product_tier': session.metadata['product_tier'], 'stripe_session_id': session.id, 'amount': session.amount_total, 'currency': session.currency, 'converted_at': datetime.now() }).execute() # Trigger onboarding await trigger_onboarding(session.metadata['trial_id']) return {"status": "success"}

Automated Onboarding

Immediate access provisioning + 7-day welcome sequence. Different paths for ValidationHub vs Expert AI vs Partnership customers.

Onboarding Sequences by Product
Vbout Automation

ValidationHub Onboarding (One-Time $2K)

Day 0: Welcome + Sprint Kickoff Scheduler - Immediate access to sprint planning doc - Book kickoff call (Calendly link) - "What to prepare" checklist Day 1: Pre-Sprint Homework - Market research framework - Customer interview templates - Competitor analysis worksheet Day 3: Sprint Week Check-In - "How's it going?" email - Offer to extend support if needed Day 7: Sprint Complete + Review - Request sprint results - Testimonial request - Offer: "Need more validation? 50% off second sprint"

Expert AI Onboarding (Subscription $47-197/mo)

Day 0: Welcome + Immediate Access - Login credentials - Quick start guide (5 min video) - First 3 questions to ask Day 1: Setup Complete Check - "Did you get logged in?" - Common issues FAQ - Live chat support link Day 3: Power User Tips - Advanced prompting strategies - Expert-specific workflows - Integration options (Notion, Slack) Day 7: Check-In + Feedback - "What have you built so far?" - Feature requests - Offer: Upgrade to partnership tier

Partnership Onboarding ($5K Setup + $500/mo)

Day 0: Welcome + Kickoff Scheduler - Book 90-min strategy session - Send discovery questionnaire - NDA + partnership agreement Day 2: Pre-Kickoff Prep - Technical requirements checklist - Brand assets request - Access to expert source materials Day 7: Kickoff Call - Strategy session (recorded) - Timeline and milestones - Slack channel setup Day 14: Build Phase Starts - Weekly check-ins scheduled - Progress dashboard access - Direct line to Jason

Partnership Ascension Path

High-value customers ($10K+ MRR) automatically entered into partnership funnel. Goal: upgrade from $47-197/mo self-serve to $5K setup + $500/mo managed partnership.

Ascension Trigger Conditions
Qualification Rules
Partnership Ascension Qualification: async def check_partnership_eligibility(user_id: str): lead = await get_lead(user_id) subscription = await get_active_subscription(user_id) usage = await get_usage_stats(user_id) # Qualification criteria qualifies = ( # Revenue threshold lead.revenue in ['$10K-$50K', '$50K+'] and # Usage signals usage.questions_per_month >= 50 and usage.active_days >= 20 and # Tenure subscription.months_active >= 2 and # Engagement usage.feature_adoption >= 0.7 # Using 70% of features ) if qualifies and not lead.partnership_offer_sent: await trigger_partnership_outreach(user_id) await supabase.table('leads').update({ 'partnership_offer_sent': True, 'partnership_offer_sent_at': datetime.now() }).eq('id', user_id).execute() Partnership Outreach Email: Subject: Your [Expert] AI usage caught my attention Hey [Name], I noticed you've been using [Expert] AI heavily over the past 2 months (50+ questions, daily usage). Clearly getting value. Quick question: Are you interested in going deeper with a full partnership? Instead of self-serve access, we'd build a custom [Expert] AI system for your business: - White-label deployment under your brand - Custom training on YOUR methodology + data - Integrations with your tools (CRM, Slack, etc) - Done-for-you implementation ($5K setup + $500/mo) This is what we do with [ExpertName1], [ExpertName2], etc. Interested? Reply and I'll send over some examples. Jason

Conversion Tracking

Complete funnel visibility: hand-raise → Loom sent → Loom watched → payment → onboarded → active usage.

Conversions Table Schema
Phase 5 Extensions
Conversions Table: CREATE TABLE conversions ( id UUID PRIMARY KEY, trial_id UUID REFERENCES trials(id), user_id UUID REFERENCES leads(id), playbook_id UUID REFERENCES playbooks(id), -- Product info product_tier VARCHAR(50), -- 'validation_hub', 'expert_ai_basic', 'expert_ai_pro', 'partnership' -- Payment stripe_session_id VARCHAR(255), stripe_customer_id VARCHAR(255), stripe_subscription_id VARCHAR(255), amount INT, -- in cents currency VARCHAR(10), -- Timing converted_at TIMESTAMP DEFAULT NOW(), -- Onboarding status onboarding_started BOOLEAN DEFAULT FALSE, onboarding_completed BOOLEAN DEFAULT FALSE, onboarding_completed_at TIMESTAMP, -- Attribution (copied from trials/leads) utm_source VARCHAR(100), utm_campaign VARCHAR(100), -- Lifetime value tracking ltv INT DEFAULT 0, -- Updated monthly months_active INT DEFAULT 0, churn_risk_score INT DEFAULT 0 -- 0-100, lower = less risk ); Conversion Funnel Analytics Query: SELECT playbook_id, COUNT(DISTINCT trials.id) as trials_started, COUNT(DISTINCT CASE WHEN looms.sent THEN trials.id END) as looms_sent, COUNT(DISTINCT CASE WHEN looms.watched THEN trials.id END) as looms_watched, COUNT(DISTINCT conversions.id) as conversions, -- Conversion rates ROUND(100.0 * COUNT(DISTINCT CASE WHEN looms.watched THEN trials.id END) / NULLIF(COUNT(DISTINCT CASE WHEN looms.sent THEN trials.id END), 0), 2) as watch_rate, ROUND(100.0 * COUNT(DISTINCT conversions.id) / NULLIF(COUNT(DISTINCT CASE WHEN looms.watched THEN trials.id END), 0), 2) as watch_to_purchase_rate FROM trials LEFT JOIN looms ON trials.id = looms.trial_id LEFT JOIN conversions ON trials.id = conversions.trial_id GROUP BY playbook_id;

Next Steps