GHL 101: The Button-to-Button Manual
Every GoHighLevel procedure as an exact click-path — from first login to a live AI-staffed automation. Compiled from a year of production builds and cross-referenced against 29 official sources. If a step matters, the exact buttons are here. No paywall, no gate, no upsell.
/ to filter the sidebar. Print-friendly: Ctrl/Cmd+P produces a clean PDF.
- Log in at
app.gohighlevel.com(agency owners). Clients use their sub-account link or the LeadConnector app. Enable 2FA immediately on all admin logins. - Create a sub-account: Agency View → Accounts → + Add Account → choose template or Start From Scratch → fill Business Name, Contact Info, Time Zone (wrong timezone = every scheduled send fires at the wrong hour), Currency → Save. Never build in the Agency account directly.
- Connect your domain: Settings → Domains → Add New Domain. GHL can also register a domain natively (2025) — no need to leave the platform.
- Set up email: Settings → Email Services → LC Email for quick start, or Mailgun for deliverability control. Verify SPF, DKIM, and DMARC before any send.
- Set up phone: Settings → Phone Numbers → LC Phone (fastest, recommended) or Twilio if you need direct number ownership. Enable STOP keyword handling here too.
- Build a calendar: Settings → Calendars → + New Calendar → pick type (User / Round-Robin / Unassigned — see M6) → set availability and buffer times.
- Create a pipeline: Opportunities → Pipelines → + Create Pipeline → stages that describe events, not hopes: New Lead → Contacted → Booked → Showed → Won/Lost.
- Build a form: Sites → Forms → + Add Form → 2 visible fields max above the fold + hidden UTM fields (M7) + consent checkbox (not pre-ticked).
- Build the workflow: Automation → Workflows → + Create Workflow → Trigger: Form Submitted → Actions: Add Tag
src:website→ Send SMS (instant) → Send Email → Create Opportunity → Internal Notification. Name it properly:WF Lead Capture v1. - Set reentry: in workflow settings, choose Once every X days for nurture flows so a re-submitting contact doesn't get double-enrolled.
- Test with a dummy contact: submit the form yourself → watch it execute in Workflow → History tab → confirm tag, SMS, email, opportunity, and notification all fired. Use 1–3 min delays during testing only.
- Go live: extend delays to production values → Publish → submit one more real test → check History again. You now have a working system. Everything after this page is depth.
Two AI plans — read the coverage fine print
Unlimited ($97/sub-account/mo) covers inbound Voice AI, Conversation AI, Reviews AI, Content AI, and Ask AI. Growth ($50/mo) adds outbound Voice AI + widget with 100 min included. Funnel AI and Workflow AI Builder are now free with daily limits. Full breakdown in M16.
Sub-500ms AI phone agents
Voice AI answers, qualifies, and books with near-zero lag. Agent Studio adds intent-based routing — but it's token-billed and not covered by the unlimited add-on. M16 has the trap explained.
First-class channels
WhatsApp now lives in Conversations, Workflows, and Campaigns natively (Meta verification required). RCS adds buttons and carousels on Android. Setup paths in M12.
New surface area everywhere
Custom Objects, Service & Rental calendars, External Form Tracking, QR triggers, native domain purchase, Mac desktop app, social scheduling incl. Bluesky, Email AI import, Contact AI Summary. M17 covers all nine.
GoHighLevel (GHL — officially "GoHighLevel" or "HighLevel"; same platform) is an all-in-one CRM, marketing automation, and sales platform built for agencies and service businesses. It replaces 5–10 separate tools — funnels, email, SMS, calendar, pipelines, reporting — with one account.
Use Cases by Industry
| Industry | Common GHL Uses |
|---|---|
| Real Estate | Lead capture, drip campaigns, appointment booking, agent assignment |
| Clinics / MedSpa | Consultation forms, reminders, post-visit nurture, review requests |
| Agencies | Client onboarding, white-label CRM, SaaS reselling, reporting dashboards |
| Coaching / Education | Course signups, nurture emails, appointment automation, community |
| Home Services | Estimates, reviews, pipeline tracking, follow-ups, quote automation |
| Local Biz (salons, gyms) | Booking + reminders, reactivation campaigns, loyalty flows |
Team Roles & Module Map
Assign this manual by role. Each role's priority modules:
| Role | Responsibilities | Priority Modules |
|---|---|---|
| Admin / Tech | Setup, automation, workflows, troubleshooting, API | M2–M3, M9–M10, M15–M16, M18 |
| Marketer | Campaigns, funnels, lead tracking, UTMs, reporting | M7–M8, M11, M14 |
| Sales / CS Rep | Contact follow-up, pipeline updates, booking | M4–M6, M11 |
| Virtual Assistant | Admin tasks, appointment monitoring, inbox management | M4, M6, M11, M18 |
| Client / Owner | Approvals and reports — limited access | M1, M5, M13–M14 |
Common Automation Wins (what to build first)
Auto-response to new leads within seconds (SMS + email), drip nurture over days, booking reminders, lost-lead reactivation, post-service review requests, auto-advancing pipeline stages, and a Voice AI agent catching missed calls 24/7. Blueprints for all of these are in the Deployment Blueprints section.
Official Site ↗ Support Portal ↗ Pricing Guide ↗GHL has two layers: the Agency account (your master login — billing, white-label, user permissions) and Sub-accounts (one per client or brand — all CRM data, workflows, funnels, calendars). Sub-accounts are fully isolated from each other by design.
Plan sub-account structure before building anything. Merging contacts across sub-accounts is painful. Multiple brands sharing one contact list = one sub-account. Genuinely separate businesses = separate sub-accounts. And never build in the Agency layer directly — always work inside a sub-account, even for tests.
Create a Sub-Account
- Agency View → Accounts → + Add Account
- Choose a template or Start From Scratch
- Fill in: Business Name, Contact Info, Time Zone, Currency
- Click Save
Snapshots — Productize Your Builds
Snapshots export a sub-account's entire configuration and import it into a new one. This is how one good build becomes every client's starting point.
- Agency View → Snapshots → Import Snapshot
- Paste the shared snapshot URL
- Assign the imported snapshot to a sub-account
Snapshot includes: Snapshot excludes: ✓ Workflows (trigger logic intact) ✗ Contacts and CRM data (by design) ✓ Funnels and websites ✗ Active campaign enrollments ✓ Email / SMS templates ✗ API keys, third-party credentials ✓ Custom fields and values ✗ Reviews / reputation data ✓ Pipelines and calendars
Landlord D0 Sequence, never Workflow 1 — because snapshot imports preserve names, and bad names multiply.Domain & Email Options
| Option | Setup Path | Best For |
|---|---|---|
| Custom Domain | Settings → Domains → Add New Domain | All accounts |
| LC Email (built-in) | Settings → Email Services → LC Email | Beginners / quick start |
| Mailgun (API) | Settings → Email Services → Mailgun | Agencies needing deliverability control |
| SMTP | Settings → Email Services → SMTP | Light use / test accounts |
Deliverability — Do This Before Any Send
DNS Records: ☑ SPF record added to sending domain ☑ DKIM configured (GHL provides the DNS record) ☑ DMARC policy set (start p=none → monitor → enforce) GHL Settings: ☑ Unsubscribe link element in all email templates ☑ Physical business address in footer (CAN-SPAM / GDPR) ☑ Reply-to is a real, monitored inbox // Bounce rate above 3–5%? Stop sending. Clean the list first. // Sender reputation damage outlasts any single campaign.
Phone: LC Phone vs Twilio
| Option | Notes |
|---|---|
| LeadConnector (LC Phone) | Built-in GHL phone system. Fastest setup. Recommended for most. Per-message/minute billing — see Pricing. |
| Twilio (manual) | You own the number directly. Best for agencies needing direct control or porting flexibility. |
Use a password manager for every client account and enable 2FA on all admin logins. Agency accounts are a single point of failure for every client underneath them. Treat agency credentials like production server keys.
Every automation, workflow, and pipeline stage anchors to a Contact record. The contact data model is the most important structural decision in any GHL build.
The Contact Profile (Updated 2025)
Contacts → select a contact — each profile contains: General Info (name, phone, email, tags, assigned user), Opportunities (pipeline status + deal value), Activity Timeline (forms, page visits, messages, calls), Notes, Tasks, Appointments, and AI Summary 2026 — one-click summary of all conversations: Contact Profile → Activity tab → Generate AI Summary.
Custom Fields vs Custom Values vs Custom Objects
| Feature | What It Does | Example |
|---|---|---|
| Custom Fields | Per-contact data. Used in forms, emails, workflows. | Budget, City, Referral Source, Lead Score |
| Custom Values | Global constants reusable account-wide. | Company phone, office hours, booking link |
| Custom Objects 2025 | Your own data structures beyond contacts. | Properties, projects, vehicles |
| Field Type | Best For | Notes |
|---|---|---|
| Text | Names, addresses, free-form notes | Search-indexed |
| Number | Lead score, deal value | Sortable in Smart Lists |
| Dropdown | Status, segment, temperature | Use for anything that needs filtering |
| Date | Move-in date, contract signed | Enables date-based triggers |
| Checkbox | Consent flags, boolean states | GDPR consent = checkbox, never text |
| File Upload | Documents, signed contracts | Stored in GHL CDN |
Every field gets exactly one writer — one workflow, one form, or one integration. If two workflows both write to lead_score, you get race conditions that are nearly impossible to debug. And group fields before creating them (e.g., "Lead Qualification," "Automation State") — an ungrouped list at 50+ fields becomes unusable in weeks.
Tag Taxonomy — The Segmentation Engine
Tags are the most flexible tool in GHL and the most abused. Without a naming convention you'll have 200 uninterpretable tags within six months.
// Prefix by function. Document every tag in your SOP hub. SOURCE: src:facebook | src:google | src:referral | src:website STATUS: status:hot-lead | status:warm | status:cold | status:suppressed ACTION: action:booked | action:replied | action:clicked | action:converted SEQ: seq:active | seq:completed | seq:paused AUDIT: review:needed | duplicate:flagged | archive:unqualified
Rules: tags are for logic and filtering, never decoration. Clean unused tags monthly. Smart Lists + tags = custom CRM views per team role.
CRM Contact Lifecycle
| Tag / Status | Stage |
|---|---|
| Lead New | Just entered the CRM |
| Lead Nurturing | In active drip / follow-up sequence |
| Booked | Appointment scheduled |
| Showed / No Show | Attended — or missed: trigger rebooking flow |
| Client Active | Converted and onboarded |
| Client Inactive | No recent activity — trigger reactivation flow |
Duplicates & GDPR Deletion
GHL deduplicates by email and phone by default. A repeat submission merges to the existing record — or creates a duplicate if the phone doesn't match. Always gate Day-0 enrollment on a seq:active tag check (M9, Rule 3).
- Stop all active workflows for the contact
- Remove them from all active broadcasts
- Search contact → open profile → Trash icon → confirm
archive:unqualified before any permanent deletion.An Opportunity is a deal entry in a pipeline — tracking value, stage, assigned user, and status (Open / Won / Lost). Contacts sit in the CRM; Opportunities are what actually move. One contact can hold multiple opportunities in multiple pipelines simultaneously.
Stage names describe what happened, not what you hope happens. "Proposal Sent" is a fact. "Interested" is a feeling. Fact-based stages make pipeline reports mean something. And assign a monetary value to every opportunity — that's what unlocks Forecast View and real ROI tracking.
Pipeline Views
| View | Use |
|---|---|
| Kanban | Drag-and-drop board. Best for sales teams tracking live movement. |
| Forecast View | Expected revenue by stage. Spot bottlenecks where value pools. |
| List View 2025 | SmartList-style with customizable columns and fast filtering. |
Stage Triggers (pipeline-driven automation)
- Create workflow with trigger: Opportunity Status Changed
- Filter by pipeline and specific stage
- Add actions: email, SMS, task, internal notification
Lead Scoring (custom-field pattern)
Custom field: Lead Score (Number) Clicked email → +10 Booked call → +25 No show → −10 Routing: If/Else on Lead Score → high scores to senior reps, low to nurture
Won / Lost Tracking
- Open the opportunity card
- Change Status dropdown to Won or Lost
- Add a note with the reason — required for meaningful reporting
Lost:Price, Lost:No-Response — so future reactivation campaigns can target each segment with the right message.Calendar Types (2025–2026)
| Type | Use |
|---|---|
| User Calendar | Tied to one specific team member |
| Round-Robin | Distributes bookings evenly across a group — only use when all reps are active and available |
| Unassigned | For lead capture; assign later via workflow |
| Service Calendar 2025 | Per-service type with its own duration, price, and assignee |
| Rental Calendar 2026 | Multi-day asset bookings: equipment, venues, vacation properties |
The Reminder Sequence Template
Trigger: Appointment Booked Immediate: Email + SMS confirmation 24h before: SMS reminder + reschedule link 1h before: SMS: "Your call is in 1 hour — here's the link: {{meeting_link}}" Post-appt: Status = Showed → tag action:showed → 6h delay → review request No-show: Status = No Show → 2h delay → tag status:no-show → rebooking link
Connect every calendar to a pipeline stage. Booked → move opportunity to "Consultation Booked." Completed → "Evaluated." Calendar-driven stages give you automatic pipeline tracking with zero manual entry. Drop the booking link anywhere with {{user.calendar_url}}.
Forms capture lead data and fire automations. Built inside Sites → Forms — drag-and-drop builder with conditional field logic. Embed on external sites via code snippet. Submissions live in Sites → Forms → Submissions.
The Form Standard (use on every form)
MOBILE-FIRST ORDERING: Above fold: 2 fields max (name + phone, or email + city) Below fold: qualification fields // Micro-forms reduce abandonment 30–50% on cold traffic HIDDEN FIELDS (mandatory for attribution): utm_source / utm_medium / utm_campaign → map to contact custom fields // Auto-populate from URL params. Without these, paid and organic look identical. COMPLIANCE: Consent checkbox — NOT pre-ticked (GDPR/TCPA) Privacy policy link — visible, not buried BACKUP: Form Settings → notification email to your own inbox // Fires independently of workflows — your lead alert survives a GHL outage
Surveys & Branching Logic
- Sites → Surveys → Create New
- Add questions → click the logic icon on each question
- Set: If answer is [X] → go to step [Y], or skip to end
Use surveys for appointment qualification, lead-scoring intake, onboarding flows, and post-service feedback — anywhere the next question depends on the last answer.
Forms & Surveys ↗Funnels (single-path, conversion-focused) and Sites (multi-page, navigation-based) share the same editor. A landing page driving one action = funnel. A multi-page website = site.
Build Paths
| Approach | Details |
|---|---|
| From Template | Sites → Funnels → New → Choose Template — fast, pre-optimized |
| From Scratch | Blank funnel. Full design freedom, slower. |
| Universal Elements 2025 | Design once, sync across all funnel pages automatically |
CTA Button Actions
Buttons can: go to Next Step in Funnel, Open URL, Submit Form, or Trigger a Workflow via Trigger Link.
Test Before Launch
- Test every page link before going live
- Fill the form yourself → confirm contact entry in CRM
- Check tag application and pipeline stage creation
- Monitor: Funnels → Open Funnel → Stats tab — run A/B split tests on CTAs, headlines, layouts
GHL Funnel vs External Page
| Use a GHL funnel when… | Use Webflow / WordPress when… |
|---|---|
| Speed to launch beats design flexibility | Brand consistency with an existing site is required |
| You want native form → CRM → workflow wiring | SEO is a primary channel (GHL page SEO is limited) |
| Built-in A/B testing is enough | Complex interactions or animations are needed |
Set a canonical URL on every GHL page (Page Settings). GHL can serve the same page on your custom domain and a gohighlevel.com subdomain — without a canonical, Google may index both and split your link equity.
Workflows are GHL's automation engine: a trigger (what starts it), conditions (if/else logic), actions (what happens), and wait/delay steps. The interface: left column = Triggers · center canvas = Steps & Logic · top bar = Publish, Save, Test · right panel = Action settings.
The Five Architecture Rules
RULE 1: One workflow, one job. No 40-step mega-workflows covering 3 scenarios. Split by function: D0-Instant-Response · Day-3-Follow-Up · Booking-Confirmed. Single-job workflows are testable, debuggable, replaceable. RULE 2: Name everything descriptively. Use folders. Bad: Workflow 1 | New Automation | Copy of Copy of Test Good: [Booking] WF FB Lead → Booking v2 | [Nurture] WF Cold Reactivation v3 Folders by function: Booking, Nurture, Internal, AI. RULE 3: Always add a loop guard. Step 1 of any enrollment workflow: check for seq:active tag. Tagged → stop or alert. Prevents double-enrollment on re-submission. RULE 4: Test with a dummy contact before going live. Create test contact → fire the trigger manually → watch History tab live. RULE 5: Wait steps for time-sensitive sends. Wait → Send beats scheduling inside the action — it gives you a cancel window.
Reentry Settings
| Setting | Behavior |
|---|---|
| Multiple entries (default) | Contact enters every time the trigger fires |
| Only once per contact | One entry, ever |
| Once every X days/hours | Time-limited reentry — ideal for drip campaigns |
Troubleshooting — The History Tab Routine
- Automation → Workflows → Open Workflow → History tab
- Search the contact's email or phone
- Check: Did it trigger? What was the last completed step? Were steps skipped?
- Logs tab: Twilio bounces, invalid emails, API errors
- Check Status column: Paused / Completed / Failed — paused on a Wait step usually means the required condition was never met (the #1 cause of stalled workflows)
Two debugging force-multipliers: (1) add Internal Notification steps between logic blocks during QA builds — you literally watch the workflow walk; (2) enable workflow error notification emails and check them daily until the system proves stable. Workflows fail silently by default. Don't let them.
Trigger Reference
| Trigger | Use Case |
|---|---|
| Form Submitted | Lead-capture sequences |
| Tag Added / Removed | Behavioral branching, hot-lead alerts, decoupled cross-workflow signals |
| Appointment Booked / Status Changed | Confirmation + reminder sequences |
| Opportunity Status Changed | Pipeline-stage automation |
| Customer Replied | Stop or branch automation on reply |
| Payment Received | Post-payment onboarding / fulfillment |
| QR Code Scanned 2025 | In-store opt-in, event check-in, print tracking |
| WhatsApp Message Received 2025 | WhatsApp-triggered flows |
"Tag Added" is the most versatile trigger in GHL. Any workflow, Zap, n8n node, or API call can apply a tag — and a separate workflow reacts to it. Systems talk through tags instead of nested logic. This is decoupled architecture inside a no-code tool.
Logic & Flow Controls
| Control | Use |
|---|---|
| If / Else | Branch on conditions: tag, field value, booking status |
| Delay | Pause for fixed time — 2 hours, 1 day |
| Wait | Hold until a condition is met — e.g., until appointment booked |
| Go To | Jump to another step — avoids duplicating blocks across branches |
Action Reference
Send Email / SMS / WhatsApp · Internal Notification
Templates for consistency. Internal Notifications alert your team by email or SMS — also your best QA instrument (M9).
Add/Remove Tag · Update Field · Add Note
The state-management layer. Lead scores, temperatures, sequence checkpoints. Tags fire triggers in other workflows.
Create/Update Opportunity · Assign User · Create Task
Assign manually or Round-Robin. Pair stage moves with a Create Task so a human sees why the stage changed.
Webhook · Go To · Stop Workflow
Webhooks push data to Zapier, Make, n8n, or custom APIs. Stop Workflow kills all pending waits and scheduled actions.
Conversations → All unifies: SMS/MMS, Email, Facebook Messenger, Instagram DM, Google Business Messages, web chat, WhatsApp native 2025, and voice calls with AI transcription.
AI Messaging Features (2025–2026)
Per-contact send timing
GHL AI picks the best send time for each contact based on their past engagement history.
AI reads what contacts send
Conversation AI reads images and transcribes voice notes from contacts, then responds appropriately.
Email Builder Modes
| Mode | Best For |
|---|---|
| Drag & Drop | Most flexible — recommended for most users |
| HTML | Developers building precise custom templates |
| Text Only | Fastest delivery, highest inbox placement rate |
Compliance — Non-Negotiable
SMS (TCPA): ☑ "Reply STOP to opt out" in every first message — exact text ☑ STOP keyword handling enabled (Settings → Phone Numbers) ☑ Written prior consent before marketing SMS ☑ Check national DNC list before cold campaigns // TCPA violation: $500–$1,500 PER TEXT. Class actions are real. // GHL does not handle TCPA compliance for you. You handle it. EMAIL (CAN-SPAM / GDPR / PECR): ☑ Unsubscribe Link element in all campaigns ☑ Physical address in footer ☑ Monitor: Marketing → Email → Stats → Unsubscribed // Missing opt-outs get your Mailgun/Twilio/LC account flagged.
GHL's shared email infrastructure means your reputation partly depends on other GHL senders on the same IP pool. Running high-volume cold outreach? Route it through a dedicated cold tool (Instantly, Smartlead) and keep GHL for warm, opted-in sends. Sub-160-character SMS, no ALL CAPS, no "FREE" in subject lines.
For UK-facing builds in 2026, treating WhatsApp as optional means leaving your highest-performing channel unused. Prioritize it for re-engagement flows.
WhatsApp Setup (Button to Button)
- Enable the WhatsApp add-on — $10/sub-account/month Verified Jun 2026
- Complete Meta Business Manager verification (business docs required; 1–3 business days)
- Create a WhatsApp Business Account inside Meta
- Connect: Settings → Integrations → WhatsApp
- Verify a dedicated business number — it cannot be an existing WhatsApp number
- Create message templates → submit for Meta approval (allow 24–72h). First contact with any new lead must use a pre-approved template; free-form replies unlock only after the contact responds
- Test end-to-end in the Conversations tab
RCS Messaging (Android)
| Aspect | Details |
|---|---|
| Pros | Multimedia (buttons, carousels, images), verified sender badge, higher CTR than SMS |
| Limitations | Android only — Apple devices fall back to plain SMS; costs more than SMS |
| Setup | Settings → Messaging → Enable RCS → customize brand profile |
WhatsApp for visual inventory. Three property photos in a WhatsApp message display inline, full-size, instantly — what an email attachment never does. Day-0 responses with photos in WhatsApp consistently outperform the equivalent email send.
Payment Integrations
Connect Stripe: Settings → Integrations → Connect Stripe. PayPal and Venmo support one-click OAuth setup Dec 2025. GHL's open payments infrastructure also supports NMI, Authorize.net, Square, Adyen, Razorpay, and custom providers Verified Jun 2026. Use in funnel order forms, invoices, and subscription plans.
PAYMENT EVENT TRIGGERS: payment.cleared → ✓ Move to Closed-Won, fire fulfillment, send receipt payment.submitted → ⚠ NEVER use for fulfillment (funds not confirmed) payment.failed → SMS alert + pause delivery + collections sequence subscription.created → start retention sequence subscription.cancelled → cancellation flow, offboarding Abandoned Cart → recovery sequence
payment.submitted (card entered) instead of payment.cleared (funds confirmed). Cards decline. Payments fail. Gate everything on cleared — no exceptions. And build the Payment Failed workflow, or failed subscriptions disappear into silence.SaaS Mode — Resell GHL as Your Own Platform
- Upgrade to SaaS Pro ($497/mo) for white-label: custom domain, logo, login page, app name
- Configure pricing tiers in the SaaS Configurator — import Stripe products directly 2025
- Set rebilling markup on SMS/email/AI usage — this is the margin engine
- Wire the signup flow: payment → webhook → auto-create sub-account → assign snapshot → email credentials (full blueprint below)
Reporting → Dashboard covers revenue tracking, pipeline movement, lead-source summaries, appointment stats, and user performance. Review weekly with your team.
UTM Discipline (the attribution backbone)
| Parameter | Example Values |
|---|---|
utm_source | facebook, google, newsletter |
utm_medium | cpc, email, social |
utm_campaign | your specific ad or campaign name |
- Add UTM parameters to all funnel and page URLs — no exceptions
- Use hidden form fields to capture UTMs into contact custom fields (M7)
- Read results in Reporting → Attribution Report — first-touch attribution by source, campaign, UTM, and funnel entry point
What GHL Reports Well — and the Looker Stack for the Rest
| Report | Location | Useful For |
|---|---|---|
| Pipeline Revenue Forecast | Opportunities → Reports | Weekly deal review |
| Appointment Show Rate | Calendar → Reports | Sequence effectiveness |
| Email Campaign Stats | Marketing → Email → Stats | Opens, CTR, unsubscribes |
| Conversation Report | Conversations → Reports | Response time, channel volume |
| Call Tracking | Phone Numbers → Reports | Inbound volume, missed calls |
GHL → Google Sheets (via Zapier or API) → Looker Studio. Sheets is the data layer; Looker is the presentation layer. Build leads-by-source, show-rate, pipeline-value, and email dashboards that non-technical clients can actually read — branded, client-facing, monthly.
Integration Decision Table
| Option | Use when… | Cost |
|---|---|---|
| GHL Native | Integration exists natively (Stripe, Google, Facebook, Twilio) | Included |
| Zapier | Quick mainstream connections; speed beats cost. Use the official LeadConnector app. | $20–50+/mo |
| Make.com | Multi-step logic, data transformation, scheduled tasks | $9–20/mo |
| n8n (self-hosted) | AI orchestration, Claude API, high volume, cost control | ~$6/mo VPS |
| GHL API (direct) | Custom apps, bulk operations, real-time sync | Dev time |
Classic patterns: new contact → Google Sheet row + Slack alert · payment received → onboarding workflow · workflow webhook → n8n → Claude API → write result back to a custom field.
API Access
Full REST API for contacts, conversations, calendars, payments, and webhooks. Get your API key: Settings → Company Settings. Test endpoints with Postman or Insomnia. Note: the official docs live at marketplace.gohighlevel.com/docs — developers.gohighlevel.com redirects there.
// API v2 — preferred for all new integrations GET https://services.leadconnectorhq.com/contacts/{contactId} Authorization: Bearer {your_api_key} Version: 2021-07-28 // Scope keys minimally — never a full-access key in production. // Rate limit: ~100 requests / 10s per location. Add retry logic in n8n.API Docs ↗ API Key Guide ↗ Dev Slack ↗
AI Employee is the single biggest GHL update of 2025–2026: a suite of AI tools bundled natively into your CRM, funnels, and workflows. The lineup has kept evolving — Ask AI and AI Studio joined the original six, and Funnel AI + Workflow AI Builder moved to free (daily fair-use limits). The coverage table below reflects the April 2026 pricing structure.
The 6 AI Tools
| Tool | What It Does |
|---|---|
| Conversation AI | Two-way messaging across SMS, chat, FB/IG, WhatsApp, email. Qualifies and books 24/7. |
| Voice AI | Answers inbound calls, qualifies leads, books appointments. Sub-500ms response. |
| Content AI | Emails, funnels, ads, and replies from plain-English prompts. |
| Reviews AI | Auto-requests and responds to Google/Facebook reviews. |
| Funnel AI | Builds entire funnels and sites from prompts. |
| Workflow AI | Describes-to-builds workflow structures (always review before publishing). |
Pricing Model
| Plan / Mode | Cost & Coverage Verified Jun 2026 |
|---|---|
| AI Employee Unlimited | $97/sub-account/mo — unmetered (fair-use policy): inbound Voice AI, Conversation AI, Reviews AI, Content AI, Ask AI |
| AI Employee Growth | $50/sub-account/mo — outbound Voice AI, Voice AI widget, prompt optimizer; 100 voice min included, then pay-per-use |
| Pay-per-use voice | $0.06/min voice engine + LLM tokens at model API rates — platform-wide average ≈ $0.163/min, not $0.06 |
| Pay-per-use messaging | Conversation AI is now token-based at model API pricing (the old flat $0.02/msg is gone) · Reviews AI $0.01/review · Content AI $0.0945/1k words |
| Free (daily fair-use limits) | Funnel & Website AI (1,000 prompts/day per sub-account) · Workflow AI Builder · Generate with AI |
| Phone system | Carrier/phone charges still apply to every call — even inbound Voice AI under Unlimited |
Voice AI Setup (Button to Button)
- Settings → AI Agents → + New Agent
- Name the agent — e.g.,
Main Receptionist,After Hours Bot - Training method: FAQ Text Upload (preferred) or Manual Prompting
- Feed it: website URL, PDFs, FAQs, pricing info, top 10 objections
- Set Fallback Behavior: notify user or route to a human rep — never launch without this
- Assign a Booking Calendar for auto-scheduling
- Assign to a phone number → test by calling it yourself
Agent Studio
GHL's advanced AI configuration hub: multi-modal agents with intent-based call routing — the AI identifies caller intent and routes to the right department automatically. It reads GHL contact data natively (name, stage, custom fields) mid-conversation.
Agent Studio: easier setup, stays inside GHL, right for structured qualification flows. n8n + Claude API: more control, better reasoning, lower per-call cost at volume — right for judgment calls, conversation-history reference, and edge cases. Start with inbound Voice AI before outbound; it's the fastest, safest ROI in the entire AI lineup. Tag AI-booked contacts AI Assisted Booking to measure AI vs human conversion honestly.
| Feature | What + Where |
|---|---|
| QR Code Triggers | Trackable QR codes that fire workflows on scan. In-store opt-in, event check-in, print tracking. Marketing → QR Codes |
| External Form Tracking | Snippet on any external site → submissions captured with full attribution (M7) |
| Contact AI Summary | One-click conversation summary. Contact Profile → Activity → Generate AI Summary |
| Communities & Monetization | Paid memberships, affiliate programs, live streaming — monetize audiences inside GHL |
| Local SEO Upgrades | Interactive heatmaps (neighborhood-level rankings) + competitor benchmarking. Prospecting → Local SEO |
| Prospecting: Lead → Sub-Account | Leads carry Open/Won/Lost status; winning a deal instantly creates the client's sub-account |
| Desktop App | Native Mac app (2025); Windows expected 2026 |
| Social Scheduling | Native publishing: FB, IG, GBP, LinkedIn, TikTok, X, Bluesky. Facebook Post Sync (Mar 2026) pulls organic posts back in |
| Native Domain Purchase | Register domains inside GHL — no external registrar (M3) |
Social Planner — Platform Support Reality Check
| Platform | Support | Notes |
|---|---|---|
| Facebook / Instagram | ✓ Full | IG requires Facebook Business connection |
| Google Business Profile | ✓ Posts | Pair with Reviews AI for the review side |
| ✓ Personal + Company | Native video support limited | |
| TikTok | ⚠ Limited | Draft mode — manual publish step |
| Bluesky | ✓ 2025 | Native scheduling |
Why Workflows Fail — Diagnostic Table
| Problem | Common Cause |
|---|---|
| Trigger not firing | Wrong form selected · conflicting conditions · reentry disabled |
| Delays never advance | Stuck on a Wait step (condition never met — the #1 cause) · wrong timezone |
| Tags/fields not applying | Typo in tag name · field doesn't exist · removed by another automation |
| No email/SMS sent | Service not connected · missing contact info · spam filters |
Pre-Launch QA Checklist
FORMS: ☑ Test submission → contact created with correct tags + fields ☑ UTM hidden fields populated ☑ Day 0 sequence fired within 5 minutes ☑ Duplicate test: resubmit → no double enrollment SEQUENCES: ☑ Merge tags render (not literal {{contact.first_name}}) ☑ Unsubscribe link in every email · STOP triggers suppression ☑ Reply → sequence pauses immediately ☑ Delays at 1–5 min for testing → extended before go-live ☑ Every branch has end or stop logic · all users assigned ☑ Copy is mobile-friendly PIPELINE: ☑ Stage change fires correct workflow ☑ Booking moves opportunity to correct stage ☑ Closed-Won fires fulfillment PAYMENTS: ☑ Stripe test mode: simulate success → payment.cleared fires fulfillment ☑ Simulate failure → failure workflow fires WEEKLY HEALTH CHECK (15 min): ☑ Test form submission → sequence fires? ☑ Workflow error notification email — any failures? ☑ Campaign stats — deliverability issues? ☑ New contacts — tags and fields populated?
QA SOP Template
| Check | Pass / Fail |
|---|---|
| Test contact used | |
| Trigger fired | |
| Tag applied | |
| Delay step completed | |
| All branches reached | |
| Errors in logs | |
| Email / SMS received | |
| Tasks created | |
| Final outcome correct |
Workflows edited live without testing. One change to a merge tag, trigger filter, or wait duration silently breaks every future enrollment. Make the change in a test workflow → QA it → copy the fix to production. Ten extra minutes; hours of cleanup saved, every time.
BP1 — Agency Lead Nurture System (M7 + M9 + M5)
Objective: form → tag → nurture → booking → opportunity Lead submits form → tag src:website Day 1: Welcome SMS + intro email Day 2: Testimonial + case study email Day 3: FAQ email Day 5: "Let's Talk" → calendar link CTA Booking → create opportunity: Booked Call // Conditional split: no booking after Day 5 → re-engagement flow (BP4)
BP2 — Voice AI Missed-Call Recovery (M16)
Objective: never lose a lead to a missed call Inbound call → Voice AI answers within 2 rings AI qualifies: service needed, location, budget AI offers live slots from your calendar Booked → CRM opportunity + confirmation SMS Not booked → Call Back task created for a human rep // Deploy this before any other AI feature — recovers 40–60% of // leads that would otherwise fall through. Fastest AI ROI in GHL.
BP3 — Local Business Booking + Reminder Flow (M6)
Booking → SMS + email confirmation
1h before → reminder SMS
Showed → tag → 6h delay → feedback / review request SMS
No-show → 2h delay → tag status:no-show → rebooking link
BP4 — Cold Lead Re-Engagement (M4 + M9)
Smart List filter: Last Activity > 14 days AND Has Booking = false Day 1: SMS — "Still looking for help?" Day 3: Email — client testimonial Day 5: Booking link with urgency CTA Response → tag Reengaged → new nurture flow No response → tag Dead → exit // Enable reentry "once every X days" or this loop fires exactly once, ever
BP5 — SaaS Signup + Snapshot Deployment (M13 + M2)
Client picks plan on signup funnel Stripe/PayPal payment.cleared → webhook → auto-create sub-account Workflow assigns default snapshot to new account Login credentials emailed automatically Contact moved to Client Active stage // Combine with Multi-Brand + rebilling = complete white-label SaaS offer
Workflow & Automation (1–10)
| 1 | Always test with a dummy contact before going live |
| 2 | Short delays (1–3 min) during testing; extend after QA passes |
| 3 | Name workflows clearly: WF Lead Nurture v2 |
| 4 | Use conditional branching to personalize message flows |
| 5 | Tag at checkpoints: Step 2 Completed, Day 5 Sent |
| 6 | Stop All Workflows when a contact replies — avoid redundant sends |
| 7 | Enable reentry for re-engagement loops or they fire only once |
| 8 | Track lead source in a field or tag — always, no exceptions |
| 9 | Internal Notification steps between logic blocks to debug flows |
| 10 | Go To steps avoid repeating action blocks across branches |
AI & Automation (11–15)
| 11 | Deploy Voice AI before any other AI tool — fastest ROI |
| 12 | Feed Voice AI your FAQs, pricing page, and top 10 objections |
| 13 | Tag AI-booked contacts AI Assisted Booking — measure AI vs human conversion |
| 14 | Start Conversation AI on SMS only; expand to WhatsApp and chat later |
| 15 | Workflow AI Builder for rapid prototyping — always review before publishing |
Tagging & Segmentation (16–20)
| 16 | Naming conventions: src:, action:, status: |
| 17 | Tags are for logic and filtering — never decoration |
| 18 | Clean unused and duplicate tags monthly |
| 19 | Document all tag definitions in your SOP hub |
| 20 | Smart Lists + tags = custom CRM views per team role |
Calendar & Booking (21–25)
| 21 | Give each team member their own calendar |
| 22 | Round-Robin only when all reps are active and available |
| 23 | Calendar link in SMS and email: {{user.calendar_url}} |
| 24 | Reminders at 24h and 1h before every appointment |
| 25 | Service Calendars for businesses with multiple service types |
Messaging & Communications (26–31)
| 26 | Keep SMS under 160 characters for best deliverability |
| 27 | A/B test email subject lines |
| 28 | Personalize with {{contact.first_name}} — even in SMS |
| 29 | No ALL CAPS, no "FREE" in subject lines — spam triggers |
| 30 | Clean your list when bounce rate exceeds 5% |
| 31 | WhatsApp beats SMS open rates — prioritize it for re-engagement |
Reporting & Analytics (32–36)
| 32 | UTM parameters on all funnel links — no exceptions |
| 33 | Attribution Reports identify your best-performing channels |
| 34 | Opportunity value in every pipeline = real revenue data |
| 35 | Looker Studio + Sheets for custom client dashboards |
| 36 | Share filtered reports monthly via PDF or Notion |
System Organization (37–41)
| 37 | Group workflows by function: Booking, Nurture, Internal, AI |
| 38 | Snapshots standardize and speed up every client build |
| 39 | Maintain a vetted template library of your most reliable workflows |
| 40 | Restrict workflow access for VAs when not needed |
| 41 | Document every client's system stack and SOPs in Notion/ClickUp |
Team & Scaling (42–46)
| 42 | Prefix all client assets: ClientA-WF, ClientA-Calendar |
| 43 | Workflows assign users and notify reps instantly on new leads |
| 44 | Train new staff with mini-projects in a test sub-account |
| 45 | Test sub-accounts for all experiments — never live accounts |
| 46 | Weekly automation audits = faster fixes, fewer surprises |
Power User Habits (47–50)
| 47 | Track all clicked links with Trigger Links for behavioral data |
| 48 | Learn basic webhook/JSON — it unlocks every external integration |
| 49 | Run a backup snapshot monthly to protect client builds |
| 50 | Think like the contact — test the entire UX from their POV |
Build and Test
- A form linked to a pipeline stage
- A calendar with a test appointment booked
- A complete workflow: trigger → email + SMS → task assignment → pipeline update → internal notification
- One AI-assisted automation: Conversation AI or Voice AI with a fallback configured
Then Answer
The 20-point assessment below, plus: troubleshoot 2 broken workflow scenarios (use the M18 diagnostic table) and identify 3 automation use cases for a given industry (M1 table is your reference).
HL University ↗ Official Community ↗Part 1 — Multiple Choice (10 pts)
1. Which trigger starts a workflow when a lead fills out a form?
2. What is Voice AI primarily used for in GHL?
3. What does Round-Robin logic do in a calendar?
4. Which is NOT a valid use of a tag in GHL?
5. What does External Form Tracking (2025) allow you to do?
6. Key difference between a Form and a Survey in GHL?
7. Which email provider is recommended for agency deliverability control?
8. What does the Create Opportunity action in a workflow do?
9. How much does the Unlimited AI Employee add-on cost?
10. Where do you track email open rates, click rates, and unsubscribes?
Part 2 — True or False (5 pts)
Part 3 — Short Answer (5 pts) + Bonus
Answer Key — trainers only. No peeking mid-test.
Part 1: 1-A · 2-B · 3-B · 4-C (pipeline stages are structural, not tags) · 5-B · 6-A · 7-C · 8-B · 9-B · 10-C
Part 2: 11-True · 12-False (Custom Values are global; Custom Fields are per-contact — see M4) · 13-True · 14-True · 15-True
Part 3 (accept equivalents): 16 — any two of: send SMS/email, add tag, create opportunity, assign user, create task, internal notification. 17 — behavioral tracking: fire a workflow or apply a tag when a specific link is clicked. 18 — Smart List filter (Last Activity > 14d AND no booking) → BP4 re-engagement sequence. 19 — when multiple branches need the same action block; Go To avoids duplication and keeps one maintainable copy. 20 — GHL's native AI suite; Unlimited plan $97/sub-account/month covers inbound Voice AI, Conversation AI, Reviews AI, Content AI, and Ask AI (outbound voice, the voice widget, and Agent Studio bill separately).
| Add-On | Cost | Notes Verified Jun 2026 |
|---|---|---|
| AI Employee Unlimited | $97/sub-account/mo | Inbound Voice, Conversation, Reviews, Content, Ask AI — see M16 coverage table |
| AI Employee Growth | $50/sub-account/mo | Outbound Voice AI + widget, 100 min included |
| Agent Studio | Token-based (model rates) | NOT covered by either AI plan |
| WhatsApp integration | $10/sub-account/mo | Required for the native WhatsApp channel (M12) |
| Other add-ons | Varies | Branded client portal $49 · dedicated email IP $59 · SEO $79 · HIPAA $297 · white-label mobile app $497 · premium support $500 |