Skip to content

Swipe file

CTA Button Copy Swipe File

A CTA button isn't a label, it's a one-word completion of the visitor's mental sentence. The button copy that wins names the next state the visitor enters when they click, not the action they perform on the page.

Verified · editorial policy

TL;DR

TL;DR

As of , the short version is: A CTA button isn't a label, it's a one-word completion of the visitor's mental sentence. The button copy that wins names the next state the visitor enters when they click, not the action they perform on the page.

CTA Button Copy Swipe File TL;DR

TL;DR
Element
CTA buttons
TL;DR
A CTA button isn't a label, it's a one-word completion of the visitor's mental sentence. The button copy that wins names the next state the visitor enters when they click, not the action they perform on the page.
When to use
When click-through on the primary CTA is under 5 percent on a hero block that's otherwise reading well. When 'Get Started' / 'Sign Up' / 'Learn More' is doing zero qualification work.
When NOT to use
When the issue is upstream: the headline didn't qualify, so no button copy can recover it. When the form below the button is the actual friction (length, fields requested).
Brunson lens
Hook + Offer
Patterns
12 named patterns with formula + example + structural notes
Last verified
May 21, 2026

When to use

Rewrite this when

When click-through on the primary CTA is under 5 percent on a hero block that's otherwise reading well. When 'Get Started' / 'Sign Up' / 'Learn More' is doing zero qualification work.

Do NOT touch when

When the issue is upstream: the headline didn't qualify, so no button copy can recover it. When the form below the button is the actual friction (length, fields requested).

12 named patterns

  1. Pattern 1

    Outcome-First

    Formula

    <Verb> <specific outcome>

    Example

    Get my diagnosis

    Why it works

    Names the result, not the action. The visitor reads it as 'and then I have my diagnosis', which mentally moves them forward.

  2. Pattern 2

    First-Person Possessive

    Formula

    <Action> my <thing>

    Example

    Show me my broken step

    Why it works

    'My' triggers ownership-bias. The visitor is no longer evaluating, they're claiming.

  3. Pattern 3

    Time-Bounded Promise

    Formula

    <Outcome> in <time>

    Example

    Diagnose in 90 seconds

    Why it works

    The time-box reduces perceived friction. Pairs especially well with diagnostic and assessment CTAs.

  4. Pattern 4

    Price-as-Reassurance

    Formula

    <Action> for $<price>

    Example

    Unlock for $1

    Why it works

    Pricing on the button removes the 'wait, is this free?' hesitation. Use for $1 tripwires and free assets.

  5. Pattern 5

    Negation Promise

    Formula

    <Outcome> without <objection>

    Example

    Diagnose without signing up

    Why it works

    Defeats the most common objection inside the button copy itself. Buyers click harder when the friction is pre-named.

  6. Pattern 6

    Conversational Yes

    Formula

    Yes, <one-line claim of what they want>

    Example

    Yes, diagnose my live page

    Why it works

    Borrowed from VSL sales pages. Frames the click as agreement with a self-evident desire.

  7. Pattern 7

    Mechanism Tease

    Formula

    <Action> using <named framework>

    Example

    Run the Hook / Story / Offer check

    Why it works

    For audiences who already recognize the framework. Earns clicks through credibility, not curiosity.

  8. Pattern 8

    Action + Receipt

    Formula

    <Action> + send me <delivery format>

    Example

    Diagnose + email me the rewrite

    Why it works

    Pre-commits the visitor to the next two steps. Higher activation rate downstream.

  9. Pattern 9

    Free Specific

    Formula

    Free <noun, not adjective>

    Example

    Free 90-second diagnostic

    Why it works

    'Free' alone is suspect; 'free X' is concrete. The noun does the work, not the adjective.

  10. Pattern 10

    Self-Qualifying

    Formula

    I'm <cohort>, <action>

    Example

    I'm post-launch, diagnose me

    Why it works

    Forces self-identification on the click. Audience that clicks is more qualified, which improves downstream metrics.

  11. Pattern 11

    Permission Frame

    Formula

    Show me <thing>

    Example

    Show me what's broken

    Why it works

    Soft entry. Frames the click as a look, not a commit. Good for early-funnel CTAs.

  12. Pattern 12

    Pre-Result Claim

    Formula

    <Verb> my <claimed result>

    Example

    Claim my diagnosis

    Why it works

    'Claim' is high-conviction. Pairs with limited-time or limited-spots framing without screaming it.

Common implementation mistakes

  • Using 'Submit' on a CTA. The visitor isn't submitting; they're starting a process. Name the process.
  • Same copy on the primary and secondary CTA. The secondary should name the alternative path explicitly.
  • Long button copy that wraps to two lines on mobile. 1-4 words on mobile, 5-6 words max on desktop.
  • CTA copy that's a noun phrase instead of a verb phrase. 'Diagnostic' is a label; 'Get my diagnostic' is a verb.
  • Treating the button as the headline. The button copy should complete the sentence the headline started, not restate the value proposition.

Real examples from indie SaaS teardowns

Pattern names above are illustrative. These are real, named, dated funnels from the Unlock SaaS teardown set where the CTA button demonstrates the pattern in a shipping product. Funnel-hack the real ones.

  • offer lens

    Senja Free entry plus brand-customization upsell

    Senja sells a problem most SaaS know they have but never name. The funnel uses its own product as the demo.

    CTA is outcome-first ('get my first testimonial'), not action-first. Buyer reads it as completing a desire.

    From the teardown: The free tier collects basic testimonials with Senja branding. The paid tier removes branding, adds video, and unlocks customization. The upsell trigger is when the founder is ready to put testimonials on the marketing site without the third-party logo. Behaviorally aligned with when the willingness-to-pay spikes.

    Read the full Senja teardown →

  • offer lens

    Resend Free-tier-led plus React Email ecosystem

    Resend sells developer experience as the differentiator in a commodity category. The funnel reads like documentation.

    CTA is the first product action ('send your first email'). The button IS the trial.

    From the teardown: Free tier is generous enough that most indie SaaS can ship in production on it. React Email (open-source library for building emails) extends Resend's surface area into a free tool that converts independent of the paid product. The free tool IS the marketing.

    Read the full Resend teardown →

  • story lens

    Tally Show, do not tell

    Tally turns the freemium ceiling into the headline. The funnel is the price line.

    The CTA is the product launch – click is the demo. Zero gap between intent and product experience.

    From the teardown: Story is told through live form examples and the in-product trial flow, not through a written narrative. The reader is funnelled into building a form within two clicks of the homepage. The proof is the build experience itself, which removes any need to claim ease of use in copy.

    Read the full Tally teardown →

  • offer lens

    Cal.com Hosted plus self-host two-track

    Cal.com sells the open-source alternative to Calendly. The repo IS the trust signal.

    Two-CTA branching (hosted / self-host) lets each cohort claim their path without diluting the primary.

    From the teardown: Same dual-track as Plausible: hosted SaaS for the easy buyer, self-host for the principled buyer. Most self-hosters return to the hosted tier when the maintenance cost exceeds the subscription cost. The two-track offer captures both buyer types without forcing a choice at first contact.

    Read the full Cal.com teardown →

Which Brunson job does this element do?

This element sits in the Hook + Offerlens. Knowing the lens tells you what the element is supposed to accomplish, not just what shape it takes – so you don’t rewrite a Story element using Hook tactics or vice versa.

People also ask

What is a CTA button swipe file?

A CTA button isn't a label, it's a one-word completion of the visitor's mental sentence. The button copy that wins names the next state the visitor enters when they click, not the action they perform on the page.

When should I rewrite my CTA button?

When click-through on the primary CTA is under 5 percent on a hero block that's otherwise reading well. When 'Get Started' / 'Sign Up' / 'Learn More' is doing zero qualification work.

When is the CTA button not the right thing to fix?

When the issue is upstream: the headline didn't qualify, so no button copy can recover it. When the form below the button is the actual friction (length, fields requested).

Questions founders ask about CTA button copy

Should CTA buttons say 'Get Started' or something specific?

Something specific, always. 'Get Started' wins generic A/B benchmarks because the alternatives in those tests were also generic. Once you put a specific outcome verb on the button, the lift is structural.

How long should CTA button copy be?

1-4 words on mobile, 5-6 words on desktop. Anything longer wraps awkwardly and loses the unit-of-action feeling.

Should the CTA repeat words from the headline?

One key word, yes. The cohort word or the outcome word should appear in both, so the button reads as completing the headline's promise.

Apply these patterns to your live page

The free 90-second Launch Diagnostic checks whether the CTA button is actually the broken step on your page, or whether the bottleneck is upstream.

🚀 Explore Our Network

Full disclosure: UnlockSaaS is one of ten small products built and run by one independent operator. These are the other nine.

60 days
To First Paying Customer
7 steps
Proven Playbook
100%
Money-Back Guarantee
$49
Founding Price /mo

You shipped. Nobody paid. The playbook breaks the pattern or the code refunds you automatically.

Get Free Diagnosis

Refund runs from your dashboard, not a support ticket — the server re-checks eligibility and issues it through Stripe automatically.