Why Business Texts Are Not Sending: A2P 10DLC, Consent, and Deliverability
A step-by-step diagnostic for why your business text messages are not sending, covering number type, A2P 10DLC registration, business data matching, opt-in language, message content, and carrier filtering.
If your business texts have stopped sending, are stuck as "undelivered," or are getting filtered before they reach customers, the fix is almost never a broken automation. It is usually one of a handful of predictable causes: an unregistered or misconfigured number, a mismatch between your business data and what carriers expect, opt-in language that does not meet current standards, or message content that trips carrier filters. Work through the sequence below in order rather than guessing, since each step rules out a specific category of problem.
This is written for U.S. business texting on A2P (application-to-person) numbers used through a CRM, marketing platform, or messaging provider. It is not legal advice, and nothing here guarantees delivery. Carrier rules, provider requirements, and fees change, and you should verify current requirements with your specific provider before making changes.
Step 1: Confirm the number type you are actually using
Before touching registration or content, confirm what kind of number is sending your texts, because each type has a different path to reliable delivery.
Long code (a standard 10-digit local number): this is the most common setup for business texting through a CRM and is exactly what A2P 10DLC registration governs. Unregistered long codes sending business texts are the most frequent cause of blocked or filtered messages.
Toll-free number (800, 888, 833, and similar): toll-free texting uses a separate toll-free verification process rather than A2P 10DLC brand and campaign registration. An unverified toll-free number can be blocked or heavily throttled by carriers and gateway providers even though it looks like a normal working number.
Short code (5 or 6 digit numbers): short codes go through a distinct, more involved application and approval process aimed at very high volume senders, and are generally not the right fit for typical small or mid-size business texting.
Why this matters first
Troubleshooting content or opt-in language on a number that was never registered or verified for its type is wasted effort. Confirm the number type and its registration status in your provider's dashboard before anything else.
Step 2: Check brand and campaign registration status
For long codes, A2P 10DLC registration involves two linked records: a brand (your business identity) and a campaign (the specific messaging use case tied to that brand). According to Twilio's documentation on A2P 10DLC, mobile carriers use this registration data to decide how much trust to extend a sender, and unregistered or poorly-scored traffic is more likely to be filtered or blocked outright.
A "pending" status usually means the brand or campaign is still sitting with the registry or a carrier for review; this can take anywhere from under a day to over a week depending on the vetting level and current review volume. A "rejected" or "failed" status means something in the submitted data or use case did not pass review, and it will keep failing until the underlying issue is corrected and resubmitted. Sitting in pending or rejected status is one of the most common reasons a CRM automation looks broken when the sequence itself is firing correctly.
If you manage this through a platform like HighLevel, its own step-by-step registration guide and its A2P approval best practices article both walk through the required fields and the most common rejection reasons, and are worth checking directly against your account rather than relying on secondhand summaries, since provider requirements change.
Step 3: Verify your business data matches official records exactly
A large share of rejected or flagged registrations come down to a mismatch between what was submitted and what official records show. Check each of these fields character by character:
Legal business name matches your EIN registration exactly, including punctuation, LLC/Inc suffixes, and spacing.
EIN is entered correctly with no transposed digits.
Business address matches the address on file with your registered business records, not a PO box or a location you have since moved from.
Business phone number and website are live, accurate, and reachable, since some review processes check that the website actually resolves and reflects the stated business.
Contact name and email on the registration belong to someone who can respond if a carrier or aggregator requests clarification.
If your registration was submitted with a doing-business-as name, an old address, or a typo in the EIN, correcting it and resubmitting is usually the fix, not switching providers or rebuilding the automation.
Step 4: Make sure your documented use case matches what you actually send
Campaign registration asks you to declare a specific use case, such as customer care, account notifications, marketing, or mixed messaging. Carriers use that declared use case, together with the brand's trust score, to decide how the traffic gets treated. If you registered under a narrow use case like appointment reminders but are actually sending promotional offers, that mismatch can lead to filtering even though the campaign shows as approved.
Review what your CRM is actually sending, including any conversational or automated follow-up sequences, and confirm it lines up with what was declared at registration. This is also relevant if you are building out CRM setup and lead follow-up automation, since new automated sequences added later can quietly drift away from the original registered use case if nobody checks them against it.
Step 5: Check your website opt-in language and disclosures
Registration reviewers and, separately, carriers themselves often check that the website tied to your business texting program actually shows appropriate consent language where phone numbers are collected. At minimum, this generally means a visible statement near the opt-in checkbox or form describing what the person is signing up for, a link to a privacy policy, and a clear disclosure of message frequency and that message and data rates may apply.
The opt-in checkbox or field should not be pre-checked by default.
The privacy policy should be a real, accessible page, not a broken or placeholder link.
Message frequency language should be honest (for example, "message frequency varies" or a stated range) rather than vague or missing entirely.
The rates disclosure (message and data rates may apply) should sit near the opt-in point, not buried in unrelated terms of service.
This step is where a rushed website launch often creates a compliance gap discovered later. It is worth treating consent language as a checklist item on every new page that collects a phone number, not a one-time setup task.
Step 6: Review your actual message content
Even with clean registration, individual message content can still get filtered. Common patterns that trigger filtering include messages that do not identify the sending business by name, content that resembles restricted categories carriers scrutinize closely (this varies by provider and can include things like certain financial offers, debt-related content, or high-risk industries), and links using generic or unfamiliar shorteners that look similar to patterns used in spam or phishing traffic.
Every message identifies the business by name, ideally at or near the start.
The message avoids all-caps, excessive punctuation, and phrasing that resembles spam patterns (guaranteed prizes, urgent account alerts, unusual financial language).
Links use a recognizable, consistent domain rather than a rotating or unfamiliar shortener.
Content matches the registered use case (see step 4) rather than drifting into a different category over time.
If you are unsure whether a specific message category is restricted or requires additional vetting under your provider's rules, check directly with that provider. Restricted categories are set by carriers and aggregators and vary; they are not a fixed universal legal list.
Step 7: Confirm STOP and HELP keyword handling works
Carriers and most messaging platforms require that replying STOP immediately opts a recipient out and that replying HELP returns a message with support contact information. Most CRM and messaging platforms handle this automatically at the platform level, but it is worth testing directly, texting your own number STOP and HELP from a personal phone and confirming the expected behavior actually happens, rather than assuming the default is enabled and correctly configured for your specific number and campaign.
If STOP handling is broken or delayed, that alone can cause a provider or carrier to restrict a number, independent of anything else being correct.
Step 8: Check your consent capture and revocation records
You should be able to show, for any contact, how and when they opted in to receive texts, and confirm that anyone who has opted out (through STOP or another channel) is not still receiving messages. The FCC's guidance on unwanted robocalls and texts emphasizes that consumers have a right to stop unwanted texts and that businesses are expected to honor opt-out requests. Keeping accurate records of consent and revocation is part of operating a compliant program, not just a registration formality.
In practice, this means checking that your CRM is actually suppressing opted-out contacts across every automation and campaign, not just the one where they replied STOP. A contact who opts out of one sequence but keeps receiving a different automated sequence is a common and avoidable failure mode.
Step 9: Look at carrier filtering and provider error codes before assuming the automation is broken
Most messaging providers expose delivery status and error codes for each message (things indicating carrier filtering, an unregistered number, an invalid destination, or a landline that cannot receive texts at all). Before assuming your CRM workflow or automation logic is broken, pull the actual delivery logs and error codes for a sample of failed messages. A workflow that fires correctly but sends through a number with a filtered or unregistered status will look identical, from inside the CRM, to a workflow that never fired at all.
This is a useful general diagnostic habit whether you are troubleshooting texting specifically or running a broader lead leak fix audit, since delivery failures at the messaging layer produce the same symptom, silence, as failures anywhere else in a follow-up sequence.
Step 10: Escalate to your provider with evidence, not just a description
If you have worked through the steps above and messages are still failing, escalate to your messaging provider's support team directly. Attach specifics rather than a general description of the problem:
The exact phone number and its registered brand or campaign ID.
Screenshots or exports of the current registration status.
A handful of specific message SIDs or IDs with their delivery error codes and timestamps.
A short description of what use case the campaign was registered under and what content is actually being sent.
Support teams can generally see carrier-side filtering reasons that are not visible from your dashboard, so providing specifics dramatically speeds up resolution compared to reporting that texts "are not working."
What registration does not do
It is worth being direct about this: completing A2P 10DLC brand and campaign registration, or toll-free verification, reduces the likelihood of blanket blocking and generally improves throughput and trust with carriers. It does not guarantee that any specific message will be delivered. Individual messages can still be filtered based on content, recipient carrier behavior, temporary network issues, or a recipient's device settings. Treat registration as a prerequisite for reliable sending, not a delivery guarantee, and keep monitoring delivery rates over time rather than assuming a one-time setup is permanent.
How this fits into a CRM install
Texting deliverability is not a side issue when you are setting up CRM setup and lead follow-up automation; it is a core dependency, since most automated follow-up sequences use text as a primary channel alongside email and calls. Businesses in specific industries run into the same diagnostic sequence, whether that is CRM for contractors sending appointment reminders and quote follow-ups, CRM for auto shops sending service reminders, CRM for med spas sending booking confirmations, or CRM and lead follow-up for health and wellness practices sending intake and scheduling texts. In each case, working through number type, registration status, business data accuracy, and message content before assuming the CRM itself is broken saves significant time.
Requirements change
A2P 10DLC rules, toll-free verification requirements, carrier filtering behavior, and provider fees change over time and can vary by provider. Verify current requirements directly with your messaging provider and, where relevant, your registered aggregator before making changes to a live texting program.