A2P Chat Widget Verification

SOP for GoHighLevel’s Pre-Built / Quick Setup (widget-first) 10DLC flow — intake fields, install steps, privacy clause, sample messages, and rejection fixes.

SOP: A2P 10DLC Verification — Chat Widget Method (GHL)

Purpose: Get a client phone number A2P/10DLC approved in GoHighLevel using HighLevel’s Pre-Built / Quick Setup (Chat Widget–first) campaign flow.
Audience: Agency owners, VAs, onboarding staff
Related methods (classroom): Funnel Method snapshot, A2P Wizard — use those when widget-first is not a fit (see §12).
Sources: GHL Pre-Built A2P Campaign (Widget-First) docs (May 2026), coaching-call A2P / onboarding practices, carrier-aligned consent language.


1. What this method is

Carriers require proof that people opt in before you text them. In the widget-first flow:

  1. HighLevel auto-builds a compliant LeadConnector Chat Widget (locked disclosure language, STOP/HELP, rates, frequency).
  2. You install that widget on the business website URL used for brand registration.
  3. You declare Chat Widget as the only SMS opt-in method on that site.
  4. HighLevel’s compliance review checks the live site for the widget before you can submit.

You are not writing opt-in copy yourself. You are responsible for correct business identity data, a clean website (no competing SMS consent), and Privacy Policy / Terms that meet the SMS clause.

When to use Chat Widget method

Use when…Avoid when…
Client has (or you control) a public website / funnel URLYou need Mixed use-case or Sole Prop brand (widget Quick Setup is not available)
You’re okay with SMS consent living only in the chat widgetYou need SMS consent on contact forms, booking forms, or pop-ups
You want GHL to auto-generate disclosures & sample structureYou’re registering a campaign that must use form / keyword / verbal opt-in

Not available for: Mixed use-case campaigns · Sole Proprietor campaigns.


2. Critical rule (read first)

If Chat Widget is your A2P opt-in method, it must be the ONLY SMS opt-in method on the website.

Before you submit:

  1. Remove SMS consent checkboxes / “I agree to receive texts…” language from all other forms (contact, lead magnets, booking, pop-ups, footers).
  2. Leave Privacy Policy and Terms links on the site (required) — those are not SMS opt-in checkboxes.
  3. Confirm the LeadConnector widget script is live on the brand website URL.

Having form checkboxes and Chat Widget as the declared method is a common rejection reason.


3. End-to-end process (checklist)

□ Collect client business info (intake form below)
□ Create / open GHL sub-account for that client
□ Buy / assign local (or toll-free) number in that sub-account
□ Brand registration (Trust Center) — legal name, EIN, address, website
□ Wait for Brand Approved (if auto-submit is off, proceed to campaign after brand clears)
□ Start Campaign → choose Quick Setup / Pre-Built (Chat Widget)
□ Choose message type: Marketing OR Transactional (not mixed in this flow)
□ Generate / attach compliance widget; copy embed code
□ Install widget on website URL from brand registration
□ Strip SMS consent from every other form on that site
□ Confirm Privacy Policy + Terms live + SMS non-sharing clause
□ Run Compliance Review until Chat Widget check = Pass
□ Confirm website checklist boxes → Submit Application
□ Wait 24–72 hours (often); fix & resubmit if rejected (usually no re-charge if checklist was green)
□ After Approved: warm number gently; only then turn on rebilling / high-volume SMS

Typical coaching guidance: A2P often clears in ~2–4 days; don’t over-explain to the client — “carriers require registration to send texts for your business.”


4. Client intake — business info you must collect

Brand registration fails when EIN / legal name / address don’t match public records (OpenCorporates, SOS filings, IRS letter). Collect this once, early (card + wallet first on sales calls; EIN when you’re ready to register — per call training).

4.1 Required fields

FieldNotesExample
Legal business nameExact LLC / Inc / Corp name on EIN — not the DBA aloneJoe Schmo LLC
DBA / trade name (if any)For messaging display / website logo only; brand fields should match legal name per stricter GHL checksABC Plumbing
EIN / Tax ID9 digits; match IRS CP 575 or SS-412-3456789
Entity typeLLC, Corp, Partnership, etc.LLC
Business addressPhysical / registered address that matches filings123 Main St, Austin, TX 78701
Business phoneMain line(512) 555-0100
Business emailPrefer domain emailinfo@abcplumbing.com
Website URLPublic URL you will put the widget on (client site or subdomain / funnel you control)https://abcplumbing.youragency.com
Industry / verticalMust match site + use caseHome services – plumbing
Authorized contact namePerson submitting / authorizedJane Owner
Authorized contact titleOwner
Authorized contact mobile(512) 555-0199

4.2 Optional but useful

4.3 Copy-paste client intake form (send in email / Form / Notion)

A2P / TextING SETUP — BUSINESS INFO

1. Legal business name (exactly as on your EIN / LLC papers):
   _______________________________________________

2. DBA / “doing business as” name (if different):
   _______________________________________________

3. EIN / Federal Tax ID (XX-XXXXXXX):
   _______________________________________________

4. Entity type (LLC / Inc / Sole prop / Partnership / Other):
   _______________________________________________

5. Business street address (no P.O. Box if possible):
   _______________________________________________
   City: ______________ State: ____ ZIP: ________

6. Business phone: _______________________________

7. Business email: _______________________________

8. Website URL (live public site we’ll use for registration):
   _______________________________________________

9. Do you already have Privacy Policy + Terms pages on that site?
   [ ] Yes  [ ] No — we’ll add them

10. Primary use of SMS (pick one for this campaign):
    [ ] Customer care / appointments / service notifications (transactional)
    [ ] Promotions / offers / marketing
    (Note: Chat Widget Quick Setup does not support Mixed or Sole Prop.)

11. Authorized contact name + title:
    _______________________________________________

12. Best mobile for us to reach you:
    _______________________________________________

13. Attach (if available): EIN confirmation letter or SOS filing screenshot.

4.4 Sales-call script (keep short)

“Because we’re sending texts on behalf of your business, carriers require A2P registration. I just need your EIN and legal LLC name — same info you’d use for taxes. Takes a couple days, then we can send.”

Do not over-explain TCR / Twilio / HighLevel. Do not lead with “$11–$25 campaign fee” on the sales call unless asked.


5. Brand registration (Trust Center)

Path (verify in UI): Sub-account → Settings → Phone Numbers → Trust Center (or Phone System → A2P).

5.1 Brand field tips (from coaching + common fails)

5.2 Website strategy (agency reality)

Clients often won’t add pages to their own site. Coaching options that still work:

  1. Client’s real domain (best when you have access) — install widget + Privacy/Terms.
  2. Your subdomain (e.g. clientname.youragency.com) with Privacy/Terms + widget — submit that URL as the brand website (funnel / snapshot pattern).
  3. A2P Wizard / Funnel Method snapshot if widget-first isn’t the path (see §12).

Whatever URL you submit for the brand is what compliance AI will scrape for the widget.


6. Campaign — Quick Setup (Chat Widget)

6.1 Start the flow

  1. After brand is in progress / approved, start Campaign Registration.
  2. Select Quick Setup / Pre-Built campaign (Chat Widget) — not the fully manual path.
  3. Read the in-app warning: remove other SMS consent methods.

6.2 Message type → use case (widget flow behavior)

You selectSystem behavior
Marketing / PromotionalMarketing use case; marketing consent checkbox required in widget before send
Transactional / Non-marketingSystem assigns Customer Care (use-case picker may be locked)

Default guidance in widget-first UI leans Customer Care / Account Notification for transactional — good fit for review requests, appointment reminders, missed-call text-back style messaging.

Do not pick Marketing if you only send appointment / review / service texts.

6.3 What HighLevel auto-generates (locked)

You generally cannot edit:

Required locked fields: Phone number · Disclosure · STOP/HELP · Rates · Frequency

Optional editable: Name field · Message field · Colors / header styling

Removed from this flow: Email field · Custom compliance fields · Manual opt-in method picker

Age-gated: If you mark age-gated content, a mandatory DOB field appears and cannot be removed.

Widget includes a dedicated marketing consent checkbox. User must check it before continuing — don’t try to bypass.


7. Install the Chat Widget

  1. In the flow, open Chat Widget / continue → copy install script.
  2. Paste into the site’s <head> or before </body> on pages where the widget should appear (homepage at minimum; ideally site-wide).
  3. Publish / clear cache.
  4. Open the brand website URL in an incognito window — confirm the chat bubble loads.
  5. Return to Trust Center → Review Application / Compliance ReviewReview Again until Chat Widget check passes.

7.1 If compliance review fails (“widget not detected”)

  1. Re-copy script from GHL (correct location / sub-account).
  2. Confirm you’re on the exact URL used in brand registration (www vs non-www, http vs https).
  3. Install site-wide, not only a draft page.
  4. Disable blockers / wait a few minutes for CDN cache.
  5. Re-run Review Again — you cannot submit until it passes.

7.2 Strip competing SMS opt-ins

On that same website, remove from every form/flow:

Keep normal contact forms (name/email/phone) without SMS marketing consent language if Chat Widget is the A2P method.


8. Privacy Policy & Terms (required even with widget)

LeadConnector widget TOS does not replace the customer website policies. The site must have:

8.1 Required Privacy Policy clause (paste verbatim)

No mobile information will be shared with third parties/affiliates for
marketing/promotional purposes. Information sharing to subcontractors in
support services, such as customer service, is permitted. All other use case
categories exclude text messaging originator opt-in data and consent; this
information will not be shared with any third parties.

8.2 Minimal Privacy Policy skeleton (add to client or funnel site)

# Privacy Policy — [LEGAL BUSINESS NAME]

Last updated: [DATE]

[LEGAL BUSINESS NAME] (“we”, “us”) operates [WEBSITE URL].

## Information we collect
We may collect name, phone number, email, and message content when you
contact us through our website (including our chat widget) or otherwise
provide information to us.

## How we use information
We use this information to respond to inquiries, provide services, and
(if you opt in) send SMS related to [customer care / appointments / offers].

## SMS / mobile information
No mobile information will be shared with third parties/affiliates for
marketing/promotional purposes. Information sharing to subcontractors in
support services, such as customer service, is permitted. All other use case
categories exclude text messaging originator opt-in data and consent; this
information will not be shared with any third parties.

## Opt-out
You may reply STOP to cancel SMS. Reply HELP for help. Message and data
rates may apply. Message frequency varies.

## Contact
[BUSINESS EMAIL] · [BUSINESS PHONE]

8.3 Minimal Terms skeleton

# Terms of Service — [LEGAL BUSINESS NAME]

By using [WEBSITE URL] and communicating with us (including via chat),
you agree to these Terms and our Privacy Policy.

Services are provided as described on our website. You agree to provide
accurate contact information.

SMS: If you provide a mobile number through our chat widget and consent
to messaging, you agree to receive texts as described in the widget
disclosure. Reply STOP to opt out; HELP for help. Message and data rates
may apply.

Contact: [BUSINESS EMAIL]

Link both in the site footer. Links must open without login.


9. Example campaign narrative & sample messages

Even when Quick Setup auto-fills a lot, align your mental model (and any editable description fields) with what you actually send.

9.1 Example use-case description (transactional / customer care)

This campaign sends customer care and service-related SMS from Joe Schmo LLC
(doing business as ABC Plumbing) to customers and website visitors who
voluntarily provide their mobile number and consent via the LeadConnector
chat widget on https://abcplumbing.example.com. Messages include appointment
reminders, scheduling confirmations, review requests, and responses to
customer inquiries. Every message identifies the business and includes
opt-out instructions. Message frequency varies based on customer activity
and scheduled appointments.

Write it specific to the client — don’t paste generic templates verbatim if the UI warns against that.

9.2 Sample message snippets (include name, business, STOP)

Transactional / customer care

Hi {{contact.first_name}}, this is Sam from ABC Plumbing. Your appointment
is confirmed for Thursday at 2:00 PM. Reply STOP to unsubscribe or HELP
for help.
Hi {{contact.first_name}}, ABC Plumbing here — thanks for chatting with us.
We’ll text you when we’re on the way. Reply STOP to opt out.

Marketing (only if Marketing campaign)

Hi {{contact.first_name}}, ABC Plumbing here — spring drain cleaning special
ends Friday. Reply YES for details or STOP to opt out. Msg & data rates may apply.

Required elements carriers expect in samples: contact name (or placeholder), business/staff identity, business name, Reply STOP…


10. Final submission confirmations

Before Submit Application, confirm in the checklist:

Then submit. Review is often 24–48 hours; sometimes longer depending on reviewer.

After approval


11. Rejections & troubleshooting

SymptomLikely causeFix
Brand failedEIN / legal name / address mismatchFix identity to match SOS / EIN letter; resubmit brand
Campaign failed — opt-in / websiteCompeting form consent or widget missingRemove form SMS checkboxes; reinstall widget; Review Again
Campaign failed — privacy policyMissing SMS non-sharing clause or broken linkPaste §8.1 clause; fix footer links; resubmit
Compliance Review red before submitWidget not detected on brand URLFix URL match + install; don’t submit until green
GHL “A2P specialist” says site needs FAQ / testimonialsSupport script ≠ carrier realityPrefer fixing the stated fail reason; coaching: funnel/widget setups still get approved without bloated sites
Same reviewer keeps failing youNitpick on one detailChange the specific item they cited (privacy wording, opt-in screenshot, etc.) and resubmit
Mixed / Sole Prop rejected beforeCan’t use widget Quick Setup for thoseDelete old campaign if required by GHL rules; submit new campaign on correct flow

Fees (coaching / GHL norms): Resubmits often not re-charged if you don’t force-submit with a red checklist. Deleting and recreating a campaign can trigger a new fee — prefer edit + resubmit.


12. When to use a different method

MethodBest forNotes from coaching
Chat Widget Quick SetupStandard brand + single use case; you control site; want locked complianceOfficial GHL pre-built flow
Funnel Method (classroom snapshot)Client won’t touch their site; you need Privacy/Terms/form package fastSubdomain + snapshot; still widely used in group
A2P WizardFast generated compliance site when stuckVariable approval rates; fallback / parallel option
Manual Trust CenterOdd use cases, paper/verbal/QR opt-inMore writing; more rejection surface

If widget-first keeps failing for website reasons after fixes, pivot to Funnel Method / Wizard with a clean dedicated URL — don’t fight the same reviewer for weeks.


13. VA / onboarding mini-runbook

  1. Client fills §4.3 intake.
  2. Create sub-account named with legal business name.
  3. Purchase number (local preferred; 800 for trials / reuse patterns per coaching).
  4. Register brand with intake data + chosen public URL.
  5. Run Quick Setup → Chat Widget → install script on that URL.
  6. Add Privacy/Terms pages with §8.1 clause if missing.
  7. Remove SMS consent from all other forms.
  8. Pass Compliance Review → submit.
  9. Log approval date in CRM; notify closer/CS that texts can go live.
  10. Only then enable rebilling / production workflows.

14. Quick reference — disclosure language (what the widget shows)

Exact locked text is generated by HighLevel. Conceptually it will always cover:

For marketing campaigns, an explicit marketing consent checkbox is also required in the widget.


15. Document control

VersionDateNotes
1.02026-07-17Initial SOP: GHL widget-first flow + agency intake / coaching practices

Disclaimer: Carrier and HighLevel requirements change. Before submit, confirm against the live GHL Trust Center / help article Pre-Built A2P Campaign (Widget-First) Registration Flow. This SOP is operational guidance, not legal advice.