GoHighLevel Portfolio Build
Home Services Lead Capture & Estimate Booking System
I built an end-to-end demonstration system for a home-services business. It captures quote requests, organizes leads in a CRM pipeline, allows customers to schedule estimates, and automatically updates opportunities after booking.
The Problem
Fragmented lead intake
Home-service leads can arrive through website forms, direct calendar bookings, referrals, calls, and advertising platforms. Without a connected CRM process, records may be duplicated, missed, or left in the wrong pipeline stage.
The Solution
One connected GoHighLevel system
I created a structured GoHighLevel system with a three-step funnel, booking calendar, sales pipeline, and two-branch workflow. The automation finds and updates an existing opportunity or creates one when a customer books directly.
Three-Step Funnel Structure
One funnel, three connected steps.
The funnel guides customers from their initial quote request through scheduling and a final confirmation — all inside a single GoHighLevel build.

Customer Journey
From first click to a booked estimate.

Request a Quote
Customers submit their contact information, property type, requested service, preferred schedule, and estimated budget.

Book Your Estimate
Customers select an available date and 30-minute appointment slot in the correct GMT+8 timezone.

Booking Confirmation
The final page confirms that the estimate was scheduled and tells the customer to check their email.
CRM Foundation
Organized lead and opportunity management.
The system uses separate contact and opportunity fields so customer information remains organized while each sales opportunity can store service-specific details.
- Contact custom fields
- Opportunity custom fields
- Smart lists
- Contact tags
- CSV importing
- Email-based duplicate matching
- Six-stage sales pipeline
- Contact and appointment activity

Automation Logic
A workflow that handles both entry paths.
Customers do not always enter through the same source. Some submit the quote form first, while others may book an estimate directly. The workflow supports both situations.
- 1
Appointment Confirmed
Trigger fires when a calendar booking is confirmed.
- 2
Find Latest Open Opportunity
Search this contact for an open opportunity.
- 3
If Found → Estimate Scheduled
Move the existing opportunity forward.
- 4
If Not Found → Create Opportunity
Create a new opportunity for the direct booking.
When an open opportunity exists, the workflow updates it instead of creating a duplicate. When no opportunity exists, it creates one for the direct calendar booking.

End-to-End Testing
Verified from submission to pipeline update.
Automated Pipeline Update

Workflow Execution Proof

- A quote submission created one CRM contact.
- The form created an open opportunity.
- The calendar booking triggered the workflow.
- The workflow found the existing opportunity.
- The opportunity moved automatically to Estimate Scheduled.
- The confirmed appointment remained attached to the opportunity.
- The execution log completed successfully.
Responsive Design
Designed for desktop and mobile.
The quote form, calendar, and confirmation pages were checked at phone width to ensure the customer journey remains readable and usable on smaller screens.

Mobile Estimate Booking
Skills Demonstrated
- GoHighLevel
- CRM Setup
- Contacts
- Custom Fields
- Smart Lists
- CSV Imports
- Opportunity Pipelines
- Forms
- Calendars
- Workflow Automation
- Funnel Building
- Responsive Design
- Testing and Troubleshooting
Need a better lead follow-up system?
I build practical CRM and automation systems that help service businesses capture, organize, and follow up with leads more consistently.