Run a gym · System 1 of 7 · The Lead Engine
The Lead Engine
The failure mode this prevents
An enquiry lands on Friday at 7:40pm through your Instagram ad. Nobody is watching that inbox on the weekend. Monday morning a staff member replies “Hi! What are you after?” and starts a text conversation that never asks for a tour time. By Wednesday the person has walked into the gym closer to their house, been shown around on the spot, and joined there. You paid for that lead, and the money left the building because there was no system, only good intentions.
The Lead Engine exists so that every enquiry, from every channel, hits the same machine: fast first response, a booking ask, a confirmed tour, a recovery path if they no-show, and a follow-up cadence that only stops on a yes, a no, or an unsubscribe.
The operating system
Write these down before you build anything; they are your numbers, not benchmarks.
Parameters you set
Your numbers, not benchmarks. Saved in this browser only — nothing you type here is sent anywhere.
The procedure
- One funnel. Every channel (ads, web form, DMs, phone, walk-in) lands in one place with a timestamp. If enquiries live in three inboxes, you do not have a lead engine, you have three leaks.
- First reply asks for the booking. The only job of the first response is to offer two concrete tour times. Questions about goals come at the tour, not in a text thread. Operator experience We treat every enquiry as booked-or-lost: if the first reply does not ask for a time, it failed, whatever else it said.
- Confirm and remind. Booking confirmation immediately, reminder the day before or the morning of (your choice, but pick one and automate it).
- Tour with a spine. Ask what they want before you walk. Walk them to the part of the gym that answers it. Finish sitting down with a clear next step: join now, trial, or a booked follow-up. A tour that ends standing at the door with “have a think” is an unfinished tour.
- No-show recovery. A no-show gets a same-day message and a next-day call Operator experience that is our cadence; set your own via NOSHOW_ATTEMPTS, then joins the slow drip. No guilt, one rebooking offer per touch.
- Follow-up until resolution. Unbooked and undecided leads get
FOLLOWUP_TOUCHESspaced touches, then the drip. Every lead ends in exactly one state: joined, declined, or unsubscribed. “Went quiet” is not a state, it is a dropped ball. - Weekly review. Once a week, look at the numbers from the audit below. Ten minutes, same day every week.
Diagnostic: the response-time and follow-up self-audit
Pull your last 10 enquiries, all channels, and enter them below. The audit compares every row against the targets you set above — no external benchmark is shown, because none exists that we would cite. Saved in this browser only.
| # | Channel | Enquiry arrived | First human reply | After hours? | Tour booked | Showed | Touches since last contact | Current state | Reply time |
|---|---|---|---|---|---|---|---|---|---|
| 1 | — | ||||||||
| 2 | — | ||||||||
| 3 | — | ||||||||
| 4 | — | ||||||||
| 5 | — | ||||||||
| 6 | — | ||||||||
| 7 | — | ||||||||
| 8 | — | ||||||||
| 9 | — | ||||||||
| 10 | — |
What we could not verify, and what varies by gym
There is no published, sourced Australian benchmark for “correct” enquiry response time or lead-to-join conversion in gyms; anyone quoting one at you should be asked for the primary source. Conversion depends on your channel mix, price point, brand and suburb, which is exactly why this system runs on your own ten-enquiry sample rather than an industry number. Script wording is deliberately not supplied: a 24/7 budget gym and a coaching studio should not sound the same.
Boundary: spam law applies to your follow-up
If you are texting and emailing leads, consent and unsubscribe rules under Australian spam law apply. We are not going to paraphrase the Act at you: check the ACMA guidance on the Spam Act and make sure your drip has a working opt-out.
Do this now
Email me this system
The Lead Engine as a working document, with the parameter sheet and the 10-enquiry audit table ready to fill in. So it does not die in a browser tab.