GoHighLevel
3 min read
Why your GoHighLevel SMS is not being delivered
Your platform says sent. The phone never buzzed. Carrier filtering is silent by design, which is why this is the hardest messaging problem to diagnose and the most common one we are called for.
Quick answer
Why are my GoHighLevel SMS messages not being delivered?
Messages marked sent but never delivered are almost always filtered by the mobile carrier rather than blocked by GoHighLevel. The usual causes are missing or rejected A2P 10DLC registration, public URL shorteners in the message body, sudden volume increases, high opt-out rates, and content that matches restricted categories.
The reason this problem is so frustrating is that nothing looks wrong. The workflow ran. The message shows as sent. There is no error anywhere in the platform.
The carrier dropped it, and carriers do not tell you.
First, separate “sent” from “delivered”
These are different events and GoHighLevel reports both. Sent means the message left the platform for the carrier. Delivered means the handset acknowledged it.
If sent is high and delivered is low, stop looking at your workflow. The problem is downstream and no amount of editing the automation will change it.
Cause 1: A2P 10DLC registration
In the United States, application-to-person traffic sent from standard 10-digit long codes must be registered under the A2P 10DLC framework. Unregistered traffic is filtered aggressively and increasingly blocked outright.
Registration is not one switch. It involves a verified business profile, a registered brand, and a campaign whose declared use case has to match what you actually send. A campaign registered as “customer care” that sends promotional blasts is a mismatch, and mismatches get throttled.
The Twilio A2P 10DLC documentation explains how brand trust scores translate into daily throughput limits — worth reading even if you never touch Twilio directly, because the same registry sits behind most platforms.
Check the registration status in your sub-account first. In our experience this is the cause more often than the other four combined.
Cause 2: public link shorteners
Shared shortener domains carry the reputation of everything else sent through them, which includes a great deal of spam. Many carriers filter on that signal alone.
Use a branded link domain instead. GoHighLevel supports one, it takes a DNS record, and it removes an entire category of filtering.
Cause 3: the volume shape
A number that has sent 40 messages a week for a year and then sends 4,000 in an afternoon looks exactly like a compromised number. Ramp new numbers gradually and batch large sends rather than firing them in one burst.
This is the usual reason a database reactivation campaign under-delivers: the list is fine, the send pattern is not.
Cause 4: opt-out and complaint rate
Recipients marking messages as spam, or replying STOP at an elevated rate, degrade the reputation attached to your sending number. That reputation is not per-campaign — it follows the number.
The fix is upstream of the message: only send to contacts who genuinely opted in, and honour opt-outs immediately and permanently across every workflow, not just the one they replied to.
Cause 5: restricted content
Some categories face additional scrutiny or are prohibited outright on A2P traffic — lending, cannabis, gambling and certain health claims among them. If you operate in one of these, the registration path is different and the constraints are real.
The order worth checking
- Registration status and campaign use-case match — the largest single cause
- Link domain — trivial to fix, immediate effect
- Send pattern — batch and ramp
- Opt-out and complaint rate — look at the trend, not one campaign
- Content category — rare, but definitive when it applies
If registration is clean, links are branded, volume is smooth and complaints are low, and messages still are not landing, the problem is worth escalating to the carrier through your provider rather than continuing to edit the message.
There is a related failure that looks identical from the dashboard and is not a deliverability problem at all: workflows that fire twice, or fire after the contact already replied. That is covered in workflow exit conditions.
Services mentioned here
Get your business texting approved before it costs you leads
A2P 10DLC is the registration system US carriers require for application-to-person messaging over standard 10-digit numbers. It involves registering your brand and each messaging campaign. Without approved registration, messages to US numbers are heavily filtered or blocked outright, so it is mandatory rather than optional for US SMS.
Make sure the messages you automate actually arrive
Automated messages fail to deliver most often because the sending domain is not authenticated with SPF, DKIM and DMARC records, because a new sending domain or number was used at high volume without warm-up, because sender reputation has been damaged by complaints, or because required carrier registration was never completed.
Fix the thing that stopped working
GoHighLevel automations commonly stop working because a trigger condition changed, an integration disconnected or its credentials expired, a required field was renamed, messaging delivery was blocked by missing compliance registration, or another workflow is exiting contacts before the sequence completes.