Why Our Event Reminder Texts Got Carrier-Filtered, and the Trigger-Link Fix
A post-mortem: one first text with a raw link got filtered and locked every SMS workflow on the account. The four-part fix and the rules we run now.
Published Updated 7 min read
On this page
Key takeaways
- A first text from a number the recipient has never heard from, carrying a raw link, is the message most likely to be filtered, whatever the send volume.
- On HighLevel, a burst of failures can trip account-level limits. When that happens, outbound SMS fails until 00:00 UTC, so one bad send can break every reminder workflow on the account.[2]
- Our fix had four parts: drip sending, tagging the failures, a dedicated workflow number on the registered campaign, and trigger links on the brand's own domain.
- "Avoid links" is the wrong lesson. Carriers want links on your domain, not no links.[4][5]
- After the fix, delivery came back above 95% on the follow-up sends.
The text that broke everything was a welcome message to a live event's full registrant list. It went out in one blast, from a number those people had never received a text from, and it carried a link. Carriers filtered a large share of it. Then the failures stopped every other text on the account until the next day.
Volume wasn't the main problem. The link in a first text was. Here is what happened, why one message took down the rest, and the rules we run now.
What happened
The event was a free one-day live event with a large registrant list, built in HighLevel. The registration workflow sent a welcome text the moment someone registered. When the list was imported for a resend, that welcome text fired to everyone at once.
Three things were true of that message:
- It came from a number that had never texted these people.
- It contained a raw URL to a contact card file.
- It went out in one burst, with no pacing.
The message logs filled with carrier-filtering failures. We tested the theory directly: the same text without the URL delivered, and the version with it didn't. That ruled out volume as the main cause.
Why one text broke every text after it
This is the part most deliverability guides skip. A filtered message doesn't fail on its own. It counts against the account.
HighLevel watches each account's opt-out and error rates. Its help center describes a "good" opt-out rate as 0% to 1% and a "good" error rate as 0% to 6%. When an account crosses its limits, outbound SMS fails until 00:00 UTC and the restriction lifts within 24 hours.[2]
So the sequence went like this:
- The welcome blast was filtered at a high rate.
- The failures pushed the account past its error threshold.
- The account's outbound SMS was paused until the next reset.
- Every other workflow on the account, including reminders for the event itself, stopped sending.
The real cost wasn't the welcome text. It was the day of reminders that never went out.
It wasn't the volume. It was the link in a first text.
What carriers say about links
Carriers don't ban links. They ban links that hide who's sending them.
T-Mobile's Code of Conduct says public URL shorteners are "highly discouraged" and may be subject to blocking. It prohibits cycling through multiple domains to evade filters, and it warns that multi-layer redirects can bring immediate suspension.[4] It also says each messaging program should be associated with a single business's web domain.[4]
CTIA's guidance makes the same point from the other side: if you shorten links, use a shortener dedicated to your exclusive use, and make sure links identify the website owner.[5]
HighLevel's own guidance on error 30007 says to avoid public shorteners such as Bitly and TinyURL and to use branded domains.[7] Its help center also says AT&T fully blocks public link shorteners.[8] We couldn't find an AT&T notice that says so directly, so treat that as HighLevel's claim.
Twilio publishes a vendor figure in the same direction: across more than 63 million messages with shortened links, third-party shorteners were filtered at 1.96% against 0.07% for its own branded shortener.[10] It's undated marketing data with no published method, but it points the same way as the carrier rules.
Why are carriers this strict? Americans reported $470 million in losses to text-message scams in 2024, more than five times the 2020 figure.[16] An unknown number plus a link is exactly what a scam looks like.
What iPhones do with unknown senders
There's a second reason not to put a link in text number one. On an iPhone with Screen Unknown Senders turned on, messages from numbers that aren't in the person's contacts go to a separate list with no notification. Links in those messages stay unopenable until the person marks the sender as known.[9]
So on many phones, a link in the first text is both filter bait and dead on arrival.
The fix, step by step
Framework
The four-part SMS recovery
- Drip, don't blast. HighLevel's drip mode sends bulk actions in batches of 1 to 10,000 contacts, repeated every set number of minutes, hours or days, specifically to avoid carrier throttling.[3] We restarted with small batches spaced apart and widened them only when the logs stayed clean.
- Tag and export the failures. Pull the failed messages by workflow and date, read the error codes, and tag every failed contact. You need that list to resend to the right people and to stop texting the wrong ones.
- Move workflows to a dedicated, registered number. We duplicated the event workflows onto a new number used only for those workflows, added to the brand's registered A2P 10DLC campaign.
- Replace every URL with a trigger link on the brand's domain. Trigger links redirect through a branded domain, record the click on the contact and can fire workflow actions.[6]
A dedicated number is not number cycling
Be precise here. T-Mobile's Code of Conduct prohibits discarding numbers as they degrade and moving to fresh ones to dodge filtering. That can get the brand disabled.[4]
What we did is different: a number with a distinct job (event workflows), registered on the brand's existing campaign. It must be on the campaign. Twilio blocks US texts from 10DLC numbers that aren't on an approved campaign (error 30034).[11] A2P 10DLC exists so carriers can see that long-code traffic is verified and consensual.[12]
Trigger links on your own domain
HighLevel trigger links work in SMS, email and social DMs. Every click is logged on the contact's activity, and a click can start a workflow.[6]
One catch: HighLevel brands trigger links with one agency-level API domain shared across all sub-accounts.[6] Check whose domain your links actually show. If you run several brands, a link on another brand's domain breaks the "single business's web domain" rule.
We also tagged every trigger-link click and cross-referenced it with the registration tag. That turned the link into a live signal of who had read the reminder, which we used to time the next touch.
Wait out the reset
Don't resend into a restricted account. Add a wait step that clears the 00:00 UTC reset before the corrected workflow fires.[2] Sending early only adds failures.
What the remaining failures were
After the fix, delivery came back above 95% on the follow-up sends. The failures left over weren't filtering. They were list problems:
| Twilio error | What it means | What to do |
|---|---|---|
| 30006 | Landline or unreachable carrier. The number can't receive SMS.[13] | Look up line type before sending. Don't retry. |
| 30003 | Unreachable handset: off, no signal or can't receive SMS. Repeated failures can also indicate filtering.[14] | Retry once later. Watch for patterns. |
| 30005 | Unknown handset. The number may no longer exist.[15] | Remove from the list. |
The rest were international numbers in countries the sender wasn't set up for, and app-only numbers that can't take carrier SMS. Validation at opt-in catches most of these before they cost you anything.
Common mistakes
- Reading "avoid links" as the lesson. Event reminders need links: the venue, the stream, the calendar file. Put them on your domain and out of message one.
- Swapping numbers every time delivery dips. That's number cycling, and carriers treat it as evasion.[4]
- Resending into a locked account. Check the account's status before you retry.
- Fixing the template but not the list. Landlines and dead numbers keep failing no matter what the message says.
Frequently asked questions
Sources
- 1.Error 30007: Message filtered. Twilio Docs, living doc, checked 2026-10-04.
- 2.Best practices for SMS deliverability and avoiding SMS restrictions. HighLevel Help Center, 2026-09-04.
- 3.New drip mode architecture for bulk actions. HighLevel Help Center, 2025-10-14.
- 4.T-Mobile Code of Conduct, v2.2. T-Mobile, 2020-11.
- 5.Messaging Principles and Best Practices. CTIA, 2023-05.
- 6.Trigger links overview. HighLevel Help Center, 2025-07-22.
- 7.How to prevent SMS filtering by carriers (error 30007). HighLevel Help Center, 2026-07-23.
- 8.Shortened URLs and SMS deliverability. HighLevel Help Center, 2026-07-23.
- 9.Screen and filter texts on iPhone. Apple Support, iPhone User Guide, living doc, checked 2026-10-04.
- 10.SMS messaging (link shortening claim). Twilio, undated, checked 2026-10-04.
- 11.Error 30034: US A2P 10DLC, message from an unregistered number. Twilio Docs, living doc, checked 2026-10-04.
- 12.A2P 10DLC overview. Twilio Docs, 2026-07-07.
- 13.Error 30006: Landline or unreachable carrier. Twilio Docs, living doc, checked 2026-10-04.
- 14.Error 30003: Unreachable destination handset. Twilio Docs, living doc, checked 2026-10-04.
- 15.Error 30005: Unknown destination handset. Twilio Docs, living doc, checked 2026-10-04.
- 16.Top text scams of 2024. FTC Data Spotlight, 2025-04-14.

Written by
Oussama El AlamiCTO & Lead Developer
Oussama leads technical architecture and development at Victory, building in GoHighLevel, n8n and custom environments. He has built more than 10,000 automations across CRMs, payments and messaging.
Part of the guide: Deliverability and Compliance in 2026: Gmail, Yahoo and Microsoft Sender Rules, A2P 10DLC and the TCPA