Your best-performing upgrade modal has one fatal flaw: a user has to open the product to see it. And the users who most need a nudge — the ones who signed up, poked around once, and never came back — are exactly the ones who never trigger it.

That's the freemium recovery problem in one sentence. You built a beautiful in-app paywall, an "unlock this feature" banner, a usage-limit interstitial. All of it fires only for people already inside the app. The dormant majority — call it 60–70% of freemium signups in a typical B2B SaaS, and it's often worse — sees none of it.

Full disclosure: I work for ReadySMS, so I have a horse in the "use SMS" race. I'll try to be honest about where it actually helps and where email is the smarter call.

The channel gap nobody accounts for

Think about your funnel by reachability, not by lifecycle stage:

  • Active free users — reachable by in-app prompts, email, and SMS. You have three shots.
  • Dormant free users — not reachable in-app (they don't open it). Reachable by email, if it lands. Reachable by SMS if they consented.
  • Ghosts — signed up with a burner email, never verified, never engaged. Basically unreachable by anything.

In-app messaging owns group one and only group one. That's fine — it's the cheapest channel and it converts well for engaged users. The mistake is treating in-app as your whole activation-to-paid strategy when it structurally cannot touch the group with the most recoverable revenue.

Email is supposed to cover the dormant tier. But cold re-engagement email to a free user who hasn't logged in for three weeks is doing rough numbers. Promotional inbox placement, sub-20% open rates on lapsed lists, and the SaaS product being one of forty senders competing for attention. Email isn't dead — it's just quiet with people who've already tuned you out.

SMS is loud with those same people. Opt-in text lists routinely see open rates north of 90% and reply/click behavior that email can't match — I'll frame those as rough industry approximations, because your mileage varies by list quality. The point is directional: the channel that reaches inattentive people is the one that doesn't require them to already be paying attention.

Where SMS actually wins (and where it doesn't)

I'm not going to tell you to text every free user. There are account states where SMS tanks conversion compared to a well-timed email — we wrote a whole piece on when NOT to send a SaaS upgrade text, and it's worth reading before you build anything.

Here's my rough decision table:

User stateBest channelWhy
Active, hit a usage limitIn-app promptThey're right there, context is fresh
Active, near an upgrade triggerIn-app + emailReinforce the decision without interrupting
Dormant 7–21 days, previously engagedSMSEmail is losing them; a short text re-opens the door
Dormant 30+ days, one-time signupSMS or sunset emailLow expectation either way; SMS at least gets seen
Never activated, no real product momentNeither — fix onboarding firstNo message rescues a user who never got value

SMS earns its keep in that dormant-but-previously-engaged band. Someone who got a taste of the product, hit a wall, and drifted — a two-line text is a legitimate, welcome nudge. Someone who never experienced value won't upgrade because you texted them; they'll opt out, and rightly so. If your activation is broken, fix the onboarding sequence before you spend a cent on recovery.

The consent problem is the whole ballgame

Here's the catch that kills most "let's just text our free users" plans: you probably don't have consent to text them.

A freemium signup form that collects an email and a phone number does not automatically give you the right to send marketing SMS to that number. TCPA treats promotional texts to a mobile number as requiring prior express written consent, and the exposure for getting it wrong runs $500–$1,500 per message. Text 4,000 dormant users without consent and you're looking at a theoretical liability in the millions. Nobody's product-led growth model survives that.

So the recovery play only works if you build consent collection into the signup and onboarding flow from day one. Two ways to do it right:

  1. Explicit opt-in at signup. An unchecked box next to the phone field: "Text me product tips and account updates. Msg & data rates may apply. Reply STOP to opt out." Unchecked matters — pre-checked isn't valid express consent.
  1. Progressive opt-in during onboarding. If phone isn't needed to use the product, collect it later with a clear value exchange: "Add your number for a security code / usage alerts / a 20% first-month offer." You get consent and a warmer relationship.

Record the attestation — timestamp, the exact language shown, the source. When a carrier or a plaintiff's lawyer asks "did this person agree to this?", you want an audit trail, not a shrug. ReadySMS captures opt-in attestation on bulk and API sends specifically so that record exists automatically.

For the SaaS-specific version of all this, we go deep in SaaS 10DLC compliance explained.

The compliance stack that keeps this legal

Consent is step one. The sending itself has to behave too. What I lean on:

  • A2P 10DLC registration — handled in-app, brand plus campaign, roughly ~$10/mo per brand and ~$20/mo per campaign in carrier fees, approval typically 1–3 days. Unregistered traffic gets carrier-filtered into oblivion, so this isn't optional if you want messages to actually land.
  • Automatic STOP handling — someone replies STOP, they're suppressed, and the opt-out propagates across campaigns so no automation re-texts them by accident.
  • Quiet-hours enforcement — sends held outside the recipient's permitted local hours. Your 9am recovery blast is 6am for a chunk of your list; the platform holds those instead of waking someone up. More on why that matters in the timezone-aware quiet-hours fix.
  • Litigator / DNC scrubbing — standalone TCPA-litigator and DNC-complainer scrub at $0.005 per contact, auto-suppressing the numbers most likely to turn a text into a lawsuit.

None of this makes you lawsuit-proof — compliance is ultimately the sender's responsibility, and I'd never claim otherwise. But it moves you from "hoping" to "documented, filtered, and defensible."

Worked example: what recovery actually costs

Say you've got 4,000 dormant free users who validly opted in to SMS. You want to run a recovery text.

Message: "Hey [name] — your [Product] account's been quiet. Your saved projects are still here. Want 30% off your first month to pick back up? [link] Reply STOP to opt out."

That's about 150 characters, GSM-7, no emoji — one segment. On ReadySMS Standard that's $0.02/segment plus the $0.0045 carrier pass-through = $0.0245 per message.

  • 4,000 messages × $0.0245 = $98 for the blast.
  • Scrub first: 4,000 × $0.005 = $20.
  • Total: $118 to reach 4,000 dormant users on a channel that ~90% of them will actually open.

Now the return side. If that text converts even 2% to a paid plan at a $29/mo product, that's 80 new subscriptions — $2,320 in the first month against $118 in send cost. Even at a modest 0.5% conversion you're at 20 subs, $580/month, still a clean multiple on spend. Compare that to a re-engagement email to the same list getting opened by maybe 15% of people and clicked by a fraction of those.

Run your own numbers in the cost calculator — the math shifts with your price point and list quality, but the shape holds: SMS recovery is cheap enough that you don't need heroic conversion for it to pay.

Sequencing it without being annoying

One text isn't a strategy; a barrage is a way to farm opt-outs. What I'd run for the dormant-but-engaged tier:

  1. Day 10 of inactivity — soft "still here, here's what you were working on" text. No hard offer.
  2. Day 18 — the value/discount nudge, like the example above.
  3. Day 30 — last touch, honest framing: "We'll stop texting soon — want to stay?" Then let them go.

Three touches, spaced, each with an out. The user who's coming back is back by touch two. Everyone else gets a clean exit, which protects your sender reputation and your list health. Pair this with the customer retention and churn reduction plays for active users and you've covered the whole reachability spectrum instead of just the people already looking at your product.

The practical takeaway

In-app prompts are your highest-converting channel — for the minority who show up. They're structurally blind to the dormant majority, and email increasingly is too. SMS is the one channel that reaches people who've stopped paying attention, which is exactly the population your recovery campaign is aimed at.

The whole thing rests on consent. Collect it at signup with an unchecked box and clear language, record the attestation, register 10DLC, scrub the risky numbers, respect quiet hours, and cap your sequence so you're a helpful nudge and not a nuisance. Do that and $118 can reach 4,000 people email gave up on.

If you want to test it, ReadySMS starts with 2,500 free credits and no credit card, and the compliance stack — 10DLC, STOP handling, quiet hours, consent capture — is built in rather than bolted on. Start with a small dormant segment, measure the reply-and-convert rate against your last re-engagement email, and let the numbers decide.