Why Your Business Texts Aren't Delivering (And How to Fix It)
You set up the automation, the texts "sent" — and customers never got them. The contractor's troubleshooting guide: check these seven things in order, and you'll find the culprit in 20 minutes.
System 1 from the Leveraged Owner Starter Pack
You set up missed-call text-back last week. The dashboard says "sent." But a customer just told you they never got your text — and another one replied to a message from three days ago that you never saw. Your automation is running. Your texts are dying somewhere between your tool and their phone. Here's how to find out where.
This is part of Pillar A: Capture Every Lead — the troubleshooting companion to the complete missed-call text-back setup guide. Work through these in order; they're ranked by how often each one is the actual culprit.
Culprit #1: Your 10DLC registration isn't approved (the #1 cause)
If you turned on texting before your 10DLC business-texting registration was approved — "A2P" is application-to-person messaging, and 10DLC is the carriers' registration system for business texts from standard 10-digit numbers — your texts are being filtered as unregistered traffic. This is the single most common cause of "texts aren't delivering," full stop.
- Check: in your texting tool, find the 10DLC / compliance / phone numbers section and confirm your brand and campaign show as approved or verified — not pending, not submitted.
- Fix: if it's pending, wait — approval takes 1–7 days. If it was rejected, the rejection reason tells you what to fix (usually a missing privacy policy or terms page on your website). Do not send another text until it shows approved.
- The trap: some tools let you toggle automations on while registration is pending. The texts "send" from the tool's perspective and die at the carrier. The dashboard lies; the carrier doesn't.
Culprit #2: Missing opt-out language in the first text
Carriers filter automated business texts that don't include opt-out instructions. Your first automated text to any contact must include something like "Reply STOP to opt out."
- Check: read your actual automated messages word for word. Is "Reply STOP to opt out" (or equivalent) in the first one?
- Fix: add it. Every script in this blog series includes it — if you wrote your own, add it now.
Culprit #3: You're texting outside quiet hours
TCPA (federal telemarketing law) quiet hours prohibit marketing texts before 8am and after 9pm in the recipient's local time. Carriers and tools increasingly enforce this automatically — texts scheduled for 6am "go out" and never arrive.
- Check: look at the send times of your failed texts. Anything before 8am or after 9pm recipient time is suspect.
- Fix: schedule campaigns inside 9am–6pm local time to be safe. For after-hours auto-responses to inbound missed calls (conversational, not marketing), these are generally fine — but keep the opt-out language regardless.
Culprit #4: Carrier filtering of message content
Even registered numbers get filtered when message content trips carrier spam filters. The usual triggers:
- URL shorteners (bit.ly and friends) — carriers hate them because spammers love them. Use full URLs or your tool's built-in link handling.
- ALL CAPS blasts and excessive exclamation points!!!
- Dollar amounts with urgency ("$500 OFF TODAY ONLY!!!") — the classic spam signature.
- Sending the identical message to hundreds of contacts at once without proper campaign registration — that's exactly what 10DLC campaigns are for.
Fix: rewrite the message in plain, conversational language — the way you'd actually text a customer. If it reads like a human wrote it, it usually passes. If it reads like a coupon circular, it won't.
Culprit #5: Number reputation (the slow poison)
If your number has been reported as spam — even a few times — carriers throttle or filter your texts. This happens most often when businesses text old lists, bought lists, or people who never asked to hear from them.
- Check: think about your list history. Have you ever blasted a list that didn't explicitly opt in? Have customers mentioned your texts "going to spam"?
- Fix: stop texting anyone who didn't opt in, honor every STOP instantly, and keep your list to real customers and inbound leads. Reputation recovers slowly — there's no reset button, only good behavior.
Culprit #6: The tool's sending number doesn't match your business number
Some setups send texts from a different number than the one customers call — a pool number, a short code, or a newly provisioned line. The customer gets a text from a number they don't recognize and ignores it (or their phone flags it as spam).
- Check: text your own cell from the automation. Does it come from your business number?
- Fix: configure the automation to send from your actual business number — the one on your trucks, website, and Google profile. Recognition is deliverability.
Culprit #7: The customer's carrier or phone
Sometimes it's not you. The customer's carrier may filter, their phone may sort unknown numbers to spam, or they may have texting disabled on a landline-forwarded number.
- Check: is the failure isolated to one or two contacts, or across the board? Isolated = probably their end.
- Fix: for important threads, call. And always keep the phone call as your backup channel — text-back is the primary system, not the only one.
The 20-minute diagnostic routine
When texts aren't delivering, run this in order and stop at the first failure:
- Is 10DLC approved? (If no → that's it. Wait or fix the rejection.)
- Does the first automated text include opt-out language? (If no → add it.)
- Were the failed texts sent inside 8am–9pm recipient time? (If no → reschedule.)
- Does the message contain short links, ALL CAPS, or spammy offers? (If yes → rewrite.)
- Text your own cell from the automation. Does it arrive, and from the right number? (If no → it's the tool config.)
- Is the failure across all contacts or isolated? (Isolated → customer's end; call them.)
Nine times out of ten, the answer is step 1. The registration is the foundation everything else sits on — which is why every setup guide in this series puts it first.
Compliance note
This whole post is about staying on the right side of the system: 10DLC business-texting registration (1–7 day approval, ~$15–$20 in carrier/campaign fees) before sending, opt-out language in automated texts, TCPA quiet hours (no marketing texts before 8am / after 9pm recipient local time), and instant STOP handling. General information, not legal advice. For the full registration walkthrough, read the 10DLC registration guide.
Related guides in this series
Start with the complete missed-call text-back guide (Pillar A), then the 10DLC registration walkthrough to fix the #1 culprit properly. For the legal boundaries, read TCPA quiet hours explained.
Get System 1 free: the complete Missed-Call Safety Net
The full setup guide, all four copy-paste scripts (including the owner notification), the "Your Numbers" missed-call worksheet, and the step-by-step setup guide — free, no catch. Fix your missed calls this week.
See everything inside the AI Automation Starter Pack ($27, one-time) here: https://leveragedowner.com/starter-pack/
The done-for-you version
This post is System 1 from the Leveraged Owner Starter Pack — the done-for-you version with the full 11-step setup guide, the deliverability checklist, every script, and complete setup guides for all 8 systems.
No industry statistics were used in this post. Pricing figures are approximate and change — verify before purchasing.