Private — AnchorWorks team only Automations · GoHighLevel · Cleanup & Audit
Updated Jul 9, 2026 · fixes applied · now wired to GHL via API AnchorWorks · Automations · GoHighLevel

The GoHighLevel Command Center

One page for the whole engine: the cleanup, the 2026 research, the live inventory, the audit, and now the fixes we've applied plus a new survey-tracking finding. GHL is our backend plumbing — the funnels live on Cloudflare, and Claude Code is now wired straight into GHL via API. Skim the headlines; open anything for depth.

Study4 repos + research
Clean4 dead funnels removed
AuditB+ → A−, hyper-critical
Fixpipelines + deliverability done
Chapter 02 · The Cleanup

We deleted the dead funnels and left the live plumbing untouched.

The old GHL Funnel Builder pages weren't in use — the real funnels are custom HTML on Cloudflare. We removed the four dead pages together, one at a time, and kept everything the live site actually depends on.

Deleted — dead pages

  • ×Test LAS — a leftover test.
  • ×HVAC Strategy Session (Booking Funnel) — superseded by the REV strategy calendars.
  • ×HVAC War Room Live Event (Webinar Funnel) — the standalone page; the embedded webinar form is a separate object and stays.
  • ×Local Authority Score (GHL version) — already replaced by Ethan's live Cloudflare quiz.

Kept — live & off-limits

  • The 5 REV strategy calendars (Chris, Anthony, Justin, Alexander, Round Robin) — embedded in the site.
  • All forms & pop-ups — market report, webinar, playbook, do-not-sell.
  • Pipelines + triggers + email/SMS sequences — the sales team runs on these.
  • myanchorworks.com email + branded-link domain, and las.myanchorworks.com.

The one link fix (handed to Ethan). The live quiz's two "Book Strategy Session" buttons pointed at an old test page (goanchorworks.com/strategy-session). We drafted & sent Ethan the fix: repoint both to myanchorworks.com/strategy-session/. Until it's live, that button lands people on the homepage — so it's mildly urgent.

The booking-domain decision. Personal booking links closers send from GHL will live on book.myanchorworks.com — one clean brand, better deliverability — instead of a second domain. goanchorworks.com stays owned but redirects.

Chapter 03 · The Research

How the best operators run GoHighLevel in 2026.

Deep research into the modern way to run GHL — as backend plumbing behind best-of-breed tools, paired with Claude Code. Tap a tab.

ghl-best-practices-2026 · compiled Jul 9, 2026

The shift

GHL leaned hard into AI (Conversation AI, Workflow AI, Voice AI) and tightened compliance. The big story for operators isn't features — it's that the rules for sending got stricter, and unregistered messaging now silently fails.

What it means for us

Legacy API v1 keys were retired Dec 31, 2025 — everything moves to Private Integration Tokens (v2). SMS without A2P registration is now blocked by carriers, not just throttled.

The pattern (it's ours)

Using GHL as a headless backend — custom funnels on Cloudflare, Clay for enrichment, Reply.io for outbound, and GHL only for CRM + automation + messaging — is a named, respected setup. You're already doing it.

The one rule

Every external funnel feeds GHL through an inbound webhook. On entry it must map UTMs, stamp a source tag, and carry email-or-phone (GHL requires one). That wire is the whole game.

Honest limit: the API/MCP cannot build workflows — automations stay a hands-in-GHL job. Don't plan to script them.

What's real

The official GHL MCP server works with Claude Code (per sub-account, scope-limited). It's a strong read-first audit & reporting co-pilot — pull contacts, opportunities, fields, and build dashboards off the data.

What's hype

It is not a rebuild tool. Treat AI-agent access as read-mostly; keep write scopes tight and rotate tokens ~every 90 days.

Tags vs fields

Tags = temporary state. Custom fields = permanent facts. Kill duplicate tags, pick one naming convention, and never encode a permanent trait as a tag.

Workflows & pipelines

Name with department prefixes, version workflows instead of editing live ones, and snapshot before any deletion. Fewer, clearer pipelines beat many overlapping ones.

Email

Needs SPF + DKIM + DMARC (aligned) on a dedicated sending subdomain. Mandatory since Feb 2024; since late 2025 unauthenticated mail is rejected, not delayed. Keep spam complaints under 0.3%.

SMS

A2P 10DLC = the carrier registration that lets business texts through. Without a registered Brand + Campaign, carriers block 100% of your texts. Needs a consent checkbox and a working STOP.

The headline: our headless setup is legit. The work isn't a rebuild — it's guarding the one webhook wire and passing the deliverability gates.

Chapter 04 · The Inventory

What's actually inside the account, counted live.

One agency, one sub-account (AnchorWorks · Miami). Everything below was read straight from the live account on Jul 9.

0
Dead funnels removed
0
Pipelines (consolidated)
0
Custom fields, foldered
0
Tags (cleanup underway)
Domains

Two, both on Cloudflare

myanchorworks.com — email sending + branded-link domain (lc.). Keep.
goanchorworks.com — the old test domain; being retired to a redirect once Ethan's link fix ships. The live site never depended on it.

Pipelines · fixed

Consolidated to the real engine

Demand → Conversion (SDR) → Revenue (AE) is the flow. The two strays — "Sales Pipeline" (default) and "LAS HVAC Funnel" (legacy) — were deleted, and the missing Client Success pipeline was built (5 stages, no-lost-deals "Nurture (Paused)" instead of a Lost bucket). ✅

Funnels remaining 1 folder · 5 calendars Websites 0 Workflows 2 folders + 5 · all 0 active Private integrations API v2 · KPI read-only Claude Code → GHL LeadConnector MCP · read+write Users 5 · 3 agency-admin (kept)
Chapter 05 · The Audit

Hyper-critical — but fair. Strong bones, a few loose ends.

Grade · was B+
A−

Climbing. Today we consolidated the pipelines, built Client Success, confirmed deliverability, and fixed the tag typo — the heavy levers. That moved it B+ → A−. What still stands between here and a clean A: the launch-gated P1s (webhook test + clearing test data), the tag naming pass (queued for the API), and the new survey-tracking gap in the next chapter.

What's genuinely good (don't touch)

SMS ready

A2P 10DLC compliant & verified — the #1 silent killer, already handled.

Email domain

Dedicated sending domain set up and listed clean.

Attribution

Full UTM + gclid + fbclid capture. You'll know where every lead came from.

Custom fields

94 fields, 10 folders, structured Leads→Sales→Scale scoring.

Security

Modern API v2 tokens; the KPI dashboard token is read-only.

Naming system

Workflows use real department prefixes (DEM / LAS / OPS / REV).

The findings — ranked, tap to open

The live quiz posts to a GHL inbound webhook, and the LAS — Master Intake workflow maps it into contacts. The repo showed slightly different field names than the GHL fields — if the mapping is off, quiz answers land nowhere with no error.

Do: submit one real test through las.myanchorworks.com, open that contact, confirm every field populated — before spending a dollar on traffic.

Everything in the account is test data. Harmless now — but the moment real leads arrive, test records poison your reporting (fake conversion rates, inflated counts).

Do: bulk-delete all test contacts/opportunities in one clean pass right before launch.

GHL sets DKIM + return-path on the sending subdomain, but DMARC lives on the root domain. Since 2024 (hard-enforced late 2025), Gmail/Yahoo reject unauthenticated bulk mail.

✅ Verified 2026-07-09: _dmarc.myanchorworks.com exists (p=none, reports to Chris); SPF on lc. includes Mailgun + LeadConnect; DKIM active in GHL. Only future tweak: move DMARC to p=quarantine after a couple weeks of monitoring.

Was 5 pipelines with 2 redundant, and no Client Success despite you expecting one.

✅ Done 2026-07-09: deleted "Sales Pipeline" + "LAS HVAC Funnel", and built Client Success (Onboarding → Active Delivery → Results/QBR → Renewal/Expansion → Nurture (Paused)). Clean set: Demand → Conversion → Revenue + Client Success.

24 tags, three naming styles, a typo (memember), and overlapping LAS staging schemes.

✅ Done: fixed the typo (→ "new community member"); confirmed the LAS Archetype field already exists (the doctrine "trait = field, not tag" is structurally in place).

Convention decided: standardize the whole account on snake_case — tags, field keys, and event names one style (matches the tracking layer). The ~15 renames + retiring the redundant archetype/stale tags are queued for the GHL API (LeadConnector MCP) after a Claude Code restart — far cleaner than the browser UI.

5 users; 3 are AGENCY-ADMIN (full access to everything incl. billing). Owner + tech lead make sense; review whether everyone else needs agency-level vs account-admin. Also: two closers with calendars (Justin Laird, Alexander Dragomer) aren't users yet.

Chapter 06 · Survey Tracking

Every question — even if they don't finish. Right now we track none of it.

You asked whether we capture each LAS survey answer (and completion), even for people who bail. I read the live quiz + the KPI repo — short answer: no. Everything fires once, at the very end.

The lead leak: if someone types their name, email & phone and then abandons mid-quiz, we get nothing — not the contact, not a single answer.

Today — one dump at the end

  • ×One webhook, fired only on the results page.
  • ×Contact info read at the end — abandoners send nothing.
  • ×No per-question, start, or partial events.
  • ×Zero analytics on the quiz — no GA4, GTM, Pixel, dataLayer.

What we want — progressive capture

  • Capture the lead on the first form's submit.
  • Send each answer as they go (partial captured).
  • quiz_started / question_answered / quiz_completed events.
  • GTM + GA4 (+ Pixel) installed so it all lands.

The fix — who owns what

Ethan · LAS repo

Instrument the quiz

Fire the lead on form-1, send each answer, add start/complete events. Task 1 (form-1 capture) stops the leak.

Tracking

Install GTM + GA4

On the site + las. subdomain; create the Meta Pixel. Reconcile with the GHL tracker so page-views don't double-count.

Claude · via API

Add GHL fields

las_completed + las_last_question_reached so partial POSTs have somewhere to land. Queued for after restart.

Dashboard

Store the events

A Supabase las_events table for per-question + completion, fed from GA4.

Spec for Ethan pushed → repo TRACKING-TODO.md Email drafted → ethan@ Field keys stay snake_case
Chapter 07 · The Gate

The checklist to clear before your first real lead.

Work straight down this list. Green = done in this session.

  • Dead GHL funnels removed done
  • Booking domain chosen — book.myanchorworks.com done
  • DMARC / SPF / DKIM confirmed on myanchorworks.com done
  • Pipelines consolidated; Client Success pipeline built done
  • Ethan repoints the LAS "Book Strategy Session" link → verify live
  • Progressive survey tracking shipped — every question + partials captured P1
  • Live test submission through the quiz → data confirmed landing on the contact P1
  • All test contacts + opportunities cleared P1
  • Tag naming standardized to snake_case; redundant archetype/stale tags retired via API
  • las_completed + las_last_question_reached fields created via API
  • book.myanchorworks.com stood up & closer calendars republished there