Where Opti’s focus is during the beta: designing initial funnels, each anchored to a specific audience or creative angle. The best strategy right now is breadth — test many flows, combine what works from each, and find what sticks. Iterating on existing funnels works too, but do it manually in the funnel’s chat for now: the automatic loop where Roy, the creatives, and Bidder feed funnel iterations the way they do for ads is still work in progress.
📷 Banner placeholder — Opti intro.
What it does
- Builds complete funnels — ad-aware landing → quiz or educational flow → personalized result → trust layer → paywall → checkout. Jump ↓
- Designs paywalls — a proven baseline offer with per-month pricing and a trial win-back, plus experimentation on top. Jump ↓
- Adds upsells — post-purchase offers with one-click purchase for buyers whose card is on file. Jump ↓
- Analyzes performance —
/analyzereads your funnel’s real revenue data and finds the leaks. Jump ↓ - Runs A/B tests — weighted traffic splits between paywalls, upsells, or entire intro flows. Jump ↓
- Localizes — native-reading variants for every language you sell in, with per-locale layout checks.
The best workflow: concepts from Roy, details with Opti
You can walk up to a blank funnel and brief Opti directly — but the workflow that consistently works best starts one level up, with Roy:1
Ask Roy for funnel concepts
Roy proposes funnels at the strategy level — one flow per target audience, or per specific creative angle when one audience splits into distinct triggers worth testing. Each proposal card carries the audience, the format (quiz / info), the creative angle it continues, and the hypothesis it tests.
2
Approve the cards you want
Approving a card provisions the funnel and hands Opti the brief. Opti outlines the screens and builds straight through — you get a finished, previewable funnel, not a plan to sign off on.
3
Tune the details inside the funnel
Open the funnel’s own chat to refine: sharpen the landing hook, adjust a quiz question, restyle a screen, tweak the result reveal. This is where your taste comes in — on top of a working funnel, not a blank page.
❌ “build me a funnel” — in an empty funnel chat, no audience, no angle ✅ to Roy: “propose funnel flows for our audiences” → approve the cards → to Opti: “the result screen feels generic — make the diagnosis more specific to their answers”The reason this works: funnels convert a specific audience arriving from specific ads. Roy holds that context — the audiences, the winning creative angles, your business model’s pricing — and bakes it into the brief. Opti then studies the actual ads driving traffic before designing the hook, so the funnel continues the story the ad started. See Audiences & Angles.
Anatomy of a funnel
Every funnel Opti builds follows the same four-stage spine — the same shape behind most winning web-to-app flows:
The warm-up is where the two formats diverge — which one fits is a real strategic choice:
Quiz or info? The two core formats
- Quiz — when the answers can drive real personalization: a tailored plan, a diagnosis, a product pick. If answers wouldn’t change what the user sees, the quiz is theater, and Opti will say so.
- Info (educational) — when personalization isn’t honest for the product (e.g. a security tool: the recommendation is the same for everyone). Teach the problem, build the case, land on the offer.
- Mixed — parts of the journey branch on answers, parts don’t.
Recommended starting setup (mobile apps)
For mobile-app products doing their initial funnel testing, the playbook that works:- Use the pricing and paywalls Opti recommends. The baseline offer is battle-tested; the job of the first round is to find the trigger — which audience and angle convert — and universal default pricing is the cleanest read. Pricing is a second-level lever you optimize after something works. Opti will push back once if you ask for custom pricing during a first build; that pushback is worth listening to.
- Start with 4–5 funnels per audience segment, each attached to a different, unique creative angle. One funnel per audience tells you almost nothing when it fails — was it the audience or the flow? A spread of flows per segment isolates the variable that matters.
- Let each funnel continue its own ad’s story. The funnel-to-ad match matters more than any individual screen — a broken narrative kills conversion harder than any visual issue.
❌ one funnel, custom pricing, launched against all audiences at once ✅ “Roy, propose 4–5 flows for the screen-time-moms segment, one per creative angle, default pricing”
Paywalls and pricing
Every funnel ships with a proven baseline offer unless you specify otherwise:- Two plans — a 6-month plan (default-selected, “Best value”) and a monthly plan, both displayed as per-month prices with the true billing cadence as a subline.
- A pinned dismiss (X) that never exits the funnel — it opens a win-back modal leading to a second paywall with a free 7-day trial. A user who dismisses the first offer lands on what feels like a new deal, not the same screen reopened.
- Pricing comes from your business model — Opti wires plans from the project’s default pricing, never invented numbers.
Upsells
/upsell adds a post-purchase offer to an existing funnel. Unlike a fresh build, this one stops for alignment first: Opti proposes 2–4 candidate add-on products — each with its exact contents, the problem it solves, and a pricing recommendation (default: $19.99 / 6 months with a free 7-day trial, shown per-month) — and gets your explicit sign-off on what the upsell contains and its price before writing any code.
Two things it always does:
- Ships a format A/B by default — at minimum a warm-up explainer chain vs. a scroll-story presentation, split behind weighted traffic, because upsell presentation is the highest-variance lever there is.
- Keeps the trial rule — buyers arriving from the win-back path just started a free trial; an upsell that charges real money immediately burns them and shows up as chargebacks. A no-trial upsell needs your explicit confirmation.
Performance analysis — /analyze
Run /analyze in a funnel’s chat and Opti does a full economic deep-dive: it reconciles your business model’s assumptions against realized numbers, reads the step-by-step conversion curve, opens screenshots of the actual screens, splits results by the creative that drove the traffic, and checks trials, declines, and refunds.
You can also just ask it anything — “which quiz step loses the most people?”, “how do trial starts compare across creatives?”, “what’s our net revenue per day this week?” — it queries the same data warehouse behind the scenes.
How the numbers are built — what’s tracked by default, what the Meta pixel receives, why sales are booked to the buyer’s checkout day, and why Meta’s dashboard never matches real sales exactly — is covered in Funnel tracking & analytics.
Data freshness: the warehouse syncs a few times per day, so numbers can be up to ~4 hours behind live. Opti checks and reports the sync timestamp — don’t panic-read a quiet last-few-hours.
A/B testing
Opti can split traffic between variants anywhere in the funnel — just ask it to set one up. Under the hood it’s a weighted split: each visitor is assigned a branch by weight (say 50/50 or 70/30), and the assignment sticks for their whole session, so nobody sees both versions. Exposures are tracked automatically, and/analyze reads the results per branch.
Where A/B tests earn their keep:
- Two paywalls — the classic and best first use case: same funnel, two offers or presentations, let the revenue decide.
- Different upsells — competing add-on products or presentation formats after purchase.
- Different intro / warm-up flows — the funnel’s opening can split too, so two landing-and-quiz sequences can compete for the same traffic before converging on a shared paywall.
❌ “test two paywalls, two upsells, and three landing variants — launch it all” ✅ “let’s start with the paywall test from the analysis — once it concludes we’ll take on the upsell format”
Preview, publish, and versions
Every funnel workspace runs a live preview — Opti shares the URL after any change, and screenshots every screen at phone size (funnels are mobile-first, always) before calling anything done. Nothing reaches real traffic until you say so:/publish builds the production version and flips it live atomically. Each publish is a new immutable version, so re-publishing is always safe, and custom domains (Integrations → Funnel domains) automatically serve whatever version is live.
Custom code and integrations
Under the hood every funnel is a real codebase (React + TypeScript), and Opti is a real engineer in it. So if your funnel needs something beyond the built-ins — a specific npm library, a call to your own backend API, a third-party tracking snippet, a custom animation, a widget you already use elsewhere — just prompt it. Describe what you have (paste API docs, a snippet, or credentials-free examples) and Opti integrates it into the flow.✅ “after the quiz, send the answers to our API at api.ourapp.com/leads — here’s the endpoint spec” ✅ “add our TikTok pixel alongside the built-in tracking”For what’s tracked out of the box and how to ask for more, see Asking Opti for custom tracking.
Commands
Good to know
- Opti is opinionated. A weak hook, a bloated quiz, a paywall that buries the offer — it says so instead of hedging. Push back if you disagree, or better: test both.
- Steer, don’t restart. “Keep the flow, but the result screen should lead with their quiz answers” preserves what already works. See Working with the Kitties.
- Publishing is always explicit. Opti never pushes changes to live traffic on its own.