A workflow in GoHighLevel doesn't wait for someone to click send. It watches for a form submission, a booked appointment, or a tag added to a contact, then fires a text on its own.
That's the mechanics behind GoHighLevel SMS automation: trigger, condition, action, repeat, running in the background whether or not anyone's logged in.
Most accounts get that part right and then get tripped up somewhere else, usually the registration a text needs before it can legally leave a US number, or a message volume that runs past what anyone budgeted for.
This walks through what to set up first, what a message actually costs, and the opt-out rule that finished rolling out this year.
What GoHighLevel SMS automation actually looks like
Every workflow runs the same way underneath: trigger, condition, wait, action. A trigger might be a form submitted, an appointment booked, a tag added, or a call missed.
Once the workflow fires, it walks the contact through whatever conditions you built, sometimes waiting hours or days between steps, then lands on a Send SMS action that fires off the message.
That's different from typing out a text and hitting send. Workflows are one-to-one and event-driven, so each contact who triggers one gets their own run through it, independent of everyone else in the pipeline.
A missed-call text goes out the moment the call ends, not at the next scheduled blast.
If the CRM side of your account isn't built out yet, a full GoHighLevel CRM setup for small business comes before the automation. A workflow can only act on data the CRM already holds.
Register your number before you automate anything
GoHighLevel won't reliably deliver a workflow text from a standard US 10-digit number until that number clears A2P 10DLC registration. Skip it and messages get filtered hard by carriers, sometimes blocked outright, long before a reader ever complains.
Registration runs in two stages. Brand registration comes first: your business name, an EIN (or a single-number path that skips it), and a live website that matches what you submit.
Campaign registration follows. This is where you describe what the texts are actually for, marketing, appointment reminders, or a mix, and hand over sample messages carriers can check against what you actually send.
HighLevel gives you two ways to document consent for that campaign. The chat widget option uses a pre-built opt-in box on your site.
Manual works too, covering everything else: a paper form, a QR code at the counter, a verbal yes logged in the CRM, as long as you can show how someone agreed to get texted. HighLevel's own A2P campaign registration guide walks through both paths field by field.
Once campaign registration clears, link the sending number to the campaign and watch for the "A2P Verified" label. Until that label shows up, don't trust the Send SMS action to do anything reliable.
Building the workflow: triggers and the Send SMS action
The Send SMS action drops into a workflow after whatever trigger and conditions you've built, and it fires the moment the workflow reaches it, not before.
Every message supports dynamic fields, so {{contact.first_name}} or {{appointment.start_time}} pulls straight from the contact record instead of getting retyped for every send.
You can't attach a file directly, but a link to a map, a ticket, or a document rides along fine in the message body, according to HighLevel's own documentation for the Send SMS action.
The same trigger-condition-action pattern extends past SMS into email, task creation, and pipeline moves, which is why SMS is usually the fastest piece of a broader AI and automation build to get running. It needs one trigger and one action to prove itself.
Triggers worth automating first
A handful of triggers cover most of what a small business actually needs:
- Form submitted, for an instant reply once a lead fills out a contact form
- Appointment booked, for a confirmation the second someone grabs a slot
- Missed call, for a text that goes out before the caller even reaches voicemail
- Tag added, for anything tied to a manual status change, like "quote sent"
Each pairs naturally with a wait step and a Send SMS action right after it.
Testing before you flip it live
A Test Phone Number field on the Send SMS action lets you preview exactly what a contact will receive, merge tags and all, before the workflow goes live.
Use it every time a message template changes. A broken merge tag reads as {{appointment.start_time}} in the raw text instead of an actual time, and that's not a text anyone wants to get from a business.
What it actually costs per message
GoHighLevel doesn't run its own SMS network. Every text and MMS moves through a third-party carrier behind the scenes, billed per segment rather than as a flat monthly allowance.
A standard SMS segment runs about $0.0075 in the US, capped at 160 characters before the system splits a longer message into a second billed segment. MMS costs more and buys more room.
| Message type | Typical US rate | What it buys |
|---|---|---|
| SMS segment | ~$0.0075 | Up to 160 characters; longer texts split into multiple billed segments |
| MMS | ~$0.02–$0.03 | Up to 1,600 characters, plus an image |
| Canada SMS | ~$0.015 | Same 160-character segment |
| UK SMS | ~$0.04–$0.05 | Same 160-character segment |
None of that shows up as a flat fee. A workflow sending three reminder texts to a thousand contacts a month adds up differently than a single monthly newsletter blast, so it's worth checking your own segment volume against a plan's advertised price rather than assuming the plan covers it.
Opt-in, opt-out, and the rule that finished phasing in this year

Photo by Opt Lasers from Poland on Pexels
None of the triggers above matter if the contact never agreed to get texted in the first place. That's exactly why carriers check for a documented opt-in method, the chat widget or the manual record described above, before they approve a campaign to send from.
The opt-out side changed more recently than the opt-in side. Since April 11, 2025, a business has to accept a revocation through any reasonable channel, not just a reply of "STOP" to the exact number that sent the text.
The FCC named standardized keywords, stop, quit, revoke, opt out, cancel, unsubscribe, end, that must be honored automatically. It also gave businesses ten business days to process a revocation once it arrives through any channel: a voicemail, an email, a form, a conversation.
A single clarifying text is allowed within five minutes if it's genuinely unclear what the contact wants to stop, as the rule's April 2025 summary from BCLP lays out.
One piece of that rule was delayed a full year. Opting out of one message type used to only have to cover that campaign. The FCC's original rule extends a revocation to every future call or text from that business, informational included, unless the contact says otherwise.
Financial and healthcare senders asked for more time to separate their message types before that took effect, and the FCC pushed that specific piece to April 11, 2026. That date has already passed.
A GoHighLevel workflow now needs to treat a revocation on any message type as covering all of them going forward, not just the campaign that triggered it.
Building that into a workflow means routing an opt-out tag to remove the contact from every active sequence, not just the one they replied to.
Bulk SMS or a workflow, and when to use which
Bulk SMS and workflow SMS solve different problems, and mixing them up is how a one-off announcement lands on a list that should have gone through an automated sequence instead.
Bulk SMS sends one message to a list you pick right now: an event reminder, a flash promotion, a single push you don't want repeated.
You choose between sending immediately, scheduling it, or spacing it out through drip mode so a few thousand contacts don't all hit the carrier network at once.
Workflow SMS runs continuously in the background instead, one contact at a time, firing only when that contact's own trigger condition is met. That's what suits it to reminders and follow-ups that shouldn't depend on someone remembering to hit send.
Agencies managing SMS across several clients tend to lean harder on workflows than a single business does, since a client's automation needs to keep running whether or not anyone at the agency is watching that day.
How agencies typically bill for that ongoing work is its own comparison worth reading if GoHighLevel is one of several platforms on the table.
Frequently asked questions
Does GoHighLevel bill for texting directly?
No. Messages route through a third-party carrier behind the scenes, and the per-segment rate is what shows up on the bill rather than a flat texting fee.
What happens if I skip A2P 10DLC registration?
Messages from a standard US 10-digit number get filtered heavily by carriers, and delivery can fail outright. Registration isn't optional for reliable sending.
Can I preview a message before the workflow goes live?
Yes. The Send SMS action includes a Test Phone Number field that shows exactly what a contact would receive, merge tags included, before you turn the workflow on for real contacts.
If a contact opts out of marketing texts, can I still send appointment reminders?
It depends on which message type they opted out of. Opting out after a marketing text lets a business continue sending informational messages, but opting out after an informational message now requires stopping all communications to that contact, marketing included.
Cover photo by Matheus Bertelli on Pexels
Sources
- A2P Campaign Registration Guide — HighLevel Support
- Workflow Action: Send SMS — HighLevel Support





























