The GoHighLevel practice of Yotomations LLCAI development, custom software and websites at yotomations.com
New to GHL? Start here

GoHighLevel SMS opt-in checkbox: what your form needs so your texts are consented

Owners keep asking what an SMS opt-in checkbox has to look like. Here is the form wording, the data to save on the contact, and the workflow gate that ties it together.

Man holding smartphone standing in front of calm body of water
By Yaakov (Koby) Oranski, Certified GoHighLevel Admin and Partner | | 6 min read

Short answer: Put an SMS consent checkbox next to the phone field that is unchecked by default, with disclosure text that names your business, the kind of messages, how often, message and data rates, and how to reply STOP or HELP. Save the result on the contact as a tag, a date and the form name. Then make every text workflow check that tag before it sends. This is practical guidance, not legal advice.

SMS consent from form to textSMS CONSENT FROM FORM TO TEXTLead formUnchecked SMS box plusdisclosure textGoHighLevel contactConsent tag, date and formname savedWorkflow gateIf consent tag exists, goto the text pathText sequenceOnly contacts who tickedthe boxNo consent pathEmail or call task, no textsubmittedworkflow triggertag foundno tagThe gate sits in the workflow, not on the form: a contact with no consent tag never reaches a Send SMS step.

A post in r/gohighlevel this week said the SMS rules are hard to get a grip on, and that is a fair reaction. HighLevel's policies, carrier reviewers and the TCPA all point at the same few habits, so it helps to turn them into a checklist you can build once.

What the checkbox and the text next to it must do

The point of the checkbox is to show that a specific person took a specific action to agree to get texts from your business. That is why it starts empty. If it is pre-checked, nobody agreed to anything, and you would have a hard time proving otherwise.

The text beside it matters as much as the box. A disclosure that works in practice looks like this: "By checking this box, I agree to receive text messages from [Your Business Name] about my request, including appointment reminders and offers. Message frequency varies. Message and data rates may apply. Reply STOP to cancel or HELP for help. Consent is not a condition of purchase. See our Terms and Privacy Policy." Swap in what you really send. If you only send reminders, do not mention offers.

Three details cause most trouble:

  • Name the sender. A generic "we may text you" does not tell the person who is texting. If one form feeds several brands, each brand needs its own wording.
  • Link real pages. The terms and privacy links should open pages that actually mention text messaging. Carrier reviewers for A2P campaigns typically look at those pages, so a privacy policy with no SMS language is a common reason for a rejected registration. Our A2P 10DLC approval guide covers the registration side.
  • Do not force it. If the form is how someone asks for a quote, it should submit with the box empty. Marketing consent generally cannot be made a condition of buying.

How to set it up in a GoHighLevel form

Add a checkbox field to the form, and write the disclosure as the field label or as a text element directly above or beside it. Keep it near the phone field and the submit button so it is not buried. Map the checkbox to a contact custom field, for example "SMS consent", so the answer lands on the contact record and not just in the form submission log.

Then build a small workflow with the Form Submitted trigger. Add a condition: if the SMS consent field is filled, add the tag sms-consent-web, and write today's date into a custom field called "SMS consent date". Also save the form name or page URL in a third field. Now every contact carries its own evidence: who, when and where.

Keep a dated screenshot of the form with the disclosure live on it. When you change the wording, save a new screenshot. If someone disputes consent a year from now, you want to show the exact text they saw, not today's text.

Make your workflows check consent before sending

A checkbox that no workflow reads is decoration. In every workflow that sends texts, put an If/Else before the first Send SMS action. The condition is simple: contact has tag sms-consent-web. The yes branch goes to the text sequence. The no branch goes to an email, a task for someone to call, or nothing at all.

Do the same for any workflow triggered by tags, pipeline stage changes or missed calls. Those paths skip the form entirely, so they are where unconsented texts usually slip out. We cover how that plays out for missed calls in does missed call text back need consent.

STOP replies are a separate mechanism. When a contact texts STOP, GoHighLevel marks them as do not disturb for SMS, and your workflows should never try to override that. Do not build a step that removes the DND flag. If a customer later opts in again on a new form, handle that as a deliberate, reviewed change, not an automation.

Not every phone number arrives through your website. The table shows the common sources and what to keep for each.

Where the number came fromWhat to storeWatch out for
Web form with checkboxTag, consent date, form name, screenshot of wordingPre-checked boxes, wording that does not name the business
Customer texts you firstThe conversation itself, with dateReplying about their request is different from adding them to promotions
Paper form or in personSigned copy or a note of who collected it and whenStaff typing numbers in with no record of agreement
Imported list or old CRMWhatever proof came with the listLists with no consent record should not go into a text campaign

That last row is where old-lead campaigns get risky. Before you text a dormant database, sort out which contacts you can prove consent for and which you should reach by email first with a clear opt-in. Our write-up on database reactivation in GoHighLevel shows how we split those lists.

Who sets the rules, and what this article is not

Three groups matter. The FCC and the FTC enforce federal rules on telemarketing and text messaging, including the TCPA. The carriers, through the registration process behind A2P 10DLC, decide whether your campaign gets approved and keeps delivering. Some states add their own rules on top, so a business texting customers in several states should ask a lawyer about the strictest one. Everything here is practical guidance on how to build the form and workflows, and it is not legal advice.

If texts are already failing in your account, consent is only one of several causes. Our nine causes for GoHighLevel texts not sending lists the rest in checking order.

What we would do first

We would open every form and survey in the account and check three things: the box is unchecked, the disclosure names the right business, and the submission writes a tag and date to the contact. Then we would find every workflow that sends a text and add the consent gate where one is missing. This is routine work inside our GoHighLevel automation service, and for an inherited account with dozens of forms it is the first thing the GoHighLevel account audit checks, starting at $497.

Yaakov (Koby) Oranski

Yaakov (Koby) Oranski, Founder and CEO of Yotomations

Certified GoHighLevel Admin and Partner. Koby designs CRM migrations, two-way integrations, billing systems and AI agents for service businesses, and writes from the engagements described on this site.

Published

Frequently asked

Does the SMS checkbox have to be unchecked in GoHighLevel?

Yes, treat it that way. A pre-checked box means the person did nothing, so you have no clear sign they agreed. Leave it empty and let the customer tick it.

Can I make the SMS consent checkbox required on the form?

Not for marketing texts if the form is how people request a quote or book something. Consent to marketing messages generally cannot be a condition of buying, so the form should still submit when the box is empty. You then simply do not text that contact beyond what they asked for. This is practical guidance, not legal advice.

Do I need a checkbox for appointment reminders?

The rules for informational messages are lighter than for marketing, but the safest setup is one checkbox that clearly covers reminders and any promotions you plan to send. If you only send reminders, say so in the disclosure and keep promotions out of that workflow.

What proof of SMS consent should I keep?

Keep the date and time of the submission, the phone number, the form or page it came from, and a screenshot or saved copy of the form with the exact disclosure text that was live that day. In GoHighLevel you can store the first three on the contact with a tag and custom fields.

Keep reading

Is this happening in your account?

Book a 30-minute call. We look at the account live and tell you what is broken, what we would fix first and what it would cost.

No pitch deck. We look at your current setup and tell you what we would do and what it would cost.

Need more than GoHighLevel? Yotomations, our parent company, also builds AI agents, custom software and websites.