A free user hits 90% of their plan on a Tuesday afternoon. Your automation fires an upgrade email. It lands in a work inbox behind 40 other unread threads, gets a two-second glance during a stand-up, and gets buried by end of day. By the time they clear their inbox on Thursday — if they ever do — the moment where they felt the limit is gone. They found a workaround, or they left.
That gap between "user feels the constraint" and "user sees your offer" is where most freemium conversion leaks. Email doesn't lose because the copy is bad. It loses because it arrives after the emotion cooled.
Full disclosure: I work for Ready, an SMS platform. So I have a horse in this race. But I'll be honest about where email is the right call, because for a lot of freemium nudges it still is.
The nudge is only as good as its timing
Usage-threshold nudges are the most time-sensitive message in the whole SaaS lifecycle. The value of "you've hit 90% of your plan — upgrade to keep going" decays by the hour. Contrast that with a monthly newsletter, where a same-day open versus a next-day open barely matters.
Here's the rough shape of the two channels, framed as industry approximations, not hard promises:
| SMS | ||
|---|---|---|
| Typical open rate | ~20–30% | ~90%+ (opted-in) |
| Median time-to-open | hours | minutes |
| Chance it's seen while the user still feels the limit | low | high |
| Cost per send | ~free at low volume | ~$0.0245/segment (Ready Standard) |
| Best for | detailed, non-urgent, comparison-heavy | short, urgent, single-action |
The email column isn't bad. Email is cheap and roomy — perfect for a "here's everything the paid plan unlocks" comparison page. But the trigger nudge, the one that has to catch the user mid-moment, is exactly what email is worst at. A message that gets seen in minutes converts a usage spike that a message seen in hours cannot.
Where email latency actually kills conversion
Three specific moments where the delay costs you:
- The trial-expiry cliff. A user on a 14-day trial hits day 12 and starts wondering if it was worth it. An email sent at 9am that they read at 6pm — after they've mentally moved on — recovers a fraction of what a text sent at the decision moment does.
- The hard usage wall. They hit the cap mid-task. Right now they're blocked and annoyed at the limit, not at you. That's the highest-intent second they'll ever have. Email won't reach them inside it.
- The last-day-of-trial window. If the upgrade prompt has to compete with a work inbox on the day the card would get charged, latency isn't a nuisance — it's the whole ballgame.
For the deeper timing breakdown, we mapped the trial's three drop-off cliffs in The 14-Day Trial Has 3 Drop-Off Cliffs, and there's a threshold-specific version in A 'You've Hit 90% of Your Plan' Text Converts Upgrades an In-App Banner Never Reaches.
The consent line: where it goes and why it matters
You cannot text a freemium user just because they signed up. SMS consent is separate from account creation, and it has to be captured explicitly. The good news: signup is the natural place to grab it, and if you do it right you never have to think about it again.
Put a separate, unchecked checkbox at signup — not bundled into the ToS line:
☐ Text me account and usage alerts (like when I'm near a plan limit or my trial is ending). Msg & data rates may apply. Reply STOP to opt out.
Notes on that copy:
- It names the kind of message (usage/trial alerts), which is what makes it honest and what keeps you inside a transactional-flavored campaign.
- "Reply STOP to opt out" sets the expectation. On Ready, inbound STOP is honored automatically and the opt-out propagates across campaigns, so a user who quits never gets messaged again even if a different automation would have fired.
- The attestation gets recorded, so you have an audit trail if a carrier or a regulator ever asks how consent was obtained.
If you're a SaaS team new to any of this, SaaS-Specific 10DLC Compliance covers registration end to end. And the consent footnotes most teams forget are packaged with copy in 7 Trial-Expiry SMS Templates With the Consent Footnotes.
Don't send your upgrade nudge from your OTP number
This is the mistake that quietly sinks a lot of SaaS SMS programs. If your login codes and your upgrade blasts go out over the same 10DLC campaign, carriers see a "transactional" number suddenly carrying marketing traffic — and both start getting filtered. Your 2FA codes arrive late. Your upgrade nudges silently don't land at all.
Keep them separate:
- Transactional campaign — login codes, security alerts, hard usage-cap notices tied to account function.
- Marketing/upsell campaign — "upgrade to the Pro plan," promo pricing, feature announcements.
A usage-limit nudge lives in a gray zone, and honestly you can register it either way depending on how promotional the copy is. The rule of thumb: if the message is "your account is at capacity, here's how to keep working," that reads transactional. If it's "unlock advanced analytics — 20% off this week," that's marketing. Match the campaign to what you actually send. We wrote the full argument in Sending 2FA Codes and Promo Blasts From the Same Number Gets Both Filtered.
The math on a threshold-nudge campaign
Say you've got 8,000 free users a month who cross the 80% usage line, and you want to text each one a single, tight nudge.
A well-written threshold nudge fits in one segment if you keep it plain-text (160 GSM-7 characters):
"Heads up — you're at 82% of your plan. Upgrade to keep going: [link]. Reply STOP to opt out."
That's under 160 characters, no emoji, so 1 segment per send.
- 8,000 sends × 1 segment × ($0.02 + $0.0045 carrier) = 8,000 × $0.0245 = $196/month.
Now the failure mode people don't budget for: emoji. Drop a 🎉 in there and the whole message becomes unicode, capping segments at 70 characters. The same message now splits into 2 unicode segments:
- 8,000 × 2 × $0.0245 = $392/month — double, for one decorative character.
So the copy discipline isn't just aesthetic; it's the difference between $196 and $392. If even 1% of those 8,000 nudged users convert to a $30/mo plan, that's $2,400/mo in new MRR against a ~$196 send cost. The channel pays for itself on a rounding error of a conversion rate. You can sanity-check your own numbers on the Ready pricing page.
When email is still the right call — and when to use both
I'm not going to pretend SMS wins everything. Send the email when:
- The message is long or comparison-heavy — a full plan matrix, a feature deep-dive, an ROI breakdown. That doesn't compress into 160 characters and shouldn't.
- The user is deeply dormant. If someone hasn't logged in for 60 days, they're a churned lead, and there's a point where texting them is spending money on people who are gone. We drew that line in Texting Dormant Trial Users Costs Pennies Until You Realize 70% Already Churned.
- There are account states where SMS actively tanks conversion versus email — worth reading When NOT to Send a SaaS Upgrade Text before you blanket-text everyone.
The strongest setup usually isn't SMS or email — it's SMS as the timely trigger and email as the detailed follow-up. Text the nudge at the threshold to get seen in minutes; if they click, the landing page carries the detail. If they don't click within a day, the email arrives with the full comparison. Each channel does the job it's actually good at.
The practical takeaway
Freemium conversion at usage thresholds is a timing problem more than a copy problem. The email isn't ignored because it's badly written — it's ignored because it shows up after the user stopped feeling the limit. SMS closes that gap by getting seen in minutes instead of hours.
To do it without shooting yourself in the foot:
- Capture SMS consent as a separate checkbox at signup, with the message type named.
- Keep transactional and marketing traffic on separate 10DLC campaigns so neither gets filtered.
- Write one-segment, plain-text nudges — skip the emoji unless you want to pay double.
- Let email carry the long-form detail; let SMS carry the timing.
If you want to try it, Ready gives you 2,500 free credits and self-serve 10DLC that most senders get approved same-day — enough to run a real threshold-nudge test before you commit a budget. Start here.