Building a Combined SMS + Cold-Call Cadence for Agencies

Most agency outbound dies not because the offer is bad but because the cadence is sloppy — one call, no follow-up, no text, and the lead goes cold by Wednesday. The fix isn't more channels for the sake of it. It's a deliberate sequence where SMS and voice each do the job they're actually good at: text earns the right to call, and the call closes.

Full disclosure: I work for ReadySMS, and we build both the SMS side and the Power Dialer side of what I'm about to describe. That's also why I think running the two on one platform matters — but I'll show you the cadence first, and you can run it on whatever stack you like.

Why blend the two channels at all

A cold call alone has a connect-rate problem. Depending on your list and your dialer setup, you might connect with 5–15% of dials on a given pass — the rest go to voicemail or ring out. A cold SMS alone has a different problem: it's easy to ignore and easy to mishandle from a compliance standpoint if you haven't done the groundwork.

Run them together and each covers the other's weakness:

  • SMS warms the number. A short, named text before the first call means the prospect has seen your agency's name. Connect rates climb when the caller ID isn't a total stranger.
  • The call does the persuading. Nuance, objection handling, and actual closing happen on voice. Text can't do that well.
  • Voicemail + text combine. A voicemail drop followed within minutes by a text referencing it — "just left you a quick voicemail" — turns a missed call into a touch instead of a dead end.

The trap is treating them as two separate campaigns run by two separate tools. Then you're stitching attribution together by hand and praying your opt-out handling lines up across both.

A 9-day worked cadence

Here's a cadence I'd actually run for a B2B agency working a warm-ish list (lead magnet downloads, event lists, referral intros — not scraped numbers). Adjust the touches down for colder lists and up for warmer ones.

DayChannelTouchNotes
1SMSIntro text, name + reason for reaching outSent during local business hours only
1CallFirst dial, ~2 hrs after the textIf voicemail, drop a 20-sec VM
2SMSSoft follow-up referencing the VMOnly if no reply Day 1
4CallSecond dial, different time of dayMorning if Day-1 was afternoon
4SMSOne-line value point, no pitch"We helped [similar client] cut X"
6CallThird dialLast hard voice attempt
7SMSDirect ask + easy out"Worth a 15-min call, or should I close your file?"
9SMSBreakup textFinal touch, then stop

That's 4 SMS touches and 3 call attempts across nine days. The Day-7 "should I close your file?" line consistently pulls the most replies — people who've been ignoring you will tell you yes or no when you give them permission to bow out.

For the speed-to-lead version of Day 1 — where a fresh inbound lead gets an instant text and an auto-dial inside five minutes — we wrote that up separately in Speed-to-Lead: Pairing Instant SMS With Auto-Dial in the First 5 Minutes.

Timing rules that keep you out of trouble

Cadence timing isn't just optimization, it's compliance. A few hard rules:

  • No sends or dials outside local business hours. Quiet-hours enforcement on ReadySMS holds SMS sent outside permitted local windows based on the recipient's area, which is a real TCPA-exposure reducer. Apply the same discipline to calls manually — don't dial at 8pm their time.
  • Space the call attempts. Three dials in one afternoon reads as harassment and burns the number. One dial per day, varied by time of day, is plenty.
  • Lead with the text, not the call, on Day 1. A named text two hours before the first dial is the warming move. Reverse it and you're just a cold number.
  • Stop on reply. The moment someone replies "interested," kill the rest of the automated cadence and move them to a human conversation. Nothing tanks a deal like an automated breakup text landing after the prospect already said yes.

On when texts actually get opened, best time to send SMS has the breakdown we use.

Opt-out handling across both channels

This is where the one-platform argument earns its keep. If someone texts STOP, that opt-out has to propagate everywhere — including stopping the call attempts that are still queued in your dialer.

On ReadySMS, inbound STOP/UNSUBSCRIBE is honored automatically and the opt-out propagates so the contact can't be messaged again across campaigns. Because the Power Dialer lives on the same platform, you're not relying on two systems to sync a suppression in time. When the cadence is split across a separate SMS tool and a separate dialer, you get the nightmare scenario: prospect texts STOP, your dialer doesn't know, it dials them tomorrow, and now you've got an angry opt-out who's also a TCPA risk.

Verbal opt-outs on calls matter too. If someone says "take me off your list" on a dial, log it as a suppression immediately — and on a unified platform that suppression covers their SMS touches as well.

Scrub the list before any of this starts

A cadence is a multiplier. If your list has TCPA litigators or DNC complainers on it, a 7-touch sequence multiplies your exposure by seven. One careless text can run $500–$1,500 per violation, and litigators seed lists specifically to catch outbound senders running exactly the kind of cadence I just described.

Run the list through a litigator/DNC scrub before touch one. ReadySMS offers standalone TCPA & DNC Litigator Scrub at $0.005 per contact — one check against known litigator and DNC-complainer lists, auto-suppressing matches before send. On a 5,000-contact list that's $25 to avoid a single lawsuit that costs more than your monthly retainer. The math isn't close. We laid it out fully in The Math: One TCPA Lawsuit vs Scrubbing Your Whole List and walked the cold-list workflow in Scrub Before You Blast.

What this costs to run

Let's price the 9-day cadence for a 2,000-contact campaign on ReadySMS, assuming each SMS is a single 160-char segment.

SMS side (Basic tier, $0.0074/segment + $0.0045 carrier pass-through = $0.0119 per segment):

  • 4 touches × 2,000 contacts = 8,000 segments
  • But ~30% reply or opt out before later touches, so call it ~6,200 actual sends
  • 6,200 × $0.0119 = ~$74

Scrub:

  • 2,000 × $0.005 = $10

Voice side (Power Dialer Team, $69/agent/mo, $0.0375/min):

So the SMS-and-scrub layer of a 2,000-contact, 9-day cadence runs under $85 before voice minutes. That's the cost of warming and qualifying the list so your agent's dial time is spent on people who've already seen your name. Full pricing is on the pricing page and you can model your own numbers with the calculator.

When to stop — and when to skip the cadence entirely

Stop conditions, in order of priority:

  1. They reply or answer. Move to human conversation immediately.
  2. They opt out (STOP, "remove me," verbal on a call). Suppress across both channels, done.
  3. They've hit the full sequence with no response. After the Day-9 breakup text, stop. A lead who ignored 7 touches isn't going to convert on touch 8 — they're going to report you.

And be honest about fit. If your list is purely cold and scraped, no cadence makes that compliant — you need consent or an established business relationship before you're running automated touches at scale. If your offer doesn't warrant a phone call, skip the dialer and run SMS-only. The cadence above assumes a list with at least some prior relationship and an offer worth a 15-minute conversation.

The practical takeaway

A blended SMS + call cadence works because text earns the connect and voice does the closing. The day-by-day sequence matters less than the discipline around it: lead with the text, space the dials, enforce quiet hours, scrub before you start, and stop the instant someone replies or opts out.

The reason I'd run both on one platform isn't a feature checkbox — it's that a STOP on the SMS side has to kill the queued calls instantly, and split tools make that fragile. If you're a GoHighLevel agency keeping clients isolated per sub-account, the best SMS provider guide for GHL covers how the integration maps that out. Start with the scrub, build the cadence, and let the channels do the jobs they're each good at.