How to build an AI lead scoring and smart routing system inside GoHighLevel — so you only call leads who are ready to buy.
Inspired by Michael Reimer's "Your Sales Team is Wasting 80% of Their Time"
For every 100 leads that come in, maybe 10 are ready to buy right now. Your team treats them all exactly the same — flying blind, dialing from the top of the list. Meanwhile, the golden opportunities go stale and call your competitor instead.
The fix: A system that watches every move a lead makes, scores them automatically, and alerts you the moment they're hot — before they even click away to check your competitor's site.
Every action adds points. Email opens, link clicks, page visits, form fills, video watches. Points = buying intent.
GHL watches everything — which pages they visit, which emails they open, which links they click, how much video they watch.
When a score crosses a threshold, the system fires — notifies you, creates a task, moves the lead to "hot" in your pipeline. Instant.
You'll see a scoring profile in Draft Mode. Click "+ Add New Rule" for each action. Set your point values, then click Publish and Save.
| Action | Points |
|---|---|
| Email opened | +1 |
| Email link clicked | +3 |
| Trigger link clicked | +5 |
| Contact replied (any channel) | +5 |
| Form submitted | +10 |
| Survey submitted | +5 |
| Appointment booked | +20 |
| Payment received | +25 |
| Unsubscribed | -15 |
| Email bounced | -5 |
Once published, scoring is live across all contacts automatically.
The native scoring rules don't include "page visited" — so you build separate workflows for high-value pages.
GHL has a Video Tracking trigger for videos on funnel pages. Set completion thresholds:
| Video Progress | Points |
|---|---|
| 25% watched | +5 |
| 50% watched | +10 |
| 75% watched | +15 |
| 100% watched | +20 |
Tip: Turn off "Show Progress Bar" in video settings so viewers can't skip ahead.
Trigger links are trackable URLs you embed in emails, SMS, and DMs. When clicked, they fire workflows and add to the contact's score.
| Link | Points When Clicked |
|---|---|
| "View Pricing" link | +5 |
| "Watch Demo" link | +5 |
| "Book a Call" link | +10 |
SMS, Email, Google My Business messages, Facebook/Instagram DMs, WhatsApp.
They do NOT work on funnel pages or external websites. For those, use the Page View trigger instead.
This is the crystal ball. When scores cross thresholds, things happen automatically.
For client websites that aren't hosted in GHL (WordPress, custom sites, etc.), add the tracking script before the closing </body> tag:
How it works: Page views are tracked anonymously. Once the visitor submits a GHL-compatible form, a contact is created and all prior anonymous page views retroactively link to that contact. Workflows then fire.
Forms must be real HTML <form> elements (not div-based page builder widgets).
iFrame/widget forms are not supported for tracking.
No contact is created from anonymous visits alone — a form submission is required.
Scores only go up. A lead active 6 months ago still shows high.
Workaround: Build a weekly scheduled workflow: if last activity > 30 days, subtract 5 points. Creates artificial decay.
Can't separate "engagement score" from "ICP fit score" natively.
Workaround: Use native Engagement Score for behavior. Create a custom numeric field "ICP Score" managed via Math Operations for demographic/fit scoring. Combine both in If/Else workflow logic.
The Manage Scoring rules don't include "page visited" as an action type.
Workaround: Build separate workflows per page (shown in Step 2 above).
External website visitors are anonymous until they submit a form.
Workaround: The external tracking script stores visits and retroactively links them on form submission.
Every GHL reseller is selling "you get a CRM." Nobody is selling intelligence.