Every new Whop sales rep should be dangerous within 2 weeks. They should deeply understand how Whop makes money, be able to articulate the payments value prop for their specific customer type, handle objections with real numbers, and write cold outreach that gets replies.
This app is the structured program that gets them there. It replaces a static slide deck with an interactive, AI-powered learning experience that quizzes reps, lets them practice sales calls against an AI prospect, and grades their outreach messages — all tailored to the type of customer they'll be selling to.
All reps learn the same core payments material. Quizzes, mock call scenarios, and outreach grading are contextualized to the rep's track:
- Coaching & Courses — High-ticket, BNPL-heavy (Splitit, ClarityPay), financing applications, checkout link limits
- Ecommerce — LPMs, regional auth rates, billing/subscriptions, sales tax
- Agencies — Manual charging, invoicing, orchestration value prop, platform-adjacent setups
- Marketplaces — Full platform pitch: MoR, orchestration, payouts, parent/child biz IDs, embedded SDK
Each rep also gets an onboarding buddy (experienced rep on the same track) who reviews their progress and signs off on milestones.
The Whop Sales Payments Guide (76-page deck) broken into ~15 sequential modules. Each module covers one topic (e.g., "Orchestration", "Fees & Merchant of Record", "BNPL/Financing"). Each module ends with a quiz — mix of multiple choice and scenario-based questions. Scenario questions are graded by AI against a rubric.
- Reps must score 80%+ to unlock the next module
- Questions are filtered by the rep's track (a coaching rep gets Splitit scenarios, a marketplace rep gets orchestration scenarios)
- Wrong answers show explanations so reps learn from mistakes
Content modules:
- How Whop Makes Money
- Data Hierarchy (Biz IDs, User IDs, Product IDs, Plan IDs, Checkout Sessions, Webhooks)
- Pay-in Surfaces (Product pages, checkout links, embedded checkout, manual charging, invoicing)
- Local Payment Methods (Supported/unsupported LPMs, regions, costs, processors)
- Financing & BNPL (All options, application flow, requirements, approval process, revenue importance)
- Payment Elements (PCI compliance, tokenization, vaulting, BIN data)
- Authorization & Failed Payments (Auth rates, issuer declines, 3DS, statement descriptors)
- Orchestration (Waterfalling, multi-processor strategy, legal entities, processor list)
- Fees & Merchant of Record (MoR, cross-border fees, IC/IC+/IC++, sales tax, value props)
- Billing (Subscription billing, Whop vs Stripe billing, LPM/BNPL recurring)
- Settlement & Payouts (Settlement lifecycle, Masspay, FBO accounts, payout methods/countries)
- Platforms (Platform pitch, case studies: Sideshift, Micro1, why platforms join)
- Whop Finance (Treasury, Swaps, Cards)
- wAdmin Operations (Adjusting fees, checkout link limits, VAT/tax removal, affiliates)
- Integrations (Hubspot, GoHighLevel)
A chat interface available from any page where reps can ask anything about Whop payments. The AI is grounded in the full payments deck content and knows the rep's track, so it tailors examples accordingly.
Examples of what reps would ask:
- "What's the difference between IC+ and IC++?"
- "Why would a coaching business care about Splitit vs ClarityPay?"
- "If a prospect is on Stripe at 2.9%, what are they actually paying per component?"
- "How does the BNPL application process work and how long does approval take?"
The highest-leverage feature. Reps practice selling Whop payments by talking to an AI prospect that role-plays as a realistic buyer.
How it works:
- Rep selects a difficulty tier
- App generates a randomized prospect profile matching the rep's track (name, business, volume, current payment setup, hidden pain points, objections)
- Rep sees the prospect card (but NOT their hidden pain points or objections — they have to discover those)
- Voice call begins — rep pitches, AI pushes back, conversation flows naturally
- After the call ends, AI reviews the full transcript and gives structured feedback
Difficulty tiers:
- Easy — Prospect is interested, has basic Stripe setup, no hard objections. "I'm on Stripe paying 2.9%, I heard you guys might be cheaper?"
- Medium — Prospect thinks current setup is fine, pushes back on switching costs. "We're doing $200k/mo on Stripe, it works. Why switch?"
- Hard — Prospect has IC++ pricing, knows their interchange, questions Whop's value-add. "We're on Nuvei at IC++ with 60% US debit. Our effective rate is 1.2%. Beat that."
Post-call feedback scores:
- Pain Discovery — Did they uncover the prospect's real pain points?
- Value Prop Accuracy — Was the pitch clear and correct?
- Fee Math — Were rate/savings claims accurate?
- Objection Handling — How well did they handle pushback?
- Closing — Did they move toward next steps?
- Missed Opportunities — What they should have mentioned but didn't
Future: Feed real call transcripts (from Granola/Fathom) into the system to make AI prospects more realistic. Potentially train custom models on successful Whop sales calls.
Rep pastes a cold DM (Instagram/Twitter) they plan to send to a prospect. AI scores it and provides a rewritten version.
Scoring categories (1-10 each):
- Personalization — Does it reference something specific about the prospect's business?
- Value Prop Clarity — Would the prospect understand why Whop matters in under 5 seconds?
- CTA Strength — Is the ask clear and low-friction?
- Length — Concise enough for a DM? (2-4 sentences ideal)
- Tone — Peer-to-peer, not salesy?
Includes a rewritten version with explanation of what changed and why. History of past submissions so reps can see improvement over time.
For sales leadership to track rep progress across the team.
- Team overview: All reps with modules completed, avg quiz score, mock calls done, avg mock score, last active
- Per-rep detail: Module-by-module scores, mock call history with transcripts, outreach submissions
- Flag reps falling behind — color-coded status (on track / falling behind / inactive)
Rails + Inertia.js + React — standalone app, separate repo.
| Layer | Choice | Why |
|---|---|---|
| Backend | Ruby on Rails | No API layer needed — Inertia passes controller data directly as React props. |
| Frontend | React (via Inertia.js) | Full React ecosystem. ElevenLabs React SDK, Vercel AI SDK useChat hook all work natively. Vite for fast HMR. |
| Database | PlanetScale (MySQL) | ActiveRecord connects natively. |
| AI (text) | Claude API via Vercel AI SDK | Tutor chat, quiz grading, outreach grading, post-call feedback. Single Rails controller endpoint for SSE streaming — useChat hook connects to it. |
| AI (voice) | ElevenLabs Conversational AI | Best voice quality, Claude Sonnet as LLM (natively supported), React SDK (@elevenlabs/react). ~$99/mo Pro plan covers team usage (~1,100 min/mo). |
| Auth | Punt for now. Hardcode a simple session or skip auth entirely during development. Add Whop OAuth (via OmniAuth) last. | |
| Styling | Tailwind CSS | Matches Whop's existing frontend stack. |
| Deploy | Fly.io or Railway | Single-app deploy. |
rails new whop-sales-onboarding --javascript=vite --database=mysql --skip-jbuilder --skip-action-mailbox --skip-action-text
cd whop-sales-onboarding
bundle add inertia_rails vite_rails
bundle add inertia_rails-contrib
bin/rails generate inertia:install --framework=react --typescript
npm install @inertiajs/react react react-dom
npm install @elevenlabs/react ai @ai-sdk/anthropic
npm install tailwindcss @tailwindcss/viteInertia eliminates the API layer. Rails controllers render React components directly:
# app/controllers/modules_controller.rb
class ModulesController < ApplicationController
def show
mod = Module.find_by!(slug: params[:slug])
render inertia: 'Modules/Show', props: {
module_content: mod,
quiz: mod.quiz_questions,
progress: current_user&.progress_for(mod)
}
end
end// app/frontend/pages/Modules/Show.tsx — receives props directly
export default function Show({ module_content, quiz, progress }) {
return <ModuleViewer content={module_content} quiz={quiz} progress={progress} />
}For AI streaming (tutor chat), step outside Inertia with a standard Rails SSE endpoint:
# app/controllers/api/chat_controller.rb
class Api::ChatController < ApplicationController
def create
response.headers['Content-Type'] = 'text/event-stream'
# Stream Claude API response as SSE
end
end// React side — Vercel AI SDK works with any SSE endpoint
import { useChat } from 'ai/react'
const { messages, input, handleSubmit } = useChat({ api: '/api/chat' })Follow Whop brand guidelines from brand.whop.com and Frosted UI:
| Element | Value |
|---|---|
| Body font | Inter (Google Fonts) |
| Display font | Acid Grotesk (local, WOFF2) |
| Brand orange | #fa4616 (Dragon Fire) |
| Default accent | Blue #1754d8 |
| Light background | #f9f9f9 (gray-2) |
| Dark background | #111111 (gray-1), page #000000 |
| Primary text (light) | #202020 (gray-12) |
| Primary text (dark) | #eeeeee (gray-12) |
| Secondary text (light) | #646464 (gray-11) |
| Border radius | 6px (small), 8px (medium), 12px (large), 9999px (pills) |
| Spacing base | 4px increments (4, 8, 12, 16, 24, 32, 40, 48, 64) |
Support dark mode. Default to dark (matches Whop's product aesthetic).
The full "Whop Sales Payments Guide" text content should be included as the knowledge base. This is a 76-page internal deck covering: how Whop makes money, data hierarchy, pay-in surfaces, LPMs, BNPL/financing, payment elements, failed payments/authorization, orchestration, fees & MoR, interchange, billing, settlement, payouts, platforms, Whop finance, wAdmin, and integrations.
This content is used for:
- Module page content (split into 15 sections)
- AI tutor system prompt (full content as context)
- Mock call prospect knowledge (so AI can accurately role-play)
- Quiz question generation (scenario questions reference real numbers/processes from the deck)