# GoHighLevel — Hyper-Critical Audit *AnchorWorks sub-account (`OwJn0vZV9wqqxHFqyC68`) · Audited live 2026-07-09 · Yardstick: `GHL-BEST-PRACTICES-2026.md`* > **Framing:** Everything in the account is **test data — no real leads yet** (you're in cold outreach, no replies). So this is a **pre-launch readiness audit**, not a "clean up real data" job. Empty pipelines and 0 active workflow enrollments are expected. The bar here is: *what must be true before your first real lead lands.* --- ## Bottom line (plain English) Your GHL is **built better than most** — genuinely. Someone thought about attribution, scoring, deliverability, and modern security. It's not a mess. What it needs before go-live is **hygiene and a few verifications**, not a rebuild. Think "detail the car before the test drive," not "fix the engine." **Overall grade: B+.** Strong bones, a handful of loose ends. Nothing on fire. --- ## What's genuinely GOOD (don't touch these) - ✅ **SMS is A2P 10DLC compliant** and your number (+1 786-876-6970, "Team SMS Number") is **A2P Verified.** This is the #1 thing that silently breaks GHL accounts, and yours is done. - ✅ **Dedicated email sending domain** is set up (`lc.myanchorworks.com`) and listed without errors. - ✅ **Attribution is dialed in.** A whole "ATTRIBUTION" custom-field folder captures every UTM + Google click ID (gclid) + Facebook click ID (fbclid) + campaign/source/funnel. Most operators never do this. It means when leads come, you'll actually know where they came from. - ✅ **Custom fields are organized** — 94 fields in 10 folders, including structured LAS scoring (`las_leads_score`, `las_sales_score`, `las_scaling_score` — matching your Leads→Sales→Scale model). - ✅ **Modern, least-privilege API security.** You're on **API v2.0 Private Integrations** (the old v1 API keys died Dec 2025). The KPI dashboard token is explicitly **read-only**. That's exactly right. - ✅ **Workflows use department prefixes** (DEM / LAS / OPS / REV) — a real naming system, not chaos. - ✅ **Funnels are now clean** (cleanup done today — only the Strategy Call Calendars remain). --- ## Findings, prioritized ### 🔴 P1 — Do before your first real lead **1. Verify the quiz → GHL data pipe end-to-end (the single most important wire).** The live LAS quiz posts to a GHL inbound webhook, and the **LAS — Master Intake** workflow (22 test enrollments) maps that data into contacts. The repo showed payload fields (`las_score`, `las_grade`, `las_q01…`) with *slightly different names* than the GHL custom fields (`las_leads_score`, etc.). If the workflow's field mapping is off by a name, **quiz answers land nowhere and you won't get an error.** → **Fix:** Submit one real test through `las.myanchorworks.com`, then open that contact in GHL and confirm every score/answer field populated. Do this before spending a dollar on traffic. **2. Clear the test data before go-live.** Test opportunities ("Webhook Test", "Chris Campbell", "Tester Test Campbell") sit in the Demand Pipeline; test contacts are throughout. Harmless now, but the moment real leads arrive, test records **poison your reporting** (fake conversion rates, inflated counts). → **Fix:** Bulk-delete all test contacts/opportunities in a single pass right before launch. (Do it once, cleanly, not piecemeal.) **3. Confirm DMARC on `myanchorworks.com`.** GHL sets DKIM + return-path on the sending subdomain, but **DMARC lives on the root domain** and is the piece people forget. Since Feb 2024 (and hard-enforced since late 2025), Gmail/Yahoo reject unauthenticated bulk mail. → **Fix:** Confirm a `_dmarc.myanchorworks.com` record exists (at least `p=none` to start, ideally `p=quarantine`). Ethan can check Cloudflare DNS in 2 minutes. ### 🟠 P2 — Should fix soon (cleanliness + correctness) **4. Pipeline sprawl + a missing pipeline.** There are **5 pipelines**: Demand, Conversion (SDR), Revenue (AE) — your real engine — plus **"LAS HVAC Funnel"** (older, LAS-specific stages that overlap the new ones) and **"Sales Pipeline"** (looks like GHL's untouched default). And the **"Client Success" pipeline you mentioned doesn't exist.** → **Fix:** Decide the canonical set. Likely: keep Demand→Conversion→Revenue, **retire "Sales Pipeline"** (default) and **"LAS HVAC Funnel"** (fold into Demand), and **build the Client Success pipeline** you thought was there. Fewer, clearer pipelines = cleaner reporting. **5. Tag hygiene — inconsistent conventions + overlap.** 24 tags, three different naming styles mixed together: spaces (`las stage 1`), underscores (`las_newlead`), hyphens (`nurture - stage 3`). Plus a **typo** (`new community memember`), **overlapping LAS staging schemes** (`las stage 1-5` vs `las_archetype_01-05` vs `las completed`), and a likely-stale `las_source_typeform` (your live quiz posts by webhook, not Typeform). → **Fix:** Pick ONE convention (recommend lowercase-kebab with a domain prefix, e.g. `las-stage-1`, `dem-active-opp`). Also: **`las_archetype_*` is a permanent trait, not a temporary state — that belongs in a custom field, not a tag** (your own doctrine: tags = state, fields = facts). **6. Workflow naming separator is inconsistent.** Prefixes are great, but separators aren't: `DEM — …`, `LAS — …`, `OPS — …` use an em-dash while `REV | …` uses a pipe. → **Fix:** Standardize on one separator across all workflows (and stages). Tiny thing, but it's the difference between "system" and "close enough." **7. Rename the "Revenue Engine Workflows" folder.** The workflow folder is named **"Revenue Engine Workflows"** — "Revenue Engine" is **retired positioning** (current = "Revenue Engines for the Trades"). It's internal-only, but it's the kind of stale label that leaks. → **Fix:** Rename to match current doctrine. ### 🟡 P3 — Tighten when you have a minute **8. Three AGENCY-ADMIN users — review least privilege.** 5 users total; **3 are AGENCY-ADMIN** (Chris Campbell, Chris Downs, Ethan). Agency-admin = full access to *everything* including billing and agency settings. Owner (you) and tech lead (Ethan) make sense. **Chris Downs at agency-admin is worth a second look** — most team members should be ACCOUNT-ADMIN (scoped to this sub-account) unless they truly need agency-wide control. → **Fix:** Downgrade anyone who doesn't need agency-level to account-admin. **9. Closers without user accounts.** You have REV strategy calendars for **Justin Laird** and **Alexander Dragomer**, but neither is a GHL user. Their bookings may not notify them or route correctly. → **Fix:** Add them as users (account-admin/user) or confirm their calendars hand off properly. **10. Rotate the new "AnchorWorks CLI" token + confirm its scope.** Ethan created an "AnchorWorks CLI — Claude Connector" private-integration token today. Best practice: least-privilege scopes + rotate every ~90 days. → **Fix:** Confirm it's not broader than needed; set a rotation reminder. **11. Minor: team on two email domains.** Users are split across `@myanchorworks.com` and `@anchorworkscollective.com`. Not a problem, just a consistency note as you standardize the brand. --- ## Pre-launch readiness checklist (gate before real traffic) - [ ] Live test submission through `las.myanchorworks.com` → data confirmed landing on the contact (P1-1) - [ ] Ethan's LAS "Book Strategy Session" link repointed to `myanchorworks.com/strategy-session/` (email sent 2026-07-09) — verify live - [ ] DMARC record confirmed on `myanchorworks.com` (P1-3) - [ ] All test contacts + opportunities cleared (P1-2) - [ ] Canonical pipelines decided; Client Success pipeline built (P2-4) - [ ] Tag convention standardized; archetype moved to a custom field (P2-5) - [ ] `book.myanchorworks.com` stood up + closer calendars republished there (see `GHL-INVENTORY.md`) - [ ] User privileges reviewed (P3-8); missing closers added (P3-9) --- ## Areas covered (for the record) Funnels · Websites (empty) · Domains · Workflows (+folders) · Pipelines (all 5) · Opportunities · Email Services / deliverability · Phone System / A2P · Private Integrations (security) · Tags · Custom Fields · Users (My Staff). ## Not yet opened (low risk — verify if time allows) - **Calendars** settings detail (confirmed 5 REV calendars + `strategy-session-round` round-robin exist via Domains/Funnels; didn't open availability/notification config) - **Forms** detail (4 embedded on the site: market report, webinar, playbook, do-not-sell — confirmed via website repo; didn't open field-level config) - **Conversations / Reputation / Calendars notifications** — not audited