skills/sales-gohighlevel/SKILL.md
GoHighLevel (HighLevel) platform help — all-in-one agency/SMB business OS: CRM + sales pipelines, funnels/websites, email/SMS/WhatsApp, workflows, calendars, reputation, payments, memberships, conversation AI, and white-label SaaS resale (gohighlevel.com). Covers the v2 REST API (base services.leadconnectorhq.com, OAuth 2.0 or Private Integration Tokens, required dated API-Version header), 50+ outbound webhooks (Ed25519 X-GHL-Signature), and sub-accounts/snapshots. Use when building a v2 API or webhook integration, a Private Integration Token's scopes are too narrow, hitting the 100-requests/10-second rate limit, syncing contacts/opportunities/conversations into or out of GHL, verifying webhook signatures, setting up sub-accounts or snapshots for clients, configuring SaaS-mode rebilling, or choosing between the Starter, Unlimited, and SaaS Pro plans. Do NOT use for choosing a CRM across vendors (use /sales-crm-selection) or funnel strategy across tools (use /sales-funnel).
npx skillsauth add sales-skills/sales sales-gohighlevelInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
If references/learnings.md exists, read it first for accumulated platform knowledge.
What are you trying to do?
Agency or single business? Reselling to clients (sub-accounts, white-label, SaaS mode) vs running your own one business — drives plan + architecture.
Where does data need to flow? Stay in GHL / sync to a CRM or warehouse / drive an external app — drives API vs webhook vs Zapier.
Skip-ahead rule: if the user's prompt already provides enough context, skip to Step 2.
| If the question is about... | Route to... |
|---|---|
| Choosing a CRM across vendors (GHL vs HubSpot vs Attio…) | /sales-crm-selection {question} |
| Multi-step funnel strategy across tools | /sales-funnel {question} |
| Email marketing strategy (deliverability, sequences) | /sales-email-marketing {question} |
| SMS marketing strategy / compliance | /sales-sms-marketing {question} |
| Appointment-scheduling strategy across tools | /sales-meeting-scheduler {question} |
| Reviews / reputation strategy | /sales-customer-reviews {question} |
| Chatbot / conversational marketing strategy | /sales-chatbot {question} |
| Connecting GHL to other tools (architecture) | /sales-integration {question} |
When routing, give the exact command.
Read references/platform-guide.md for the full reference — the Capture/Nurture/Close/Evangelize/Reactivate module map, sub-account/location/snapshot model, pricing and plan gates, integrations, and quick-start recipes (sync contacts via the v2 API + Private Integration Token; verify an Ed25519 webhook; agency sub-account + snapshot rollout).
Read references/gohighlevel-api-reference.md for the v2 API — base https://services.leadconnectorhq.com, OAuth 2.0 vs Private Integration Tokens, the required Version: 2021-07-28 header, the 100-request/10-second rate limit, meta/startAfterId pagination, core endpoints (contacts, opportunities, conversations/messages, calendars, payments), and the webhook signature scheme (Ed25519 X-GHL-Signature + public key; legacy RSA X-WH-Signature deprecating 2026-07-01).
Answer the user's question using only the relevant section. Don't dump the full reference.
Focus on the user's specific situation:
services.leadconnectorhq.com) and always send the Version: 2021-07-28 header — v1 keys/endpoints are legacy.locationId (sub-account) — agency-level calls differ.describe-style lookups, and use exponential backoff on 429.X-GHL-Signature + the published public key). The legacy RSA X-WH-Signature is deprecated 2026-07-01 — migrate before then. Make handlers idempotent (retries fire up to 12× with backoff).If you discover a gotcha, workaround, or tip not covered in references/learnings.md, append it there.
Best-effort from research (2026-06) — review these, especially plan-gated features and pricing which change frequently.
locationId (sub-account scope). Agency-level vs location-level tokens and calls are different — a token scoped to one sub-account can't read another.Version: 2021-07-28 header is mandatory on v2 calls — omitting it returns errors. (Other dated versions exist; pin one.)X-GHL-Signature; legacy = RSA-SHA256 X-WH-Signature, deprecated 2026-07-01. Verify with the published Ed25519 public key, not the old RSA one.rest.gohighlevel.com/v1 API keys still float around in tutorials; build on v2 (services.leadconnectorhq.com)./sales-crm-selection — CRM comparison and selection (GoHighLevel vs HubSpot, Attio, Salesforce, and others)/sales-funnel — Funnel strategy across tools (GoHighLevel is one of the funnel builders covered)/sales-email-marketing — Email marketing strategy (sequences, deliverability)/sales-sms-marketing — SMS marketing strategy and compliance/sales-meeting-scheduler — Appointment scheduling strategy across tools/sales-customer-reviews — Reputation and review-generation strategy/sales-integration — Connecting GoHighLevel to other tools (webhooks, Zapier, Make, middleware)/sales-do — Not sure which skill to use? The router matches any sales objective to the right skill. Install: npx skills add sales-skills/sales --skill sales-do -a claude-codeUser says: "When someone signs up in my app, I want to create or update their contact in my GoHighLevel sub-account and tag them. What's the cleanest API setup?"
Skill does: Recommends a Private Integration Token (Sub-account settings → scoped to Contacts write) over a full OAuth app for an internal tool. Shows the v2 call: POST https://services.leadconnectorhq.com/contacts/ with Authorization: Bearer <PIT>, Version: 2021-07-28, Content-Type: application/json, and a body including locationId, email, tags, and customFields (Recipe 1 in references/platform-guide.md). Notes the 100-req/10s limit and to upsert by email to avoid duplicates.
Result: User has a scoped token and a working create/update-contact integration.
User says: "I'm receiving GoHighLevel webhooks but I'm not sure how to verify they're authentic, and some seem to arrive twice."
Skill does: Explains the payload shape (type, timestamp, webhookId, data) and verification: compute/verify the Ed25519 X-GHL-Signature against the published public key (legacy RSA X-WH-Signature is deprecated 2026-07-01). For duplicates, notes retries fire up to 12× with exponential backoff + jitter, so dedupe on webhookId and respond 2xx quickly (Recipe 2). Points to the Webhook Logs Dashboard for manual replay.
Result: User verifies signatures correctly and handles at-least-once delivery idempotently.
User says: "I run an agency with 20 clients. How should I set up GoHighLevel so each client has their own setup, and can I resell it under my brand?" Skill does: Maps it to Unlimited ($297) for unlimited sub-accounts + white-label, or SaaS Pro ($497) to resell GHL as your own SaaS with the SaaS configurator + Stripe rebilling. Recommends building one snapshot (pipelines, workflows, calendars, funnels) and deploying it to each client sub-account. Flags that SMS/email/phone usage is metered and SaaS-mode rebilling lets you mark it up. Result: User has a plan choice and a snapshot-driven multi-client architecture.
Symptom: Requests fail with unauthorized/forbidden errors or scope messages, even with a valid-looking token.
Cause: Token type/scope mismatch — a Private Integration Token under-scoped (e.g., read-only on a write call), a token scoped to a different sub-account/locationId, an expired OAuth access token, or a missing Version header.
Solution: Re-issue the Private Integration Token with the exact scopes needed and confirm it's the right sub-account; for OAuth, refresh the access token and confirm the granted scopes. Always send Version: 2021-07-28 and the correct locationId. Build on v2 (services.leadconnectorhq.com), not legacy v1.
Symptom: Bulk syncs or busy integrations start returning 429s. Cause: The burst limit is 100 requests / 10 seconds per resource/location (plus a daily cap). Tight loops and unbatched syncs blow through it. Solution: Add client-side throttling to stay under 100/10s, use exponential backoff with jitter on 429, cache rarely-changing lookups, and spread work across locations/time. For large migrations, queue and pace the writes rather than firing them all at once.
Symptom: Signature checks fail, or your system processes the same event multiple times.
Cause: Verifying against the wrong scheme/key (the RSA X-WH-Signature is deprecated 2026-07-01) or not handling retries — failed deliveries retry up to 12× with backoff.
Solution: Verify the Ed25519 X-GHL-Signature with the published public key. Respond 2xx fast (do slow work async) so GHL doesn't retry, and dedupe on webhookId to make processing idempotent. Use the Webhook Logs Dashboard to inspect/replay deliveries.
tools
Wizlogo (wizlogo.com) platform help — a budget online logo maker (template/style-variation, marketed as "AI") plus a hub of FREE branding tools (business-name, blog-name and slogan generators, business-card maker, invoice generator, color converter, domain search). The pricing traps: the FREE logo is PERSONAL-USE-ONLY; the two cheap paid tiers are RASTER PNG/JPG only — Single (~€39.99 one-time) and Unlimited (~€3.99 per WEEK, recurring) — and VECTOR (SVG/PDF/EPS) is gated to the ~€299.99 Enterprise tier, which also bundles human designer edits and a social kit. Transparent PNG is on all paid plans. Use when making a Wizlogo logo, understanding free-vs-paid or personal-vs-commercial use, which tier unlocks vector/SVG for print, the weekly-subscription billing trap, its free name/slogan generators, or whether it has an API (UI-only — no public API, webhooks, Zapier or MCP). Do NOT use to just generate the business name (use /sales-namelix) or to compare/validate branding tools (use /sales-idea-validation).
tools
VistaPrint platform help (vistaprint.com, a Cimpress company) — the small-business design + print + digital-marketing platform: a free AI Logomaker (4 generations, 60 more after free sign-up) exporting SVG/PNG/PDF at 4000x4000 with no watermark, a free Brand Kit, business cards/flyers/signage/apparel/promo print, and a website builder. THE RIGHTS TRAP: VistaPrint states NO intellectual-property rights transfer on an AI-generated logo — you get usage rights but CANNOT register it for trademark or copyright; only its human designer service transfers full IP. Use when making a VistaPrint logo, asking if you own or can trademark it, running out of AI logo credits, printed colors not matching the screen, bleed/DPI/font file-prep rejections, or asking whether VistaPrint has an API (the consumer site does not — automation runs through the parent Cimpress Open partner-fulfilment API). Do NOT use for Vista Social scheduling (use /sales-vistasocial) or comparing logo tools market-wide (use /sales-idea-validation).
tools
Turbologo (turbologo.com) platform help — a budget AI/DIY logo maker: enter a business name + industry, pick icons and colors, and it proposes logo concepts you refine in an in-browser editor, then pay a one-time fee to download (designing is free, previews are watermarked, downloading is the paywall). Vector SVG/PDF is gated to the mid tier and up; the top tier adds a brand kit (business cards, letterheads, email signatures, social assets). Use when generating a logo in Turbologo, choosing which download tier to buy, vector SVG vs raster PNG, removing the free watermark, the time-limited edit-after-purchase window, pay-to-download pricing questions, whether an AI logo is yours to trademark, or whether Turbologo has an API to bulk-generate logos (it is UI-only — no public API, webhooks, Zapier, or MCP). Do NOT use to generate the business name (use /sales-namelix), compare or validate branding tools across the market (use /sales-idea-validation), or build wider marketing creative (use /sales-canva).
tools
Online Logo Maker (onlinelogomaker.com) platform help — a long-standing free/freemium DIY logo maker: build the mark yourself from icons, shapes, text, and fonts — MANUAL/template-based, NOT enter-a-name-get-AI-concepts. The free pack downloads a LOW-RES 300px PNG with a background; vector SVG, transparent PNG, and 2000px high-res are gated to a one-time lifetime Premium pack (not a subscription). The free tier's commercial-use rights are disputed by reviewers — clean ownership effectively needs Premium, and a shared-icon mark can be non-distinctive. Use for building/editing a logo here, free download vs Premium, vector SVG or transparent PNG, one-time pricing, commercial-use/trademark terms, near-namesake confusion (NOT LogoMaker.com / LogoMakr / Logomakerr.ai), or whether it has an API (UI-only — no API, webhooks, Zapier, MCP). Do NOT use to generate the business name (use /sales-namelix), compare branding tools across the market (use /sales-idea-validation), or build wider creative (use /sales-canva).