Back to the build library
Fitness & wellness
Starter

Member Referral and Guest Pass

Turn existing members into an acquisition channel with trackable guest passes, timed asks and a referral pipeline that actually closes.

Industry
Fitness & wellness
Build effort
Starter
Typical time to launch
1–2 weeks
On this page
The problemWhat gets builtHow it runsAutomations in detailWhat changesBefore you start
Want this built for you?

Bring your stack to a call and we will scope it against how your business actually runs.

Book a call
01

The problem

Every gym, studio and wellness clinic will tell you referrals are their best lead source. Almost none of them run referrals as a channel. The mechanism is a laminated sign at the front desk, one line in the welcome email, and a coach who remembers to ask when the floor is quiet. The result is a trickle that nobody forecasts, nobody measures, and nobody can turn up when the month is light.

The money leaks in three specific places. The first is timing: the single best moment to ask a member to bring a friend is immediately after a win. A completed first month, a personal record, a five-star review, a renewed membership, and that moment passes in silence because nobody is watching for it. The second is the pass itself. A paper guest pass has no owner, no expiry and no follow-up, so the friend takes it home, puts it on the fridge and the lead quietly dies. Nobody knows it existed, so nobody chases it. The third is attribution. When a guest does convert, the referring member is rarely credited, which means the referrer never gets the reward or the thank-you, learns that referring is pointless, and never does it again. One broken loop kills the whole channel.

There is a fourth, quieter leak: guests who visit once and do not join. A guest pass redemption is the strongest buying signal a prospect can give. They physically came in. In most clubs that person leaves after their session and enters no follow-up sequence at all. The build below closes all four gaps: it asks at the right moment, issues a pass that is tracked to a named referrer with an expiry, chases the guest before and after the visit, and credits the referrer automatically so the loop runs again.

02

What gets built

Pipeline and stages

One pipeline, Referrals, with seven stages that follow the pass rather than the person:

  • Pass Requested: a member has submitted the referral form naming a friend.
  • Pass Sent: the guest has received the pass link by SMS and email.
  • Pass Viewed: the guest opened the pass page but has not booked.
  • Visit Booked: the guest has a session or tour on the calendar.
  • Visited: attendance confirmed by front desk or check-in.
  • Joined: guest converted to a paying membership.
  • Expired or Declined: pass lapsed unused, or the guest opted out.

Keep the referring member on the opportunity as a linked contact so credit never has to be reconstructed by hand.

Calendars

  • Guest Pass Session: the class or open-gym slot a pass can be redeemed against. Minimum notice 2 hours, maximum 21 days forward, capacity capped per slot so passes cannot swamp a class.
  • Guest Tour: 15-minute walkthrough with a membership advisor, for guests who would rather look around than train.
  • Join Consultation: 20-minute post-visit conversation, offered only to contacts tagged guest-visited.

Custom fields

On the contact record:

  • referred_by_contact_id: the referring member.
  • referred_by_name: plain text, used in message copy.
  • pass_code: short unique code shown on the pass and readable at the desk.
  • pass_issued_date and pass_expiry_date: expiry defaults to issue plus 21 days.
  • pass_status: issued / viewed / booked / redeemed / expired.
  • guest_relationship: friend, partner, colleague, family.
  • guest_goal: free text captured on the pass page, used by the coach.
  • referral_reward_status: pending / earned / fulfilled.
  • referral_count_total: number on the member record, incremented on each join.

Tags

  • referrer: any member who has submitted at least one referral.
  • referrer-advocate: three or more referrals that reached Visited.
  • guest-pass-holder, guest-booked, guest-visited, guest-joined, guest-expired.
  • referral-ask-sent: suppression tag so a member is not asked twice in 90 days.
  • reward-owed: drives the fulfillment task list at the desk.

Forms and pages

  • Refer a Friend form. Friend's first name, mobile, email, relationship, and one line on what they want to achieve. Two friends maximum per submission to keep it honest.
  • Guest Pass page: a funnel page personalized with the guest's first name and the referrer's name, showing what the pass includes, the expiry date, and a single embedded booking calendar. No navigation, no distractions.
  • Guest Visit Feedback form. Three questions sent after the session: how it went, what they are deciding between, and whether they want a call.
  • Reward Fulfillment internal form: staff confirm the referrer's reward was handed over, which flips referral_reward_status to fulfilled.

BO's role and guardrails

BO handles inbound replies on the referral and guest threads so staff are not tied to a phone.

  • BO may answer questions about what the pass includes, opening hours, what to bring, parking, and how to book or rebook.
  • BO books, reschedules and cancels guest sessions directly against the Guest Pass Session and Guest Tour calendars.
  • BO may confirm the pass expiry date and, once only, extend an expired pass by 7 days.
  • BO must not quote membership pricing, discuss contract terms, make medical or injury judgements, or promise a second free pass. Those route to a human with a task on the owner and a needs-human tag.
  • Any message containing “injury”, “pregnant”, “surgery”, “refund” or “cancel my membership” exits BO immediately and notifies the duty manager.

Numbers and channels

  • One dedicated local number for the club, used for all referral and guest SMS so replies thread to one inbox.
  • Email from a club address on an authenticated sending domain: SPF, DKIM and DMARC in place before launch.
  • SMS for the pass link, visit reminders and the reward confirmation. Email for the pass as a backup copy and for anything the guest may want to re-read.
  • All conversations land in the shared team inbox with the Referrals view filtered to open guest threads.
03

How it runs, step by step

  1. A member completes week four of their membership. The platform detects the milestone and BO sends the referral ask by SMS from the club number, with a link to the Refer a Friend form.
  2. The member taps through and submits one friend: name, mobile, email, relationship “friend”, and the note “wants to get back into lifting”. The member is tagged referrer and referral-ask-sent.
  3. A guest contact is created with referred_by_contact_id set to the member, pass_code generated, pass_issued_date set to today and pass_expiry_date set 21 days out. An opportunity opens in Referrals at Pass Requested.
  4. Within two minutes the guest receives an SMS and an email carrying the personalized Guest Pass page link. The opportunity moves to Pass Sent and the guest is tagged guest-pass-holder.
  5. The referring member gets a short confirmation: their friend has the pass, here is the expiry date, and they will be told when it is used.
  6. The guest opens the pass page. The page view fires a webhook that sets pass_status to viewed and moves the opportunity to Pass Viewed. If no booking follows within 24 hours, the viewed-no-booking nudge starts.
  7. The guest books a Saturday morning session from the embedded calendar. The opportunity moves to Visit Booked, tag guest-booked is applied, and the nudge sequence stops.
  8. A reminder goes out 24 hours before and again 2 hours before, each with the address, what to bring and a one-tap reschedule link. The assigned coach gets an internal notification carrying guest_goal and referred_by_name so the greeting is not cold.
  9. The guest arrives. Front desk marks the appointment attended, which sets pass_status to redeemed, tags guest-visited and moves the opportunity to Visited.
  10. Ninety minutes after the session ends, the guest receives a short SMS asking how it went with a link to the Guest Visit Feedback form, and an offer of a 20-minute Join Consultation.
  11. The referring member is told their friend came in and thanked by name. No reward is released yet. The reward is tied to a join, not a visit, and the message says so plainly.
  12. The guest books a Join Consultation, signs up on the spot, and the opportunity moves to Joined with tag guest-joined.
  13. The referrer's referral_count_total increments, referral_reward_status flips to earned, tag reward-owed is applied, and a task lands on the front desk to hand over the reward at the member's next visit. Staff confirm via the Reward Fulfillment form, which clears the tag.
  14. Ten days after the member's reward is fulfilled, the loop restarts: the member is asked whether there is anyone else they would bring, and the referral-ask-sent suppression resets after 90 days.
04

Automations in detail

1. Referral Ask at Milestone

Trigger: any of. Membership reaches day 28; a five-star review is submitted; a membership renews; a member is tagged pr-achieved by a coach.

Conditions: contact has an active membership, does not have referral-ask-sent, is not tagged do-not-contact, and has not submitted a referral in the last 90 days.

  • Wait until the next window inside quiet hours (09:00–20:00 local).
  • SMS: “Hey {{first_name}}, four weeks in and you're showing up: nice work. If there's someone you'd train with, we'll send them a free guest pass on us. Takes 30 seconds: {{referral_form_link}}”
  • Apply tag referral-ask-sent.
  • Wait 3 days. If no form submission, send email with subject “Bring someone with you”, body restating the pass and the form link.
  • Wait 4 days. If still no submission, exit silently. Do not chase a third time.

Exit: referral form submitted, contact replies STOP, membership cancels, or tag do-not-contact applied.

2. Pass Issue and Delivery

Trigger: Refer a Friend form submitted.

Conditions: branch on whether the guest's mobile already exists as a contact.

  • Branch A: new guest: create the contact, set referred_by_contact_id, referred_by_name, guest_relationship, guest_goal; generate pass_code; set pass_issued_date = today, pass_expiry_date = today + 21 days, pass_status = issued. Tag guest-pass-holder. Create opportunity in Referrals at Pass Requested.
  • Branch B: existing member or current lead in an open pipeline: do not issue a pass. Notify the referring member: “Looks like {{guest_first_name}} is already with us: we'll not double up. Thanks for thinking of us.” Create an internal task for the owner to review. End.
  • Wait 2 minutes, then SMS the guest: “Hi {{first_name}}, {{referred_by_name}} has sent you a free guest pass at {{club_name}}. Pick a time that suits you here: {{pass_page_link}} (pass code {{pass_code}}, valid until {{pass_expiry_date}}).”
  • Send the same pass as email with the pass page link and address.
  • Move opportunity to Pass Sent.
  • Notify the referrer by SMS: “Done: {{guest_first_name}} has their pass, valid until {{pass_expiry_date}}. We'll let you know when they come in.”

Exit: pass delivered, or Branch B completed.

3. Viewed, No Booking Nudge

Trigger: pass_status changes to viewed (webhook from the Guest Pass page view).

Conditions: no appointment exists on Guest Pass Session or Guest Tour for this contact.

  • Move opportunity to Pass Viewed.
  • Wait 24 hours. If still no booking, SMS: “{{first_name}}, saw you had a look. Easiest two options: Saturday 9am group session or a quick 15-minute walkthrough any weekday. Which suits? {{pass_page_link}}”
  • Wait 2 days. If still no booking, hand to BO for a conversational attempt: BO opens with “Any questions before you come in? Happy to answer anything.” BO may book directly.
  • Wait 3 days. If still no booking, email with the Guest Tour option framed as lower commitment: “Not ready to train yet? Come and have a look instead.”
  • Wait 4 days. Exit to the expiry countdown workflow.

Exit: any booking created, STOP received, or pass expires.

4. Pass Expiry Countdown

Trigger: scheduled daily scan comparing pass_expiry_date to today.

Conditions: pass_status is issued or viewed: never redeemed or booked.

  • At expiry minus 7 days, SMS: “{{first_name}}, your pass runs out on {{pass_expiry_date}}. Want me to hold a slot?”
  • At expiry minus 2 days, SMS: “Last couple of days on your pass. Two taps to book: {{pass_page_link}}”
  • On expiry day, set pass_status = expired, tag guest-expired, move opportunity to Expired or Declined.
  • Notify the referrer once: “{{guest_first_name}}'s pass has lapsed unused. No action needed. If they change their mind, just tell them to text this number.”
  • Wait 45 days, then add the guest to the general long-term nurture list with a single re-offer. One attempt only.

Exit: booking created at any point, or STOP received.

5. Visit Reminders and No-Show Recovery

Trigger: appointment booked on Guest Pass Session or Guest Tour.

Conditions: branch on appointment outcome after the slot time.

  • Immediately: confirmation SMS with date, time, address, parking and what to bring. Move opportunity to Visit Booked, tag guest-booked, stop workflow 3.
  • Internal notification to the assigned coach carrying guest_goal and referred_by_name.
  • 24 hours before: SMS reminder with one-tap reschedule link.
  • 2 hours before: SMS “See you at {{appointment_time}}. Ask for {{coach_first_name}} at the desk.”
  • Branch: attended: set pass_status = redeemed, tag guest-visited, move to Visited, start workflow 6.
  • Branch: no-show: wait 1 hour, SMS “Missed you today. No problem at all. Your pass is still good until {{pass_expiry_date}}: {{pass_page_link}}”. Wait 2 days, one more rebook attempt. Then return to workflow 4.

Exit: attended and handed to workflow 6, or two rebook attempts exhausted.

6. Post-Visit Conversion

Trigger: tag guest-visited applied.

Conditions: contact is not already a member.

  • Wait 90 minutes after the session end time. SMS: “{{first_name}}, how was it? If you want, book 20 minutes with {{advisor_first_name}} to talk through what joining would look like: {{join_consult_link}}”
  • Wait 1 day. Email the Guest Visit Feedback form: three questions, no more.
  • Branch on the feedback answer to “what are you deciding between?”: price routes to a human advisor with a task; timing schedules a check-in 21 days out; another gym sends the comparison page; no answer continues the default track.
  • Wait 2 days. SMS: “Still thinking it over? Happy to answer anything by text. No pressure.” BO handles replies within its guardrails.
  • Wait 4 days. Final email with the Join Consultation link and a single clear call to action.
  • Wait 10 days. Move opportunity to Expired or Declined, tag for the quarterly reactivation list, exit.

Exit: membership created: move to Joined, tag guest-joined, start workflow 7, or STOP received.

7. Referrer Credit and Reward Fulfillment

Trigger: opportunity moves to Joined.

Conditions: referred_by_contact_id is populated and the referrer still has an active membership.

  • Increment referral_count_total on the referrer.
  • Set referral_reward_status = earned, apply tag reward-owed.
  • SMS the referrer: “{{guest_first_name}} joined. Thank you: genuinely. Your reward is waiting at the desk, just ask next time you're in.”
  • Create a task on the front desk queue titled “Hand over referral reward: {{referrer_name}}”, due in 14 days.
  • Wait 7 days. If reward-owed is still present, remind the referrer and escalate the task to the duty manager.
  • On Reward Fulfillment form submission: set referral_reward_status = fulfilled, remove reward-owed, close the task.
  • If referral_count_total reaches 3, apply referrer-advocate and notify the owner for a personal thank-you, not an automated one.

Exit: reward marked fulfilled.

8. Advocate Re-Ask Loop

Trigger: referral_reward_status set to fulfilled.

Conditions: referrer has an active membership and no open referral opportunity.

  • Wait 10 days. SMS: “{{first_name}}, that worked out well. Anyone else you'd bring along? Same deal: {{referral_form_link}}”
  • If no submission after 5 days, exit. Remove referral-ask-sent on day 90 so the member re-enters workflow 1 at the next milestone.
  • If the member is tagged referrer-advocate, reduce the suppression window from 90–45 days. The people who refer will refer again, and the people who do not should be left alone.

Exit: new referral submitted, or suppression window reset.

05

What changes

Referrals stop being a hopeful sign on the wall and become a channel with a volume you can see, a conversion rate you can improve, and a cost you can compare against paid acquisition. The ask fires automatically at the moments members are most receptive, so the volume is no longer dependent on whether a particular staff member remembered.

Every pass has an owner, an expiry and a follow-up sequence, so guests who go quiet get chased three times instead of zero. Guests who physically walk in (the highest-intent prospects a club ever sees) enter a conversion sequence the same afternoon rather than walking out the door into nothing. And referrers get credited and thanked without anyone having to remember who sent whom, which is what keeps the loop running.

Metrics to watch

  • Referral rate: referrals submitted divided by members asked. Track by trigger type so you learn which milestone produces the best ask.
  • Pass-to-booking rate: passes sent that result in a booked visit. This is the number the nudge sequence moves.
  • Booking-to-visit rate: exposes guest no-shows, which are usually a reminder problem rather than an interest problem.
  • Visit-to-join rate: the health of the post-visit sequence and of the in-club experience itself.
  • Pass expiry rate: passes that lapsed unused. If this stays above roughly a third, the nudge copy or the booking friction needs work.
  • Median days from pass issued to visit: shortening this lifts every downstream number.
  • Reward fulfillment lag: days from earned to fulfilled. Long lags are the fastest way to kill advocacy.
  • Referrals per referrer and the size of the referrer-advocate segment: your compounding base.

Review these monthly in a single dashboard. The two levers with the most movement are usually the speed of the first pass message and the quality of the post-visit sequence.

06

Before you start

Prerequisites

  • A clean member list with cell numbers in a consistent international format and a reliable flag for active versus canceled membership.
  • A decision on what the referral reward is and who hands it over. The automation can track fulfillment but somebody physically has to do it.
  • Agreement on which guest sessions or classes a pass may be redeemed against, and a per-slot capacity cap so passes do not displace paying members.
  • Named owners: who takes the escalated conversations BO hands off, and who runs the Reward Fulfillment form.
  • A rule for what happens when a referred name is already a member or an open lead. The build above does not issue a pass, which is the right default.

Integrations

  • Your access control or check-in system, if attendance is to be marked automatically rather than by the front desk. If no integration exists, the desk marks the appointment attended and that is perfectly workable.
  • Your membership or billing system (for example Stripe) so a new membership can flip the opportunity to Joined and release the referrer's credit without manual entry.
  • Google Calendar or equivalent for staff availability on the Guest Tour and Join Consultation calendars.
  • A webhook from the Guest Pass page so a page view sets pass_status to viewed. Without it, the nudge sequence loses its best condition and you fall back to a time-based schedule.

Numbers and messaging setup

  • Provision one dedicated local number for the club. Do not reuse a personal mobile. You lose threading, logging and the shared inbox.
  • Complete A2P 10DLC brand and campaign registration before sending any volume in the United States, and allow time for it: carriers can take days to weeks to approve, and unregistered traffic gets filtered or blocked. Register the campaign under the correct use case and submit real sample copy matching what you will actually send.
  • Outside the US, confirm the equivalent local requirements for the destination country: sender ID registration, consent standards and content restrictions vary.
  • Authenticate the sending domain with SPF, DKIM and DMARC before the first email send, and warm the domain gradually if it is new.

Consent, opt-out and quiet hours

  • Only send to guests whose number came through the referral form, and have the form state plainly that the friend will receive a text and an email about the pass. The member is passing on a contact detail, not consenting on their friend's behalf, so the first message must identify the club, name the referrer, and offer a one-word exit.
  • Honor STOP, UNSUBSCRIBE, QUIT, END and CANCEL on every SMS workflow, and make sure the opt-out suppresses the contact across all workflows, not just the one that sent the message. Include opt-out language in the first message of each sequence.
  • Set quiet hours at 09:00–20:00 in the contact's local timezone and make every scheduled send respect them. Reminders tied to an early-morning class are the common exception: handle those deliberately rather than by accident.
  • Cap total outbound messages per contact per week so the referral sequence does not collide with class reminders and marketing campaigns. Build a global frequency rule, not a per-workflow one.
  • Keep a retrievable record of where each guest's consent came from (which member referred them, which form, what date) on the contact record.

Data protection and legal

  • Collecting a third party's contact details from a member raises real questions under GDPR, UK GDPR, PIPEDA, the TCPA and various state privacy laws, and the answers differ by jurisdiction and by how the club already handles member data. Note what the build captures, how long it retains it, and how a guest can have it deleted.
  • Referral reward structures can also carry tax and promotional-rules implications in some jurisdictions.
  • This guide describes a mechanism, not legal advice. Have the client confirm consent wording, retention periods and reward terms with their own counsel before launch.

For scoping, number provisioning and a build plan for your club, book a call at bookings.appbo.io.

Field notes

Build it with us.

Every build on this page is something we configure, test and hand over with the SOPs your team needs to run it.

Book a call