Join links and QR codes
Short links and QR codes that sign people up — for your gym, a plan, or one class — and keep working when things change.
Updated September 14, 2026
A join link is a short URL and a QR code that takes someone from “I walked past your window” to “I’m a member with a class booked” without anyone at the front desk. It looks like this:
members.ourgym.app/q/dropin
They point their phone’s camera at the code — the normal camera app, not ours — tap the notification, and land in a sign-up that asks for a name and a mobile number, texts a code, shows your waiver, and takes payment. Four steps. If they already have the OurGym app installed, the link opens straight into it, already signed in.
Everything here lives in Settings → Join links & QR codes. You need the owner or admin role to create or change links; anyone on staff can open one and show the QR off a tablet.
Your gym’s main link
Every gym has one from the start, named Front desk poster until you rename it. It’s marked Main link in the list, it never expires, and it can’t be switched off — it’s the link every other one falls back to when something goes stale, so it has to stay reachable.
That’s the one for the front desk, your Instagram bio, and the bottom of your emails.
Links for a plan or a class
The main link drops someone into your gym and lets them browse. A more specific link does the work for them:
| Point it at | What the person sees |
|---|---|
| Join the gym | Your gym, then a plan or class of their choosing |
| Start a plan | That plan and its price, ready to pay for |
| Drop in to a recurring class | The next session of that weekly class |
| A single class session | One specific session — a seminar, a one-off |
| Sign up for an event | That event |
The recurring-class one is the one worth understanding. Point a link at your Saturday 9am class and it resolves to the next Saturday 9am, every time someone scans it. Stick that decal on the wall once; it is still correct next March.
You can also make one straight from the thing itself: Billing → Plans has a Share & QR button on every plan. If that plan already has a link, the button opens it rather than making a second one — otherwise one poster’s traffic would end up split across a dozen codes and the scan counts would mean nothing.
Custom short links
Leave the name blank and we’ll make one up — something like /q/bkdfghjmnp.
That’s fine for a QR code, where nobody reads the characters.
For anything a person might type — a sandwich board, a radio ad, a flyer — give it a name:
members.ourgym.app/q/dropin
members.ourgym.app/q/free-week
Lowercase letters, numbers and hyphens, 3 to 40 characters. The form tells you if a name is taken or not allowed before you save it.
Changing where a link goes
This is the part that saves reprinting.
A link doesn’t contain the plan or the class — it contains a name that points at one. So you can:
- rename the plan it points at,
- change its price,
- move the class to a different time or room,
- replace the plan entirely and re-point the link at its successor,
and every poster, decal and business card already out in the world keeps working. Open the link, change what it points at, done.
Two things never change: the link’s name (it’s printed — you can’t recall it) and what kind of thing it points at. A plan link stays a plan link. If you need a class link instead, make one.
Retiring a link
Finished with a campaign? Open it and hit Retire. From then on, anyone who scans that code sees “that link is out of date, but you can still join [your gym]” and carries straight on into your main link. Nobody hits a dead end because of a poster you forgot to take down.
Retired names are never given out again. A code on a wall can’t come to point at something else later.
You can also set an expiry date when you create a link, for a campaign with a known end.
Which poster actually worked
The list shows a Scans count and the date of the last scan for every link. That’s the whole reason to make more than one: print a different code for the window, the flyer and the Instagram bio, and after a month you know which one is worth repeating.
Add a campaign tag when you create a link and it lands on the lead’s record too, so Members → Leads can be filtered by where people came from.
Paying during sign-up
If the link points at a plan with a price, the person pays at the end of the sign-up — Apple Pay, Google Pay or a card — and walks in a member.
This needs Stripe connected and able to take charges (see Connecting Stripe). Until then a priced link still signs people up and still records the waiver; it just tells them the front desk will finish the payment.
If they back out at the payment step, they are still a member. They signed the waiver and they’re on your roster — they can add a card from the app whenever they like. Sign-up is never unwound because a card was declined.
Testing it
Scan your own code, with your own phone’s camera, as though you’d never seen your gym before. Walk the whole thing: name, code, waiver, payment. It takes two minutes and it is the only way to find the one setting you missed — a missing waiver, a plan in the wrong currency, Stripe not finished.
The older link format
Links shaped like members.ourgym.app/join?g=… were what OurGym used before
short links. They still work and always will — anything already printed is safe.
New codes use the shorter /q/ form, which is the only one that can be renamed,
re-pointed or counted.
Something here out of date, or a step that didn't work? Tell us at support@ourgym.app.