Case study · Auto detailing · Three locations
Three detailing shops, one booking engine
An eco steam auto-detailing company runs three locations, each with its own GoHighLevel sub-account. I set the accounts up so that customers book from a priced service menu, every car has its own record, quotes and estimates move the pipeline on their own, every booking ends with a review request, and partner discounts protect themselves.
The system
From a ringing phone to a five-star review
Detailing prices depend on the car, the package and the extras, and most jobs used to start with a phone call. Customers now pick the service and add-ons themselves, larger jobs get a quote that moves itself through the pipeline, and every finished booking leads to a review request. The same building blocks are used at all three locations.
Comes in
GoHighLevel
Goes out
System 2 · Data model
One owner, many cars
Households bring two or three vehicles. With everything on one contact record, nobody could tell which car got the ceramic coat.
- A Cars custom object keyed on License Plate Number, marked unique so the same car cannot be added twice.
- Year, Make, Brand, Model and Color fields are kept in a Car Info folder.
- The association is Owner (1) ↔ Car (many) with Contacts. One customer can have any number of linked vehicles, and each has its own details and history.
- A 2nd Vehicle Offer funnel turns that into revenue by offering a discount on the next car.
System 3 · Quotes & invoices
Estimates that move the board
Custom jobs such as dry-steam interiors and fleet ceramic coating were quoted by email, with no record of where each quote stood.
- Step 1: the dry-steam request form creates an opportunity at Quote Requested, alerts the team and texts the customer that an estimate is on its way.
- Step 2: an Estimate Status = Accepted trigger from GHL Estimates moves the deal to Estimate Approved and notifies the team.
- An Invoices pipeline (Drafted → Sent → Awaiting Payment → Overdue) and invoice-reminder templates handle payment follow-up.
System 4 · Outreach
Follow up the way the lead asked
Leads met through in-person outreach prefer different channels. Without a system, follow-up depends on someone remembering.
- The Client Outreach form creates an opportunity, updates and tags the contact, and moves the deal to Follow-Up Pending.
- After a wait, a condition reads Preferred Contact Method and creates the right task: call, email or visit.
- The pipeline runs Lead Captured → Follow-Up Pending → In Progress → Presentation Requested → Appointment Booked, with Nurture and Lost exits.
System 5 · Reputation
Every booking asks for a review
Happy customers rarely leave a review unless someone asks at the right moment.
- Review Request (24 h delay): when a service booking is confirmed, the workflow waits, then sends an email and an SMS to a branded feedback page.
- Feedback is collected first, and a "How could we improve?" form gives unhappy customers a private channel.
- The same workflow runs at both active locations.
System 6 · Subscriptions & partners
Recurring plans, and discounts that protect themselves
Partner-only employee pricing was shared by coupon code, so anyone who had the code could book at the discount.
- Each program has its own folder with the same pattern: sign-up form → tag → community group invite → follow-up email.
- Programs: a Discount Club, a Signature subscription, and employee plans for three partner organizations, each with its own landing page.
- Coupon guard: when a partner code is redeemed, the workflow checks the partner-portal tag. Members go through. Anyone else has the appointment cancelled automatically, and the team and the customer are told why.
System 7 · Voice AI
A receptionist for the calls nobody picks up
The inboxes are mostly inbound calls, with thousands of unread threads across three locations. Every missed call is a car going somewhere else.
- "Misty" is a custom Voice AI agent on GPT-4.1. It answers questions, qualifies requests and books detailing, paint correction and ceramic coating.
- Scripted flow: confirm a known caller, find out the purpose of the call, then either gather name, best number and service type or answer the question and offer a booking.
- Guardrails for voice: one question at a time, phone numbers read digit by digit and confirmed, likely transcription mistakes fixed from context, and no made-up answers.
- Actions: call transfer, appointment booking and end call. After the call it writes First Name, Last Name and Email back to the contact.
- For now a missed-call text-back covers the gap. The agent is built and ready to go on a phone number.
Structure
Where the volume is
Booking tags and review requests carry most of the volume. The quote and outreach pipelines handle fewer, higher-value jobs. The third location has a 5-step guided booking funnel (Select Service → Car Size → Focus & Upsell → Calendar → Thank You) built from chained forms, so the price matches the vehicle before a time is chosen.
Busiest workflows
Total enrollments, both active locations, October 2026
Reviews by location
Public reviews and average rating
| Asset | Across the three accounts |
|---|---|
| Workflows | 23 published (10 + 13 + 0). Drafts are left out |
| Booking | Services module: 7 categories, 23 services, 35 add-ons. Meeting calendars are not used |
| Custom objects | Cars (Owner 1 ↔ Car many), with a unique plate key |
| Pipelines | Client Outreach (7 stages), Dry Steam Booking (7), Invoices (4) |
| Funnels | 46: service pages, ceramic coating, rug steam cleaning, 2nd-vehicle offer, gift cards, memberships, partner landing pages, guided booking |
| Forms | 29: location website forms, dry-steam and fleet ceramic quotes, outreach, subscriptions, review feedback, chained booking forms |
| 19 templates. Seasonal campaigns: ceramic launch, Instagram giveaway, Labor Day | |
| AI | Custom voice receptionist built. A chat-assistant template and a post-call workflow are staged |
How it's built
Tools and design choices
Price by the car
Price and time ranges plus scoped add-ons let customers book accurately without a phone call.
Model the real world
One owner, many cars, each with its own record and a unique plate.
Let the system move the deal
Form submissions and accepted estimates move opportunities forward automatically.
Protect the discount
Partner pricing checks itself, and a booking that doesn't qualify is cancelled with an explanation.