GHL's native quiz builder does not support custom question types like image cards, sliders, or ranking grids for scored lead qualification. Adding a scored quiz to a GoHighLevel funnel requires either the native Quiz Builder with its percentage-based tier system or custom HTML code pasted into a Custom Code element. This walkthrough covers the full workflow for both paths: the infrastructure you set up inside GHL before the quiz exists, how the quiz sends scored data to the CRM, how workflows route leads based on that score, and how to verify everything works before real traffic arrives.
The quiz builder approach you choose determines the ceiling on your lead segmentation quality, but the GHL setup underneath is the same regardless. The official GHL quiz builder documentation covers the native builder's interface. This article covers the infrastructure that makes any quiz produce pipeline results. Start there.
Set up custom fields before touching the quiz
Every data point the quiz captures needs a destination inside the GHL contact record. If the field does not exist when the data arrives, GHL drops it silently. No error message. No partial save. The data is gone.
Open the sub-account. Navigate to Settings, then Custom Fields. Create the following fields at minimum for a scored lead qualification quiz:
Quiz Score (number): Stores the calculated numeric score. Use a number field type, not text, so workflow conditions can compare values with greater-than and less-than operators.
Lead Temperature (single-line text or dropdown): Stores the tier label that the scoring logic assigns. Values are typically Hot, Warm, or Cold, but you can use any labels that match your pipeline stage names. A dropdown field with predefined options is cleaner for filtering.
Key Answer Fields (varies): For each quiz answer the business owner wants visible in the contact record without opening the full quiz response, create a dedicated field. A realtor quiz might store Timeline (text: "0 to 3 months," "3 to 6 months," "6 to 12 months"), Budget Range (text: "$200K to $350K," "$350K to $500K"), and Property Type (text: "single family," "condo," "townhome"). The remaining 12 questions in a 16-question quiz contribute to the score calculation but do not need individual fields.
Name every custom field with a consistent prefix so they sort together in the CRM. Use quiz_score, quiz_temperature, quiz_timeline, quiz_budget. The prefix groups them visually and prevents naming collisions with fields from other integrations.
Build the pipeline before the first lead arrives
The pipeline is where scored leads land after the workflow processes them. Create a pipeline (or use an existing one) with stages that correspond to the quiz's scoring tiers.
A 3-tier scoring system needs at minimum: Hot Lead (score above threshold, ready to book), Warm Lead (score in mid-range, needs nurturing), and Cold Lead (score below threshold, long-term follow-up). If your scoring model uses 5 or 6 tiers, create matching stages.
Each stage should have a clear definition: what score range qualifies a lead for this stage, what the business owner should do when they see a lead in this stage, and what automated follow-up the system sends. Write these definitions before the quiz goes live. A pipeline with unlabeled or ambiguous stages creates confusion when the business owner opens it for the first time and sees 30 contacts distributed across stages with no context.
Add a final stage called Booked (or whatever matches the client's language for a scheduled appointment). The workflow will move leads to this stage when the calendar booking event fires. The pipeline should tell a complete story from quiz submission to booked appointment without the agency owner having to explain it.
Connect the quiz output to the CRM
This is the step where the two approaches diverge.
Path A: GHL native quiz builder
Build the quiz under Sites, then Quizzes. Configure your questions, assign point values, and set up categories and scoring tiers. The quiz builder uses a 0 to 100 normalized scoring scale. Tiers (Low, Medium, High) are defined as percentage ranges.
To get quiz data into the CRM, embed the quiz on a funnel page using the Integrate button (which provides an iframe embed code), then use the Quiz Submitted workflow trigger to fire automation when a contact completes the quiz. The trigger can filter by quiz name, overall score, or category score. Inside the workflow, use Update Contact actions to write score values to your custom fields and a Pipeline Stage Change action to route the lead.
Path B: Custom HTML quiz code
Paste the quiz code into a Custom Code element on the GHL funnel page. The JavaScript inside the code handles scoring on the client side: it assigns point values per answer, applies any weighting or conditional logic, calculates the total, determines the temperature tier, and packages all data into a payload.
The payload reaches GHL through one of two methods. A webhook sends an HTTP POST to a GHL webhook URL you create in the sub-account under Automations, then Workflows, then Webhook trigger. The JSON payload maps each field to a custom field key. A hidden form submission uses an invisible GHL form on the same funnel page. The JavaScript fills the hidden input fields and triggers the form's native submit event. The form submission enters the CRM like any other form, and a Form Submitted workflow trigger handles the routing.
The webhook path is more flexible: it can send computed values (composite scores, concatenated answer strings, timestamp data) that the native form structure does not support. The hidden form path is simpler to troubleshoot because it uses GHL's standard form processing pipeline.
Build the workflow that routes leads by score
Create a new workflow. Set the trigger to Quiz Submitted (for the native builder) or Webhook (for custom code with a webhook) or Form Submitted (for custom code with a hidden form).
Add an IF/ELSE condition that reads the quiz_score custom field:
Branch 1: quiz_score >= 70. This is a hot lead. The workflow adds a tag (quiz_hot), moves the contact to the Hot Lead pipeline stage, sends an internal notification to the business owner with the contact name, phone number, and score, and enrolls the contact in the hot lead email sequence.
Branch 2: quiz_score >= 40 AND quiz_score < 70. This is a warm lead. The workflow adds a tag (quiz_warm), moves the contact to Warm Lead, and enrolls them in the nurture sequence. No internal notification fires immediately, but a reminder fires after 48 hours if the contact has not booked.
Branch 3: quiz_score < 40. This is a cold lead. The workflow adds a tag (quiz_cold), moves the contact to Cold Lead, and enrolls them in a long-term drip campaign with monthly check-ins.
The internal notification for hot leads is critical. The business owner needs to know within 60 seconds that someone ready to buy just completed the quiz. The notification should include the contact name, phone number, quiz score, and any key answer fields (timeline, budget) so the business owner can call without opening the CRM first.
For agencies working across multiple niches, the score thresholds and email sequences change per niche, but the workflow architecture stays identical. The structure is portable. The content is niche-specific.
Run a test lead through the entire system
Before sending any traffic, submit a test lead. Use a personal email address that is not already a contact in the sub-account. Complete every question in the quiz and submit.
Check the following in this exact order:
1. Contact record exists. Open Contacts and find the test submission. If the contact does not appear, the quiz-to-CRM connection is broken. For webhooks, verify the webhook URL is correct and the payload format matches. For hidden forms, verify the form fields are populated before the submit event fires.
2. Custom fields are populated. Open the contact record and check that quiz_score, quiz_temperature, and all key answer fields contain the expected values. If the score field is empty, the webhook payload key does not match the custom field key. The most common error is a case mismatch or an extra space in the field name.
3. Workflow triggered. Check the contact's workflow history. If the workflow did not fire, verify the trigger type matches the data submission method (Quiz Submitted trigger for native quizzes, Webhook trigger for webhooks, Form Submitted for hidden forms). Also confirm the workflow is published and active.
4. Pipeline stage is correct. Open the pipeline and confirm the test contact landed in the stage that matches their score. If a lead with a score of 85 is in the Cold Lead stage, the IF/ELSE conditions are misconfigured.
5. Email or SMS sent. Check the contact's conversation history. Confirm the first message in the sequence was sent or is queued for delivery.
6. Internal notification received. Check the business owner's email inbox, SMS, or in-app notifications for the hot lead alert. If the notification did not arrive, the notification step in the workflow is misconfigured or the recipient is wrong.
Three setup mistakes that break the funnel
Missing custom fields. The quiz sends data to field names that do not exist in the sub-account. GHL drops the data. The contact record shows a name and email but no score, no temperature, and no answer data. The workflow cannot route what it cannot read. Always create fields first, verify keys match, then test.
Workflow trigger mismatch. The quiz uses a webhook, but the workflow trigger is set to Form Submitted. Or the quiz uses the native builder, but the workflow trigger is Webhook instead of Quiz Submitted. The data enters the CRM but the workflow never fires. The lead sits in the pipeline's default stage (or no pipeline at all) and receives no follow-up. Always match the trigger type to the data submission method.
No internal notification for hot leads. The quiz scores a lead at 90 out of 100. The workflow moves them to the Hot Lead pipeline stage and sends an automated email. But nobody calls them. The business owner did not know the lead existed because no notification was configured. Hot leads go cold in hours, not days. The internal notification is the single most valuable step in the workflow. For more inspiration on what niche-specific quiz structures look like, see 5 niche quiz ideas for GHL agency owners.