field note — July 6, 2026 · 6 min read

GoHighLevel A2P compliance: the checklist I use on every client build

GoHighLevel · A2P 10DLC · SMS compliance · CRM · client delivery

Carrier violations are the fastest way to torch a client relationship. On a recent full GoHighLevel sub-account build for a trading-education client — where compliance stakes are higher than usual — I standardized a checklist that has since become my default for every GHL delivery.

1. No SMS step exists until A2P is confirmed

The A2P number, opt-in language, privacy policy, and terms all live as custom values, staged before any workflow references them. Every SMS action sits behind the registration gate. If A2P approval is pending, the workflows literally cannot send — there is nothing to misfire.

2. Disclaimers are merge tags, never hardcoded

Risk disclaimers (email and SMS variants) exist once, as custom values, and get inserted into every message that references performance. One source of truth means one place to update when legal language changes — and zero chances of a stale disclaimer hiding in message node 47.

3. DND is a system, not a checkbox

  • Phone validation runs at intake, before anything else.
  • Hard red flags get dual DND — inbound AND outbound directions.
  • Channel-specific DND disable, so an email opt-out never silently kills SMS consent tracking (or vice versa).
  • Compliance exclusion tags: carrier-violation, sms-incapable, landline, do-not-contact — checked by every sending workflow.

4. Draft-first deployment

All 11 workflows in that build shipped in Draft and were published only after testing against a battle-tested reference account. The comparison surfaced 7 structural fixes — including missing Remove-from-Workflow steps and a 5-minutes-before reminder cadence. The boring diff against a known-good build is worth more than any amount of cleverness.

In client CRM work, the details are the deliverable.
from the system this note is based onTrading Mentorship CRM — full case study →

next note

Stopping LLM hallucinations in n8n workflow generation with RAG