The Upgrade Modal's Secondary Button Was Eating Your Trial-to-Paid Rate: A Before/After Case Study
The Upgrade Modal's Secondary Button Was Eating Your Trial-to-Paid Rate: A Before/After Case Study
Your trial is almost over. The user has been poking around your product for 13 days. They hit a locked feature, and the upgrade modal appears. Two buttons: "Upgrade to Pro" in bright green and "Maybe later" in a default gray. Which one do you think they clicked? If you said "Maybe later," you've built your trial-to-paid flow around an escape hatch.
We audited a B2B SaaS with a 14-day trial. The product was solid, trial activation was healthy, and pricing was in line with the market. But trial-to-paid conversion was flat. The problem wasn't the product. It was the upgrade modal that appeared when trial users tried to access a paid feature.
The One Small Change That Moved the Needle
The original modal was classic over-engineering. It had a feature bullet list, a price, and two equal-height buttons side by side:
- Primary action:
Upgrade to Pro - Secondary action:
Maybe later
We changed exactly one thing: we demoted the secondary action from a button to a text link and moved it below the primary button. We also rewrote its copy to name the trade-off. That was the entire change.
No new features, no new pricing page, no discount code. Just a rearrangement of the decision hierarchy.
Why 'Maybe Later' Is a Friction Trap, Not a Neutral Exit
The problem with "Maybe later" is that it's not a real choice. It's a way to avoid making one. When you give a user two buttons of equal visual weight, you tell them "these are two equally valid options." That's a lie. Your product has a default path (upgrade) and a fallback (stay free), but the UI makes them look like equals.
Users are also deeply biased toward the path of least resistance. In the middle of a task, clicking a button is easier than typing, thinking, or deciding. "Maybe later" lets them keep momentum without losing face. And once they click it, they've learned a pattern: upgrade prompts are dismissible.
This is a classic hierarchy failure. The primary CTA should be the only button on screen. If there's a secondary action, it should be visually subordinate, separated by whitespace, and worded as a reminder of what the user gives up.
The Before and After: A Rewrite of the Upgrade Modal
Let's look at the actual change we made.
Before
┌─────────────────────────────────┐
│ Unlock Pro features │
│ - Unlimited projects │
│ - Priority support │
│ - Advanced analytics │
│ │
│ [ Upgrade to Pro ] [ Maybe later ] │
└─────────────────────────────────┘
The two buttons were the same size, same padding, same border radius. The only difference was the fill and the text.
After
┌─────────────────────────────────┐
│ Unlock unlimited projects │
│ - Unlimited projects │
│ - Priority support │
│ - Advanced analytics │
│ │
│ [ Unlock unlimited projects ] │
│ │
│ No thanks, I'll keep my 5-project limit │
└─────────────────────────────────┘
The primary button is larger and uses outcome-focused copy. The secondary action is now a muted text link, not a button. It sits below the primary CTA, separated by space. And the copy forces the user to acknowledge what they're losing: their 5-project limit. "Maybe later" doesn't do that.
The result: more trial users clicked the primary action. We didn't run a rigorous A/B test — we made the change, tracked the upgrade flow for two weeks, and watched the numbers move in the right direction. The change cost us about an hour of work.
A Mini Playbook for Your Upgrade Modal
If you have a trial-to-paid flow, apply these fixes in order of impact.
P0: Remove every secondary button that looks like a button
The moment a trial user can click a "later" button, you've handed them a conversion leak. Replace it with a text link or a simple anchor styled as quiet text.
P1: Name the trade-off in your secondary action
Instead of "Maybe later," "Not now," or "Cancel," use copy that reminds the user what they're walking away from. "Keep my 5-project limit" is uncomfortable — that's the point. Make the free plan sound like a limitation, not a sanctuary.
P2: Make the primary CTA outcome-focused
"Upgrade to Pro" is a generic label. "Unlock unlimited projects" is a reason to click. Test the primary CTA copy too, but don't change it until the secondary action is fixed. Otherwise you can't tell which change drove the lift.
Bonus: Time the modal to the moment of need
Your upgrade modal should appear exactly when a user tries to do something they can't do on the free plan. If you're showing it on a timer or after login, you're asking for abandonment. This is the true flow moment; the buttons are just the finishing touch.
If you're not sure your upgrade modal has this leak, run a free audit on your trial-to-paid flow and see exactly where the friction shows up.
When This Won't Save You
Demoting the "Maybe later" button is a sharp tool, not a magic wand. It won't work if your trial users never hit a usage limit, because they never see a compelling reason to upgrade. It won't work if your pricing feels unfair, or if your free plan is too generous. And it won't fix a product that users sign up for but immediately forget about.
Before you copy this change, ask yourself: does my trial-to-paid flow actually create a moment of need? If not, fix that first. Then fix the buttons.
The Takeaway
Your upgrade modal is the last thing your trial users see before they decide to pay. If you're giving them a button that lets them walk away without any cost, you're not being respectful of their time — you're being lazy. Make the primary action impossible to miss, make the secondary action feel like a concession, and watch your trial-to-paid flow stop leaking.
If you're not sure your upgrade modal has this leak, run a free audit at FlowAudit. It'll find exactly where the friction is and give you a prioritized P0/P1/P2 fix list. No consultant, no ballpit of generic best practices — just the moments that cost you revenue. Start with the flow that matters most: sign up for a free audit.