Problem
A skin clinic needs to turn enquiries into booked consultations and, later, treatments — without losing leads who never book, chasing cancellations by hand, or counting a consultation attendance as a sale.
A GHL consultation-to-treatment system for a fictional Manchester aesthetics studio: a branded landing page feeds native lead capture and the booking calendar, one opportunity tracks each client journey from New Lead to Treatment Converted, and single-purpose workflows handle booking, cancellations, no-shows, attendance, and post-conversion — plus a closing sequence for clients still deciding, consent-based SMS, a filtered review request, rebooking and 90-day reactivation, a Facebook comment auto-reply, and scheduled social posts.
Problem
A skin clinic needs to turn enquiries into booked consultations and, later, treatments — without losing leads who never book, chasing cancellations by hand, or counting a consultation attendance as a sale.
Solution
Eleven single-purpose GoHighLevel workflows (WF01–WF10, plus WF02B), organised into numbered folders, connect the landing page, form, and calendar to one opportunity per client journey. Booking, cancellation, no-show, and attendance each have their own rules, and only an explicit treatment conversion moves an opportunity to Won. Text messages and marketing emails only go to clients who ticked the matching consent box, and every name, link, and address comes from Custom Values so the system can be re-branded for a new clinic.
Result
A lead can move from a landing-page enquiry through booking, attendance, and treatment conversion on a single opportunity, with recovery sequences for cancellations and no-shows — verified in a 12-case regression that now stands at 12 passed, 0 failed after the UTM and reactivation cases were re-run live on 7 October 2026. The upgraded consent, closing, conversion, and rebooking workflows were also run live with real test inboxes.
Start with the three system branches, then open the parts you want to inspect.
Screenshots from the Fairy Skin Studio GHL sub-account: the landing page and lead form, the numbered workflow folders, the builder for each workflow, the opportunity pipeline after regression, and the Facebook comment auto-reply.
Click to view full size
Click to view full size
Click to view full size
Click to view full size
Click to view full size
Click to view full size
Click to view full size
Click to view full size
Click to view full size
Click to view full size
Click to view full size
Click to view full size
Click to view full size
Click to view full size
Click to view full size
Click to view full size
Click to view full sizeA full regression pass (20 September 2026) ran 12 test cases against the live GHL sub-account using fictional UK test contacts, checking each result inside GHL rather than trusting workflow status alone. Ten cases passed, none failed, one was blocked (UTM attribution) and one was not tested (reactivation was not built yet). Both were re-run live on 7 October 2026 after the upgrade and passed. No workflows were changed during testing. Test emails used non-deliverable example addresses, so real email delivery is not claimed. WF07 was built after the regression run and is verified by one live comment reply only. The 27 September upgrade (consent checks, WF02B, the review filter, WF08, and WF09) was run live on 7 October with three new test contacts and real test inboxes: every consent check took the right branch, emails were delivered, and two small gaps were fixed (WF10 and the WF09 removal). Its text messages still need a phone number to deliver. The finished build was saved as a snapshot, test-imported into a blank sub-account on 6 October, and refreshed to v3 on 7 October.
| Test Area | What We Verify | Result |
|---|---|---|
| FSS-REG-001 — New lead intake | Form submission creates the contact, applies the lead and unbooked tags, opens one New Lead opportunity, and enrols WF01 | PASS — contact, tags, opportunity, and WF01 enrolment all confirmed inside GHL |
| FSS-REG-002 — Happy-path booking | Booking moves the same opportunity to Consultation Booked, removes the unbooked tag, takes the contact out of WF01, and enrols WF02 | PASS — no duplicate contact or opportunity; appointment Confirmed |
| FSS-REG-003 — Showed | Marking the appointment Showed moves the opportunity to Consultation Completed and keeps it Open | PASS — stayed Open (not Won), no duplicate opportunity, WF02 removed, WF05 ran |
| FSS-REG-004 — Treatment conversion | Manual move to Considering Treatment, then Treatment Converted / Won on the same opportunity, fires WF06 | PASS — same opportunity marked Won, converted tag added, WF06 enrolled |
| FSS-REG-005 — Cancelled | A cancelled appointment starts the WF03 rebooking sequence without moving the opportunity to Won | PASS — WF03 enrolled; the opportunity stays Consultation Booked / Open by design |
| FSS-REG-006 — No-show | A no-show starts WF04 (not WF03) without moving the opportunity to Won | PASS — WF04 enrolled, WF03 untouched, opportunity not Won |
| FSS-REG-007 — Rebook | A cancelled contact who rebooks keeps one contact and one opportunity, exits WF03, and re-enters WF02 | PASS — new appointment on the same contact; WF03 removed; still one opportunity |
| FSS-REG-008 — Duplicate / re-entry protection | Resubmitting the form for an active lead creates no second opportunity and does not restart WF01 | PASS — no second opportunity, WF01 enrolment count unchanged. Tested for one open lead only |
| FSS-REG-009 — Unbooked lead | A lead who submits the form but never books keeps the unbooked tag with a New Lead opportunity | PASS — tags, opportunity, and WF01 follow-up confirmed; no appointment created |
| FSS-REG-010 — Attribution (Facebook UTM link) | GHL captures utm_source, utm_medium, and utm_campaign from the campaign link | PASS (re-run 7 Oct 2026) — hidden UTM fields were added to the form; three test submissions saved utm_source, utm_medium, and utm_campaign exactly, and they appear on the owner dashboard. (First run on 20 Sep was blocked: the form had no UTM fields yet) |
| FSS-REG-011 — Reactivation guardrails | Dormant-lead reactivation rules | PASS (re-run 7 Oct 2026) — a converted client with marketing consent entered WF08 and is waiting for the day-28 rebooking email; a converted client without consent was stopped at the consent check; booking a new appointment removed the client from WF08 (WF10) |
| FSS-REG-012 — Final regression | Final state has no unintended Won records, no duplicate contacts or opportunities, and workflow counts that reconcile with the scenarios | PASS — 7 opportunities (3 Won: 1 test conversion plus 2 pre-existing), 12 contacts, 9 appointments, all six regression workflows still published and unmodified |
| WF07 — Facebook Comment Auto-Reply | A comment on the Fairy Skin Studio Facebook page receives an automatic reply | Verified live with one test comment (reply visible on the page). Built after the regression run, so it is not part of FSS-REG-001 to 012 |
| Upgrade build check (27 Sep) — consent, WF02B, WF06 rating filter, WF08, WF09 | Each new or changed workflow is wired correctly: triggers, consent checks, branches, and Custom Value links | PASS live (7–9 Oct 2026) — WF01: a consented lead got the day-1 follow-up email on time, a non-consented lead got the booking email only. WF09: treatment-plan email delivered, the day-2 check-in email arrived on day 2, and converted clients are removed. WF06: thank-you email delivered, then the day-2 aftercare email. WF02: booking confirmation and the 24-hour reminder email delivered for a client with no SMS consent, and no SMS was attempted. SMS still needs a phone number |
| Snapshot test-import (6 Oct) | The saved snapshot loads into a blank sub-account with every workflow and folder intact | PASS — all [MS] workflows (WF01–WF09) imported; Custom Values arrive empty and are filled during client setup |
Share how your clinic handles enquiries today and I'll map where a GHL pipeline and workflows like these can take over the repetitive follow-up.