Building an AI Lead Scoring System in Bubble.io and GoHighLevel
Lead scoring transforms a flat list of contacts into a prioritised pipeline where your sales team always knows which leads to call first. Built on Bubble.io and GoHighLevel with Claude AI doing the scoring, this system enriches, scores, and routes every lead within 60 seconds of arrival.
System Architecture Overview
| Component | Platform | Role |
|---|---|---|
| Lead intake | GoHighLevel / Bubble.io form | Captures lead details |
| Enrichment | Apollo.io via Make.com | Adds firmographic data |
| AI scoring | Claude API via Make.com | Scores against ICP criteria |
| Score storage | GoHighLevel custom fields | Stores score, tier, reasoning |
| Routing | GoHighLevel workflow | Assigns to rep based on tier |
| Dashboard | Bubble.io | Displays scored pipeline for leadership |
Building the Scoring System
Step 1: Define your ICP scoring criteria
Before building anything: document your Ideal Customer Profile as a scorable rubric. For a service business, a typical rubric: Company size 10-200 employees (20 points), Industry in target list (20 points), Role is economic buyer or champion (20 points), Has a stated timeline within 90 days (20 points), Has a budget signal − mentioned price or asked about cost (10 points), Inbound source is referral or organic (10 points). Total: 100 points. Tier A = 75+, Tier B = 50-74, Tier C = 25-49, Tier D = under 25. Document this rubric before writing the Claude prompt — the prompt encodes the rubric.
Step 2: Configure GoHighLevel custom fields
In GoHighLevel Settings > Custom Fields, create: AI_Score (Number), AI_Tier (Text), AI_Score_Summary (Textarea), AI_Enriched_Industry (Text), AI_Enriched_Company_Size (Text), AI_Next_Best_Action (Text), AI_Scored_At (Date). These fields will be written by Make.com after each scoring run. The score and tier fields should be visible on the contact record so sales reps can see the qualification instantly.
Step 3: Build the Make.com enrichment and scoring scenario
Trigger: GoHighLevel Contact Created webhook. Module 1: Apollo Enrich — pass the contact’s email domain or company name to Apollo.io to retrieve company size, industry, technology stack, and LinkedIn data. Module 2: Claude API HTTP request — send the original contact fields plus the Apollo enrichment data with the scoring prompt: ‘Score this lead against our ICP criteria. Contact data: [paste all fields]. Enrichment data: [paste Apollo data]. Scoring rubric: [paste your rubric]. Return a JSON object: {score: number 0-100, tier: A/B/C/D, score_summary: two sentence explanation, next_best_action: one sentence recommendation, enriched_industry: the industry category, enriched_company_size: the size range}.’ Module 3: GoHighLevel Update Contact — write each JSON field to the corresponding custom field.
Step 4: Build the routing workflow in GoHighLevel
In GoHighLevel Automation: create a workflow triggered by the AI_Tier field being updated. Branch by tier: Tier A — create an urgent task for the senior sales rep, send a Slack notification, add to the hot pipeline. Tier B — create a standard follow-up task for a sales rep, add to the warm pipeline. Tier C — add to a nurture sequence, no immediate rep task. Tier D — add to long-term nurture, no rep involvement. The routing happens automatically within seconds of scoring — the rep’s task queue fills with prioritised leads without any manual triage.
Step 5: Build the Bubble.io leadership dashboard
A Bubble.io application (separate from GoHighLevel) that connects to GoHighLevel via the API and displays the scored pipeline for leadership visibility. Data pulled from GoHighLevel: all contacts, their AI_Score, AI_Tier, and pipeline stage. Dashboard views: pipeline by tier (how many A/B/C/D leads this week), score distribution over time (is our lead quality improving?), conversion rate by tier (are Tier A leads actually converting at higher rates?), and rep performance by tier (which rep converts Tier A leads most consistently). This data view drives the strategic decisions about which channels generate the highest-quality leads.
📌 The lead scoring system produces its maximum value when the ICP criteria are refined over time. At 90 days: compare the AI tier at lead creation to the actual conversion outcome for every lead. Which tier actually converted? If Tier B leads are converting as well as Tier A: the scoring criteria need tightening. If almost no Tier C leads are converting: the criteria are working well and Tier C routing can be even more automated. The scoring system gets smarter with deliberate quarterly review.
How accurate is AI lead scoring compared to human judgment?
AI lead scoring is more consistent than human judgment — it applies the same criteria to every lead regardless of the time of day, the rep’s current mood, or the recency of the last conversation. It is less accurate than the best human judgment for individual complex leads — a senior rep who has spoken with a contact and assessed their buying intent, urgency, and personality fit has access to signals the AI cannot see. The optimal system: AI scoring for initial prioritisation and routing, human judgment for the final close decision and for overriding AI scores when the rep has additional context.
Can I build this without Make.com using only Bubble.io?
Yes, with some limitations. Bubble.io can call the Claude API directly using the API Connector — the scoring workflow can run within Bubble.io when a form is submitted or when a backend workflow triggers. The Apollo enrichment requires either Make.com or a Bubble.io backend workflow making HTTP calls to the Apollo API directly. The GoHighLevel integration is simpler via Make.com but can also be done via Bubble.io’s API Connector calling the GoHighLevel API. SA Solutions can design either architecture — Make.com is the recommended approach for its visual debugging and error handling capabilities.
Want an AI Lead Scoring System Built?
SA Solutions builds end-to-end lead scoring systems — GoHighLevel configuration, Make.com automation, Claude AI scoring, and Bubble.io analytics dashboards.