Documentation
Everything you need to find local-business clients with GHLThemer — searching, scoring, and outreach — plus the optional GoHighLevel page-theming tools.
Quick Start
GHLThemer helps you find local businesses to pitch your services to — search, see who needs help, and reach out. You can run your first search in under two minutes.
Create an account
Find leads
Read the opportunity score
Reach out
(Optional) Brand their GHL pages
Lead Finder
Lead Finder helps you discover real local businesses you can pitch. Search any city for a business type — we pull live business data, automatically detect which leads are already running on GoHighLevel, and find publicly-posted emails on their websites so you can reach out using your own tools.
How searches work
Type a business type (e.g. plumbers) and a location (Austin, Texas or Miami, Florida). We return up to 60 real businesses per search with their name, category, address, phone, website, rating, and Google Maps link. Results are saved to your account — re-running the same search won’t cost extra credits for businesses you already have.
Free credits & paid packs
Every account gets 25 leads/month free, regardless of your theme plan. Credits reset on the 1st of each month. Need more? Paid credit packs are available from Billing → Leads in your dashboard — from a 40-lead Sample Pack up to a 2,000-lead Scale pack. Paid credits never expire and are used only after your free monthly allowance runs out. See the pricing page for pack prices.
Platform detection (Hot / Warm / Cold)
For each lead with a website, we automatically scan the homepage to detect which platform it’s running on:
- 🔥 Hot · GHL — Already on GoHighLevel. Easiest to pitch — you can demo a theme on their actual site.
- 🟡 Warm · Other CRM — On WordPress, Wix, Shopify, HubSpot, ClickFunnels, Webflow, Kajabi, etc. Pitch a move to GHL, then theme.
- ⚪ Cold — No detectable platform. Cold outreach starting from scratch.
- ❓ Unknown — Site blocked our scan or returned an error. Retry with the “Re-run detection” button.
Detection is best-effort. Some sites hide their stack or block automated requests. Treat results as “detected,” not guaranteed.
Opportunity score (who’s worth pitching)
Every lead with a website also gets an Opportunity score from 0–100— lower means more problems, which means more to pitch. Alongside the score you see the exact issues we detected and a coarse estimated project value.
- 🔴 0–40 — big opportunity; several problems worth fixing.
- 🟡 41–70 — some opportunity.
- 🟢 71–100 — healthy site, little to pitch.
We check real, verifiable things: no SSL, slow on mobile (via Google PageSpeed), not mobile-friendly, no contact form, and weak or few Google reviews. Use Sort → Biggest opportunity and the Opportunity (≤50) filter to surface the easiest sales first, and the Scan morebutton to score the rest of your list. Scoring is free — it never uses lead credits.
Email discovery
From the same website fetch, we look for publicly-posted business emails — first in mailto: links on the homepage, then on common contact pages (/contact, /about). We prefer on-domain addresses (e.g. info@thierbusiness.com) over generic free-mail addresses. About 30–50% of sites publish a usable email — that’s normal. Empty means no public email was found.
Export to CSV
Click Export CSV to download all your leads with Platform, Temperature, Email, Opportunity Score, Issues, and Estimated Value columns. Open in Excel, Google Sheets, or your own outreach tool. The file is UTF-8 with BOM so accented characters render correctly.
Reaching out
Found leads with emails? Use the Contact button to draft an AI email and send it from your own inbox, or Export CSV for your own campaign tool. See Contacting Leads for the full how-to.
Contacting Leads
For any lead with an email, click Contact. Add a one-line note of what you offer (saved for next time), pick a tone (Professional, Friendly, or Direct), and hit ✦ Generate with AI — we draft a short, personalised cold email that pitches your services to that business (it never mentions GHLThemer). Edit it freely, then send it your way: Gmail, Outlook, your default mail app, or Copy to paste anywhere. The lead is then marked Contacted.
- Why does it open my inbox instead of sending? So the email goes from your address with your reputation — no shared sending domain, no deliverability risk, and the reply comes straight to you.
- Why no open/reply tracking? Because it sends from your own inbox, we can’t see opens or replies. “Contacted” simply records that you reached out (and how).
- Does it work on Mac and Windows? Yes — Gmail, Outlook, and Copy are browser-based; the default-mail option opens Apple Mail on Mac (and your default app on Windows when one is set).
- Does it cost credits? No — drafting outreach emails is included with Lead Finder and does not use your monthly AI color-suggestion credits. There’s just a generous daily limit to prevent abuse.
- Can I follow up? Yes — once contacted, the lead shows Contact again with the date. Click it to draft a short follow-up (most replies come from the 2nd or 3rd nudge).
Prefer a campaign tool instead? Export CSV from Lead Finder gives you Platform, Temperature, and Email columns for Mailchimp, Apollo, and the like. Either way — Contact feature or export — GHLThemer never sends messages for you. Cold email/SMS is regulated (GDPR/PECR in Europe, CAN-SPAM in the US, stricter for individuals than companies), and you’re responsible for how you contact the businesses in your list.
Installing the Embed Code
The embed code is two script tags. The first sets your site token; the second loads the GHLThemer script.
<script>window.__THEME_SITE__ = 'YOUR_SITE_TOKEN';</script>
<script src="https://ghlthemer.com/theme.js"></script>Replace YOUR_SITE_TOKEN with the token shown on your site card. You can also click the token chip to copy it directly.
Where to paste it in GoHighLevel
- Open GoHighLevel and go to your Funnel or Website.
- Click Settings (gear icon at the top).
- Scroll to Custom Code → paste into the Head Tracking Code box.
- Save and reload your funnel page — the theme is now live.
mybrand.com or the public funnel link likeapp.ghl.io/...). Each site you create in GHLThemer is locked to ONE domain — pasting the embed on a different domain has no effect (this prevents abuse).How the script works
When a visitor loads your GHL page, theme.js:
- Temporarily hides the page (prevents style flash).
- Fetches your compiled CSS from
ghlthemer.com/api/css/[token]. - Injects it into the page as a
<style>tag. - Shows the page — all within milliseconds.
A built-in 3-second safety timeout ensures your GHL page always renders even if GHLThemer is temporarily unreachable.
Multiple sites per brand (one site = one domain)
Each site has its own token and is locked to exactly one domain. If a brand has multiple funnels on different domains, add a separate site for each one. They all share the same theme — designed once in the Theme Editor — but each gets its own embed code tied to its own domain.
This protects you against the embed being copied and pasted on funnels you don't own. The CSS only loads when the page domain matches the one you registered.
Theme Editor Reference
The Theme Editor is where you design your brand's look. Changes are compiled into CSS on save and delivered to all sites under that brand within 30 seconds.
Colors
| Field | Description |
|---|---|
| primary_color | Main brand color — buttons, links, accents. |
| secondary_color | Supporting color for secondary elements. |
| background_color | Page background. |
| text_color | Body text color. |
| navbar_bg | Navigation bar background. |
| navbar_text | Navigation bar text and icon color. |
| button_text_color | Text color inside buttons. |
| input_border_color | Border color on form input fields. |
| link_hover_color | Color applied to links on hover. |
Typography
| Field | Description |
|---|---|
| heading_font | Google Font name for headings (h1–h6). |
| body_font | Google Font name for body text and paragraphs. |
| font_weight | Default font weight (400, 500, 600, 700). |
Layout
| Field | Description |
|---|---|
| border_radius | Corner rounding: none, sm, md, lg, full. |
| button_style | Button shape preset: solid, outline, ghost. |
| section_padding | Spacing above/below page sections. |
Custom CSS
The built-in CSS editor (powered by CodeMirror) lets you write arbitrary CSS that gets appended after all auto-generated styles. Use it for overrides that the theme fields don't cover.
CSS Priority order (highest wins):
- CSS variables from theme fields
- Auto-generated styles
- Global patch (applied by GHLThemer admin across all users)
- Your custom CSS
- Emergency CSS (highest priority override)
CSS Snippets
The Snippets panel offers 20+ pre-built CSS blocks grouped by category (forms, buttons, navbar, etc.). Toggle any snippet on to add it to your theme instantly — no manual typing required.
Theme History
Every time you save, a snapshot is stored. The History drawer (clock icon) shows your last 10 saves — click Restore on any entry to roll back without losing your current version.
Theme Templates
GHLThemer ships with 30+ professionally designed theme templates covering 12 niches — medical, real estate, fitness, legal, finance, education, home services, dental, restaurant, beauty & spa, automotive, and photography.
Applying a template
Templates can be applied in two places:
- Theme Editor — click the Templates button in the top-right corner of the editor. A side sheet opens with the full gallery. Click Apply template on any card to instantly load its colors, font, and border radius into the editor. Then save as usual.
- Templates page — go to Dashboard → Templatesto browse all templates. Pick a template and choose which brand to apply it to. You are redirected to that brand's Theme Editor with the template pre-loaded.
Free vs Pro templates
Templates marked Free are available on all plans. Templates marked Prorequire a paid plan. On a free plan the Pro template card shows an “Upgrade to apply” lock — all other filtering and browsing still works.
Filtering
Use the All / Free / Pro toggle and the niche pills to narrow the gallery. Both filters combine — you can show, for example, only free medical templates.
AI Color Suggestions
The AI Color Suggestions feature uses GPT-4o mini to generate three professionally matched color palettes based on the brand's industry and vibe. Each palette covers all four theme color fields — primary, secondary, background, and text.
How to use it
Open the Theme Editor for a brand
Click the AI Suggestions button
Select industry and vibe
Generate and apply
Credit system
AI suggestions consume one credit per generation (not per palette — each click of “Generate palettes” uses one credit and returns three palettes).
| Field | Description |
|---|---|
| Free | 3 AI credits per month. |
| Basic | 10 AI credits per month. |
| Pro | 50 AI credits per month. |
| Agency | Unlimited AI credits. |
Credits reset automatically at the start of each calendar month. The modal shows how many credits remain. When credits are exhausted, the generate button is replaced with an upgrade prompt (on paid plans, wait until the monthly reset).
Analytics
Every site you create automatically gets analytics tracking. No extra configuration, no third-party scripts — GHLThemer tracks page views, form interactions, and calculates conversion rates entirely server-side.
What is tracked
| Field | Description |
|---|---|
| Page views | Recorded each time a visitor loads your GHL page with the embed code active. |
| Form clicks | Recorded when a visitor interacts with a form on the page (clicks a submit button or input). |
| CVR (Conversion Rate) | Calculated as form clicks ÷ page views × 100, shown as a percentage per site. |
Viewing analytics
Open a brand from your dashboard and click the Analyticstab. You'll see aggregate stats for the last 30 days across all sites, plus a per-site breakdown table with individual CVR scores.
Conversion score badge
Each site gets a Conversion Scorebadge you can share with clients as proof of performance. The badge is a small embeddable widget that shows the site's current CVR — useful for reports and proposals.
Agency & White-label
The Agency plan is built for teams managing themes across multiple GHL accounts. It adds team collaboration, a brand portal, and white-label branding.
Team Members
Agency owners can invite up to 5 team members from Dashboard → Team. Each member gets their own login and can manage brands and themes under the shared workspace. The agency owner is responsible for all activity by their team.
Brand Portal
You can grant your customers access to a white-labelled portal where they can view and (optionally) edit their own brand's theme. Portal access is managed per-brand from the brand detail page.
Portal permission levels:
- View only — the portal user can see their theme but not change it.
- Can edit — the portal user can modify colors, fonts, and custom CSS.
- Can view theme — granular toggle for specific sections.
White-label Branding
The brand portal presents GHLThemer under your own branding — your logo, your domain, your company name. Your customers never see the GHLThemer name unless you choose to show it.
Plans & Limits
GHLThemer offers four plans. Each plan enforces limits on the number of brands, sites per brand, and access to advanced features.
| Field | Description |
|---|---|
| Free | Limited brands & sites. Free templates only. 3 AI color credits/month. No custom CSS editor. |
| Basic | More brands and sites. All templates (free + pro). 10 AI color credits/month. Custom CSS enabled. |
| Pro | Higher limits. All templates. 50 AI color credits/month. Analytics dashboard (CVR + form clicks). Theme history. |
| Agency | Unlimited brands & sites. All templates. Unlimited AI color credits. Full analytics. Team members (up to 5). Brand portal. White-label. |
For current pricing and exact limits, see the Pricing page.
Free Trial
New accounts get a 7-day free trial of all Pro features automatically — no credit card required. After the trial, the account reverts to the Free plan unless you upgrade. Day 5, 6, and 7 reminder emails are sent so you have time to decide.
Payment Options
International payments are processed by LemonSqueezy. Pakistan-based payments are processed by Safepay. Your payment gateway is selected automatically based on your country at signup.
Troubleshooting
Theme is not loading on my GHL page
- Confirm the embed code is in the Head Tracking Code section, not the body.
- Check the site token in the first script tag matches exactly what's shown in your GHLThemer site card.
- Open your browser DevTools → Network tab → filter for
api/cssand confirm the request returns 200. - Make sure you saved your theme in the editor at least once.
I see a white flash before the page loads
- The embed must be in the head, not the body. If it's in the body, the page renders before the script runs.
- Verify no other scripts on the page are delaying execution.
My custom CSS is not applying
- GHL pages often use high-specificity selectors. Add
!importantto rules that are being overridden. - Use browser DevTools to inspect which rule is winning and match or increase specificity.
Theme shows old styles after I save
The CSS endpoint caches for 30 seconds. Hard refresh your GHL page (Ctrl+Shift+R or Cmd+Shift+R) or wait 30 seconds and reload normally.
My plan features are not unlocked after payment
- Wait 1–2 minutes for the payment webhook to process.
- Refresh the billing page — it will show your active plan.
- If still on the wrong plan after 5 minutes, open a support ticket from the dashboard.
Portal invite email was not received
- Ask your client to check their spam folder.
- Confirm the email address is correct in the portal invite dialog.
- You can re-send the invite from the portal management page.
FAQ
How many leads do I get for free?
Every account includes 25 free leads every month — website opportunity scoring and AI outreach drafting included. Need more? Buy one-time credit packs from Billing → Leads; paid credits never expire and are used only after your free monthly leads run out.
Do I have to sell websites to use Lead Finder?
No. Lead Finder helps you find local businesses to pitch whatever service you offer — web, funnels, SEO, ads, GoHighLevel setup, or marketing. The opportunity score simply shows who is underperforming online, so your outreach is specific and relevant.
Is GHLThemer an official GoHighLevel product?
No. GHLThemer is an independent product and is not affiliated with, endorsed by, or a marketplace application of HighLevel Inc. It works by injecting CSS — no GHL API access or OAuth is used.
Does GHLThemer require access to my GHL account?
No. GHLThemer never asks for your GHL credentials, API key, or OAuth token. The only thing that touches your GHL account is the 2-line embed code you paste yourself.
What happens if GHLThemer is temporarily down?
The theme.js script has a built-in 3-second safety timeout. If GHLThemer cannot be reached, the script cancels and your GHL page loads normally — without any theme, but without breaking either. We target 99.9% uptime for the CSS delivery endpoint.
Can I use one theme across multiple GHL funnels?
Yes. All sites under a brand share the same theme. Add a site for each funnel or page group and paste the embed code with each site's unique token. When you update the theme, all sites update simultaneously.
Can I cancel my subscription at any time?
Yes. Cancel any time from the Billing page in your dashboard. Your plan stays active until the end of the current billing period, then reverts to Free. No cancellation fees.
Can I pay another way besides credit card?
Yes. Message us on WhatsApp or open a support ticket from your dashboard. We accept bank transfers and other manual payment methods, and we'll activate your plan for 30 days as soon as the payment lands. When the 30 days are up, contact us again or pay through the regular gateway from your billing page.
Is my data safe?
All data is stored in Supabase (PostgreSQL) with row-level security enforced at the database layer. Every user can only access their own data. No GHL credentials are ever stored.
I have a question not answered here.
Open a support ticket from your dashboard (log in first) or email us at support@ghlthemer.com.