Why the checkbox has to be separate and unchecked
Consent to receive text messages has to be an affirmative action by the person signing up. A box that is already ticked is not an action, and a single "I agree to the terms" box that silently includes SMS marketing is not specific. Both are treated as no consent by the courts that hear TCPA cases, by the CTIA guidelines carriers enforce, and by the reviewers who vet A2P 10DLC campaigns. A pre-checked or bundled box is one of the most common reasons a campaign is rejected, and it is also the easiest to fix.
The generated form keeps SMS consent on its own checkbox, below the phone field, with the full disclosure as the label. The input has no checked attribute and no required attribute, so the form submits whether or not the box is ticked. Your form handler should record the checkbox value and only add the number to your texting list when it is "yes".
One checkbox or two?
If you send only transactional messages (appointment reminders, order updates, account alerts, verification codes), one checkbox is enough. If you send marketing messages as well, use two. US law sets a higher bar for marketing consent, and a customer who wants appointment reminders should be able to get them without agreeing to promotions. Two boxes make that choice explicit and give you two separate consent records.
In two-checkbox mode the builder automatically moves "Marketing and promotions" into the second box and adds the sentence that consent is not a condition of purchase. In one-checkbox mode that sentence is added whenever marketing is among the ticked types.
What to do with the submission
- Save the phone number, the timestamp, the page URL, the IP address if your handler has it, and the disclosure text that was displayed. Platforms and carriers can ask for this when a complaint is filed.
- Send the keyword confirmation reply right away. The opt-in language generator writes one that fits in a single segment.
- If the person did not tick the box, do not text them. A submitted phone number is not consent.
- Keep the form on a public page so campaign reviewers can see it, or take a screenshot and host it at a public URL for gated flows.
Do and do not
| Do | Do not |
|---|---|
| Keep SMS consent on its own checkbox | Pre-check the consent box |
| Show the full disclosure next to the box | Hide it in a tooltip, modal or footer |
| Let the form submit without the marketing box ticked | Bundle consent into the terms checkbox |
| Link to a privacy policy and SMS terms on the same domain | Make SMS consent required to book, buy or get a quote |
| Collect the number and the consent on the same page | Collect the number on one page and consent on another |
Styling and embedding the form
The CSS uses system fonts, a 480px maximum width and your accent colour for the focus ring, the checkbox and the button. Everything is scoped to the .sms-form, .sms-field, .sms-consent and .sms-submit classes, so you can paste it into any page or a CMS "custom HTML" block without side effects. If your site already has form styles, keep the HTML and drop the CSS.
Form builders such as HubSpot, Typeform, Jotform or Gravity Forms can reproduce the same structure: add a single checkbox field, paste the disclosure as its label, leave it unchecked and optional, and add the links. The point is the structure, not the markup. Before you submit a campaign, run through the website compliance checker to catch anything the reviewers will look at beyond the form.