Skip to main content
ClaudeWave
Skill596 repo starsupdated 3d ago

convert-oto-page

|

Install in Claude Code
Copy
git clone --depth 1 https://github.com/FerroxLabs/wayland /tmp/convert-oto-page && cp -r /tmp/convert-oto-page/resources/bundled-extensions/business-conversion/skills/convert-oto-page ~/.claude/skills/convert-oto-page
Then start a new Claude Code session; the skill loads automatically.

SKILL.md

# Convert OTO Page - One-Time Offer

> *"They just bought. The buying brain is open. You have one shot to offer them something that genuinely makes the first thing better. If you waste this moment with a bait-and-switch, the refund email arrives by Tuesday."*

This skill builds the post-checkout One-Time Offer page - Method-applied, conversion-tight, ethically framed.

## When to Use

Trigger phrases: `oto page`, `one-time offer page`, `upsell page`, `post-purchase upgrade`, `/convert oto <product>`.

Use when:
- The user just purchased a flagship offer.
- An additional product or upgrade exists that genuinely complements what they bought.
- The user wants to convert this moment without breaking trust.

## When NOT to Use

- **OTO recovery (the page they see if they decline)** → `/convert downsell-page`.
- **Different-product upsell (later in the customer relationship)** → `/convert cross-sell-page`.
- **Pre-purchase sales page** → `/convert sales-page`.
- **Auditing existing OTO** → `/convert audit`.

## Inputs

Required:
1. **The flagship product** - what they just bought (you have to reference it specifically).
2. **The OTO product** - what's on this page. Must genuinely complement.
3. **Price + scarcity** - *real* one-time pricing. If they can find it elsewhere at the same price, the urgency is fake and the page fails.
4. **One person + Nerve** - same as flagship's brief.
5. **Accept URL** (one-click upgrade if billing supports it) and **Decline URL** (next step in the funnel).

Optional:
- **Existing flagship sales page** - for voice continuity.
- **`out_path`** - defaults via `build_report_path`.

## Workflow - All Eight Method Phases (post-purchase compressed)

The buyer is warm-to-hot. Trust is mostly already established. The page is short - 400–800 words. The Excuse lock does most of the work.

### Phase 0 - Four Questions

Reframed for post-purchase:
- **Why You?** - Why does the OTO matter for the *specific* purchase they just made?
- **Why Me?** - Already mostly answered. Light Drive-By only.
- **Why This?** - What does the OTO add that the flagship can't, and why is it the right next step?
- **Why Now?** - *Real* one-time-only reason. Bundling logistics, capacity, pricing transition. Never fake.

### Phase 1 - Temperature

Post-purchase = **Boiling-adjacent**. They already trusted you with their money. Page length 400–800 words. Direct, not pitchy.

### Phase 2 - Four-Layer Open (call `convert-open`)

Compressed:
- Layer 1 = a specific *thank-you-and-pivot* line that names the purchase.
- Layer 2 = the side-door pivot to the OTO.
- Layer 3 = light Skin in the Game (often "the question I always get next is...").
- Layer 4 = your Fingerprint as a one-line aside.

### Phase 3 - Three Locks

- **Want** = the upgrade itself, framed as completion of the flagship.
- **Trust** = mostly inherited. One micro-proof line.
- **Excuse** = the bulk of the page. Math: "what they save in time / mistakes / dollars."

### Phase 4 - Bullets

5–7 bullets. Mostly Snapshot + Keyhole. The Flip is risky here (don't undermine the flagship they just bought).

### Phase 5 - Proof

One Anecdote ("after I added this to the program, the average customer's results jumped from X to Y..."). One Drive-By. Done.

### Phase 6 - Cascade Close

- Stack - what's added, conversationally.
- Vision - paint where the OTO takes them beyond the flagship's outcome.
- Math - the numbers (time saved, results lifted, dollar comparison).
- Safety Net - usually inherits the flagship's guarantee, plus a no-questions cancel option.
- Door - the Yes button.

Plus a **No, thanks** decline link (small, plain text, below the button - not styled as a button).

### Phase 7 - Greased Chute

Short paragraphs. Open loop into the price reveal. Decline link should not be the visual anchor.

### Phase 8 - Voice + Bullshit Filter

The biggest filter test for OTO copy: *"Is this offer real, or am I manufacturing a moment to extract more money?"* If the answer isn't "this genuinely makes their first thing better," kill the OTO. Trust matters more than the marginal AOV.

## Section Architecture

| # | Section | Purpose |
|---|---------|---------|
| 1 | Receipt-of-purchase confirmation | Anchor what they just bought |
| 2 | Compressed Open (3–4 sentences) | Pivot to the OTO |
| 3 | The promise (one paragraph) | Want lock |
| 4 | 5–7 bullets | Make the upgrade tangible |
| 5 | One proof beat | Trust lock |
| 6 | Stack + price + math (Excuse lock) | Cascade Close core |
| 7 | Yes button + plain No-thanks link | Door + decline path |
| 8 | One-line P.S. (optional) | Reclose if room |

## HTML/CSS Reference Implementation

```html
<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <title>Add this before you go - {{BRAND}}</title>
  <meta name="description" content="{{META_DESCRIPTION}}">
  <meta property="og:title" content="{{HEADLINE}}">
  <meta property="og:description" content="{{META_DESCRIPTION}}">
  <meta property="og:type" content="website">
  <style>
    :root{--ink:#0e1116;--ink-soft:#3a3f47;--paper:#fbfaf6;--accent:#1f7a3a;--accent-ink:#fff;--rule:#e6e2d8;--max:680px}
    *,*::before,*::after{box-sizing:border-box}
    body{margin:0;font:18px/1.55 -apple-system,BlinkMacSystemFont,"Helvetica Neue",Arial,sans-serif;color:var(--ink);background:var(--paper)}
    main{max-width:var(--max);margin:0 auto;padding:24px 20px 80px}
    .receipt{background:#fff;border:1px solid var(--rule);padding:14px 16px;border-radius:6px;font-size:14px;color:var(--ink-soft);margin:0 0 24px}
    h1{font-size:clamp(24px,4.5vw,34px);line-height:1.18;margin:0 0 14px}
    h2{font-size:22px;margin:32px 0 12px}
    p{margin:0 0 16px}
    ul.bullets{list-style:none;padding:0;margin:0 0 24px}
    ul.bullets li{padding:8px 0 8px 26px;position:relative;border-bottom:1px solid var(--rule)}
    ul.bullets li::before{content:"";position:absolute;left:6px;top:16px;width:8px;height:8px;backgr