Account Setup
Creating a club account
- Sign up at allsquads.com.au and select Business/Club during the account type selection step, or continue with Google (Google OAuth). In the AllSquads iPhone app you can also continue with Apple
- Complete the club profile: club name, description, sport(s), logo, cover photo
- Enter your club address using the inline address form with Google Places autocomplete
- Optionally set up a coach profile if you personally coach at the club (the onboarding wizard prompts this)
- Invite coaches to your club directly from the onboarding wizard
- Connect Stripe via the onboarding flow (required only to RECEIVE payouts — you can publish classes, go public and take bookings before connecting; incoming payments are platform-held and your payout stays pending until Stripe is connected)
- Create your first class using the full class creation wizard, integrated into onboarding
Multi-club management
A single admin account can manage multiple clubs. Switch between clubs using the club context switcher in the top navigation. All data, settings, and payments are isolated per club. Additional clubs can be added via the Add Business option in the sidebar.
Multi-role support
A single user account can hold player, coach, and club roles simultaneously. For example, a club admin who also coaches can manage their club and their own independent coaching classes from the same account. Roles are additive and never removed when new roles are added.
Claiming a preview club profile
Some clubs have a public preview profile already set up by AllSquads, showing a "Claim this profile" banner. If that's your club:
- Click "Claim this profile" on the club's public page
- Sign up (or sign in, if you already have an AllSquads account) — this step automatically links your account to that specific club
- Verify your email if prompted — the club is only handed over once your email is confirmed
- You're taken to your new dashboard as the owner, ready to edit the profile, review any imported schedule, and connect Stripe when you're ready to get paid
If the profile shows as already claimed, someone has already taken ownership — contact support if that's a mistake.
If we already have a profile for your email: when you sign up as a club or coach with the same email address that is on an unclaimed club profile, AllSquads does not create a second, empty club. Instead you are taken to a page for claiming it. If you haven't confirmed your email yet, that page asks you to confirm it first (it won't show the profile until you have). Once your email is confirmed, it shows the profile (or profiles) set up for your email and you choose which one to claim. The steps after that are the same as above. If your email does not match any unclaimed profile, signing up works exactly as before.
Once you have claimed it, your club's page can appear in search engines as soon as it has a description. If the profile had no description when you claimed it, add one in Settings > Profile and the page becomes visible to search engines when you save.
Adding and editing venues
Dashboard > Settings > Venues lists every venue with its name and address components (street, suburb, state, postcode) — edit any field inline and Save. Venue addresses show on class listings, booking pages, and confirmation emails, so keeping them right matters for players finding the right court. Migrated clubs should check their imported addresses here — v1 imports initially carried a single combined venue that may need correcting or supplementing.
To add a venue, click Add venue on the same card, enter the venue name, start typing the street address (pick it from the suggestions), fill in suburb, state and postcode, and click Add venue. The new venue appears in the list straight away and can be chosen for any class. Its timezone is set from your club's timezone automatically. You can also add a venue without leaving the class wizard: the Venue field in Step 1 lists your venues (a single venue is preselected) and has an Add new venue… link that opens the same form inline — the new venue is selected for that class as soon as it's saved, on both new classes and edits of existing ones.
Every plan includes one venue. Running classes across more than one venue is a Club Pro feature — on any other plan, Add venue shows an upgrade prompt naming your current plan instead of creating the venue (nothing is saved). See Pricing & Plans for the tier comparison.
Home dashboard
Home runs top to bottom: your key numbers, then Today's sessions beside Recent activity, then the assistant beside your payout, then a Court hire card (court revenue, bookings and utilisation for the selected period; it only appears if your club has courts, and tapping it opens Facility Hire), then the quick actions, and finally a "Have you tried...?" card beside the What's new card (stacked on a phone). On the simplified Home layout there is no More numbers card, no payout card and no What's new card: payout is one of the four key numbers at the top, What's new is in the notification bell, and "Promote your club" and "Refer a club or coach" share one slim strip at the bottom, each with a Copy link button. Recent activity lists the club's own activity: new class and court bookings, Pro Shop orders, messages, coach and session changes, and payouts. Notices about your own bookings as a player (for example a court booking you made yourself) stay in your notifications bell and on your player Home, not here. The "Have you tried...?" card rotates through features you haven't set up yet — Facility Hire, Pro Shop, Promo Codes, Memberships, Team, and class-level options like subscriptions, session packs, term programs, holiday camps and private lessons — with a short explainer, the benefits, and a button that takes you straight to setting it up. A feature drops out of the rotation once you're using it, and dismissing a tip removes it for good — it won't come back. The card disappears entirely once every feature is either set up or dismissed.
Managing Coaches
Adding a coach to the club
- Dashboard > Team > Invite Coach (or during onboarding via the Invite step)
- Enter the coach's email address and select their role (Coach or Club Admin). You can paste a contact straight from your email program, such as
Jane Smith <jane@club.com.au>: AllSquads keeps just the address. If what you enter has no email address in it, you'll be asked to correct it before the invite is sent - The coach receives an invitation and must accept to be affiliated with the club
- Once affiliated, the coach can be assigned to classes and court hire sessions
- Club-employed coaches do not need their own Stripe account — payments flow through the club
Coach permissions
Club admins can view all coaches' classes, sessions, and rosters. Individual coach financial data is visible in club-level reports. A coach or host sees only their own work on their dashboard — the classes they are the head coach of, plus any individual sessions they have been assigned to cover — never the rest of the club's schedule.
Removing a coach
Dashboard > Team > select coach > Remove. The coach's existing classes and bookings are unaffected.
Team Management
Overview
Team Management (Dashboard > Team tab) provides a centralised view of all coaches and staff affiliated with the club, including both active members and pending invitations. This is a business-only feature — independent coaches see it as an upsell item. Team management has been consolidated into the standalone Team tab (removed from Settings).
Inviting coaches or club admins needs a paid Club plan. Club Free doesn't include team members: on Club Free the Team tab and the onboarding Team step show an upgrade prompt instead of the invite form. A Club Free club that already had team members keeps them, but can't invite more without upgrading. On any plan, the owner can still use "Add myself as a coach" to put themselves on the team and go live.
Capabilities
- View all affiliated coaches with their role, status, and join date
- Invite new coaches by email
- Remove coaches from the club
- Manage coach roles (Coach vs Club Admin)
Club owners
A club can have more than one owner. On the Team tab, any existing owner can make another active team member a second (or third, etc.) owner from that member's row menu — choose "Make owner". The new owner keeps whatever other role they already hold (for example a coach who is also made an owner remains listed as a coach too).
An owner can also be removed from that role the same way — open their row menu and choose "Remove as owner". A club always keeps at least one owner: if only one owner remains, that option is disabled so ownership can never be removed entirely by accident.
Owner status is separate from the Coach/Club Admin role toggle above — it isn't one of the options offered when changing someone's role.
Creating and Managing Classes
The class creation process for clubs is identical to coaches (see Coach Guide — Creating a Class), with the additional ability to assign a head coach to each class.
Recurring class frequency — what each option actually schedules
For a recurring class, Step 2 of the wizard has a Frequency control and, when Frequency is Monthly, a Monthly pattern control:
- Weekly — the same weekday(s) every week. Select more than one day chip to run the class on each of them, or use the Daily shortcut for all seven.
- Fortnightly (every 2 weeks) — the same weekday every second week from the start date.
- Monthly (same date each month) — the same calendar date every month. A class starting on the 14th runs on the 14th; a month with no such date (the 31st in February) uses that month's last day.
- Monthly > A particular weekday of the month — the 1st, 2nd, 3rd, 4th or last chosen weekday of each month, e.g. the 2nd Wednesday. Pick this when the court or hall is booked on that pattern.
The two monthly options are not interchangeable: they agree in the first month and separate after it. A class starting Wednesday 9 September on "same date each month" next runs 9 October, while "2nd Wednesday" next runs 14 October. If your venue booking is an nth-weekday one, choosing "same date" puts sessions on days you do not have the court.
"Last" is a distinct choice from "4th" because a month with five of that weekday makes the last one the 5th. Where a pattern has no matching date in a month (a 5th Wednesday, for instance), that month is skipped — sessions are never shifted onto a nearby date.
The pattern is stored with the class, so it is preserved when you edit the class or duplicate it.
Where an active class appears publicly
An active class is listed on Explore and in public class search only while the owning club's profile is published (Dashboard > Settings > public profile > visibility set to public). While a club profile is unpublished, its classes still work normally inside the dashboard — roster, schedule, manual bookings, direct class links and the club's own profile page are all unchanged — they are simply excluded from public discovery, the same way an unpublished club is already hidden from the Clubs directory. Publish the club profile and its active classes appear on Explore within about a minute.
Assigning a head coach
When creating or editing a class, select the head coach from the affiliated coaches list. The head coach receives all booking notifications and manages the roster for that class. The Coach column in the class list shows which coach is assigned to each class. Club members with the Host role can be assigned or reassigned to sessions the same way a coach can, and can be chosen as the head coach when creating a class; players see them labelled as the session's host rather than coach. Hosts are listed on your public club page's coaching team section alongside your coaches. A club admin is listed there only while they are the head coach of an active class; an admin who doesn't coach isn't shown as a coach.
Assistant coaches
A class can have assistant coaches as well as its head coach, for example when a group is spread over several courts. Open the class from the Classes tab, go to Settings in the Manage Class panel, and use Add assistant coach on the Assistant coaches row. Pick any coach on your club's team (not the class's head coach), and optionally pin each one to one of the class's courts. Save replaces the whole list, so removing someone there takes them off the class.
Assistant coaches see the class on their own Schedule, Bookings and Calendar, can open its roster and mark attendance, and get the same "new booking" notification as the head coach. They can't cancel, refund, edit or change pricing; that stays with the head coach and the club. Players see them on the public class page under the coach, with their court if you set one. Assistants are members of your team, so they count towards your coach seats the same way any team coach does, and payouts are unchanged. Only the club owner, club admins and the club's head coach can choose assistant coaches; coaches can see the list but not change it. If you archive a team member, they stop being an assistant coach on all your classes straight away and lose access to those rosters.
Setting a Program on a class
Step 1 of the class wizard has an optional Program field for branded programs — Hot Shots (with a Red, Orange, Green or Yellow Ball stage), Cardio Tennis, All Stars Cricket, Auskick, and NetSetGO! — and it only shows the programs that make sense for the sport you picked (Hot Shots and Cardio Tennis for Tennis, All Stars Cricket for Cricket, and so on). Setting a Program is optional and available on both new classes and when editing an existing one; leave it as None if the class isn't part of one of these programs.
Setting a Program is what lets players filter your public club page's "Upcoming classes" list by it — see "Filtering classes by Program" below. If you leave the Program field unset, players can often still find the class by name (a class called "Saturday Red Ball" is discoverable under the Red Ball filter even without the Program field set), but setting it explicitly is the more reliable way to make sure the class is grouped correctly.
Filtering classes by Program
Your public club page's "Upcoming classes" card shows a Program dropdown alongside the existing Sport, Type and Age dropdowns — but only when at least one of your classes actually carries a program, so a club running no branded programs never sees an empty, useless filter. A player picking a Program (e.g. Red Ball) sees every future class of that program across your whole schedule, soonest first — not just classes on the day they happen to have selected on the date strip, and not limited to the next few weeks — combined with whatever Sport, Type and Age filters they've also picked.
Class list view
The Classes tab shows all classes in a compact grid card layout. Each card displays the class headline, sport, schedule, and assigned coach. Session generation after class creation is asynchronous — sessions are generated in the background via a BullMQ job and may take a few seconds to appear on the Schedule tab.
Bulk duplicate
Select multiple classes from the Classes tab and choose Duplicate Selected to create draft copies of all selected classes simultaneously.
Archiving or deleting a class
- Archive — recommended for any class that has had bookings. Hides from explore, stops new bookings, preserves history. You can't archive a class while it still has upcoming bookings: cancel those bookings (or cancel the class) first.
- Delete — available from the class card kebab menu with a confirmation modal. Blocked if the class has any active bookings — archive it instead. There is no undo.
Requiring approval for a single session
Auto-approval (whether a paid booking confirms immediately or waits for a coach/host decision) is normally a class-wide setting. You can also override it for just ONE session — useful when a class is auto-approve but you want to personally review the last few bookings as a busy session fills up, without switching the whole class to manual approval and having to remember to switch it back.
From the Bookings tab, open the session you want to change and use the Approval control next to Capacity. Choose "Require approval" or "Auto-approve" to override this session only, or Clear to go back to following the class's own setting. The override applies only to the session you're viewing — the class setting and every other session in the series are unaffected. A booking made while the override is active follows the override (goes to Pending Approval, or confirms immediately) regardless of what the class default says.
Automated priority booking
A class can be set so bookings for its sessions only open a fixed number of days beforehand, and give your members first access before everyone else — automatically, for every session, with no weekly manual toggling. Both settings live on the class's Settings tab, are off by default, and existing classes are unaffected until you turn them on:
- Open bookings ⟨N⟩ days before each session — leave blank and bookings open as soon as the session exists, same as today. Set it (e.g. 10) and each session's booking window opens exactly that many days before it starts, at the same time of day the session starts — so a Tuesday 6pm class set to "10 days before" opens the Tuesday two weeks earlier at 6pm, in the club's own time zone. This recalculates itself for every upcoming session in a recurring class; there's nothing to reset week to week.
- Members-only for the first ⟨Y⟩ hours, with a tier picker — once the window opens, only members holding one of the ticked tiers can book for the first Y hours; after that it opens to everyone. Leave the hours blank, or tick no tiers, and the window skips straight to open-to-everyone the moment it opens. A member needs an active membership in one of the ticked tiers specifically — holding a different tier at the club doesn't count.
Both checks run on the server at the moment of booking, not just in what the page shows — this covers the normal Book button, joining the waitlist, and a staff member adding a player from the Bookings tab, so a booking can't slip through outside the window by a different route. Staff adding a player can still book someone in early (for a phone booking taken before the window opens, say): the Add player form explains why the session isn't open yet and asks "Add anyway?", and the player is only added once you confirm. Every override is recorded in the club's activity log.
This is a separate, timed setting from the existing Members only toggle on the same tab. Members only keeps a class members-exclusive forever, with no public phase at all. The two can be combined — if both are on, Members only wins throughout, since there's no "everyone" phase to open into. Used on its own, priority booking is a temporary head start for members, not a permanent restriction.
On the class page, players see exactly when their access starts: "Opens to members on ⟨date/time⟩, to everyone on ⟨date/time⟩", and the Book button (or the row for a specific upcoming session) is disabled and relabelled to match — showing the opening time before the window opens, and a members-only notice during the priority hours for a player who isn't eligible yet.
Member pricing on a manually-added booking
When you record a player as Cash, Already paid or Send a payment link from the Bookings tab, the amount defaults to their real price — the member rate if they're a recognised member of the club, the standard price otherwise — using the same membership check the online booking flow uses. You can always see and change the recorded amount before saving; whatever you type is exactly what gets charged and recorded, and reports always show the real amount collected, not the class's list price.
Reading the bookings list. In the Bookings tab's list of individual bookings, each booking shows what the player signed up for and where their payment stands, in words: Paid with the amount, On a plan with the weekly amount, Overdue when a plan payment has failed, Outstanding with the amount still owed, or Cancelled. A package is one purchase, so it appears once, with the package name and its days (for example "Gold (Tue, Wed, Thu, Fri)") and the price paid once. The other days it covers don't appear as separate free bookings. A booking that cost nothing says why (Free, Internal (no charge), Free trial, Paid with credits, Paid with a session pack), a payment recorded without an amount says so, and each booking's status (Confirmed, Cancelled and so on) is labelled. Filtering by one of a package's days lists everyone signed up for that day, marked as included in their package. The line at the top counts how many are signed up, how many have paid, how many are outstanding and how many are free, for whatever the list is showing, and those three always add up to the number signed up.
Adding a cash player without an email
From a class's Bookings tab, "Add player to class" lets you search your contacts or add a New person. When the payment is Cash, Already paid or Internal, the New person's email is optional. Leave it blank and they are still added as their own player, with their own Contacts entry under the name you typed. No email is sent to them, so they won't get an "added to class" notification or a link to set up their account. Send link still needs an email, because that's how the player pays. Even with an email, AllSquads sends a player who has no AllSquads account no messages about their bookings, whatever the payment (a New person added here never has an account yet): no "added to class" email, reminders, or change and cancellation messages. Two messages still go to them: the Send link payment email, because that's how they pay, and an invitation to create an account, sent when you add them to a class or as a contact. The invitation doesn't mention the booking. A player who has an account gets the same messages as for an online booking, including cancellation texts, however the booking was paid.
Each New person added without an email is always a separate player, even if you type the same name again. To book the same player again later, search for them in your contacts instead of adding a New person, so you don't create a duplicate.
Court Hire
The Court Hire section uses terminology that is dynamically matched to the club's sport (e.g., Tennis clubs see "Court Hire", Golf clubs see "Tee Times", Swimming clubs see "Lane Booking"). All references below use "Court Hire" as the default label.
Setting up courts
- Dashboard > Court Hire > Manage Courts > Add Court
- Enter court number and optional name (e.g., Court 1, Centre Court)
- Select facility type — this sets the terminology used across the platform and consumer profile
- Set availability hours: the days and times the court is available for booking
- Repeat for each court
Clubs with more than one venue can choose which venue a court belongs to when adding or editing the court. A court with no venue belongs to the whole club. This is what lets classes and the court hire schedule's venue filter work per venue.
Court blocking
Courts can be blocked for maintenance, events, or other reasons via Court Hire > select court > Manage Blocks. Blocks support date ranges, full day or specific time ranges, and an optional reason. Blocked periods are immediately removed from bookable slots.
For blocking several courts in one action, or a block that repeats on a schedule (weekly on chosen days, fortnightly, or daily until an end date), use Court Hire > Facility Blocks instead. It runs the same conflict check against existing bookings before saving, listing any overlap so an existing paid booking is never silently cancelled. See 07-court-hire-guide.md for the full walkthrough.
Pricing configuration
Navigate to Dashboard > Court Hire > Pricing:
- Standard rate: base hourly or per-30-min rate
- Member rate: reduced rate for club members
- Day rate vs night rate: configure the time threshold (e.g., before 5pm = day rate, after 5pm = night rate)
- Pricing bands: any band — day rate, night rate, or a custom band — can also be scoped to specific days of the week (defaults to every day); a day-scoped band always wins over an every-day band covering the same time slot, so a "Day rate" that applies every day and a separate "Weekend" band covering the same hours can coexist, with weekend bookings pricing off the weekend band automatically
Court availability
Courts observe:
- Configured availability hours
- Existing court hire bookings
- Class assignments (a court assigned to a class session is blocked during that session)
- Manual court availability blocks
For clubs with more than one venue, a class only picks up a court from its own venue when a court is assigned automatically. It never takes a court from a different venue, even if that court is free. If the class's own venue has no courts of its own, the class can use a court that has not been given a venue, because those courts belong to the whole club. If every court belongs to some other venue, the class gets no court assigned rather than borrowing one.
Court availability blocks
To block a court for maintenance, events, or any other reason:
- Dashboard > Court Hire > Calendar > select court > Add Block
- Set date, start time, end time, and reason
- Save — the blocked period is immediately removed from bookable slots
Repeating private lessons and court blocks from the schedule
When the same private lesson or court hold runs every week for a term, book the whole run from Schedule > Add booking instead of one week at a time:
- Pick Private Lesson (coach + court) or the court booking type (court only), the date and time, the contact, and the payment method — Already paid, Cash (collect in person), Send link (the client pays online) or Internal (no payment). Tick any other court free at the same time to add it to the same booking — the price becomes the sum of every court's own rate.
- Tick Repeat this booking, choose Weekly or Fortnightly, then For N weeks or Until a date — this repeats the whole court selection, not just the first court.
- Click Add repeating booking (or Block repeating time for an Internal booking). Every week is checked first against the coach's classes and lessons, every selected court's bookings, classes and opening hours. Any clashing weeks are listed with what they clash with; you can change the details or choose Skip clashing weeks, add the rest. Nothing is saved silently.
Send link on a repeating booking. The client gets ONE payment link for all the weeks, by email. Before anything is saved you see the total: the price of every week added together, plus one AllSquads booking fee for the whole payment (not one per week), and that is what the client pays. Add the client's email first, as the link goes there. When they pay, every week is marked paid together and they get one confirmation. If you skipped clashing weeks, the link covers only the weeks that were added. The link is for exactly those weeks at that price, so if you cancel a week or change the price before it's paid, the link stops working and the client can't pay it. Each week's price is paid out like any other booking, in the payout for the week that session is played. The booking fee is not part of your payout.
Every week is a separate booking on the schedule, holding the coach's and the court's time so players can't book either for that slot. Open any week to Cancel booking > This session only (frees just that week), Cancel booking > This & all remaining, or Edit booking > Apply to: This & all remaining to change the coach, court, time, price or notes from that week onward (each week keeps its own date; clashing weeks are listed and left unchanged unless you choose to save anyway).
On the schedule a private lesson reads Court 16 – Private – coach – client in the lesson colour, so it isn't mistaken for a player's court hire. Private lessons booked this way (one-off or repeating) don't appear in the Facility hire list under Dashboard > Court Hire, and the client isn't sent a court hire confirmation. They still hold the court.
Tap a private lesson on the schedule to open it: its panel names the client, and the name links to their contact record. If the contact has children on their account, a Lesson for list appears when you add the private lesson (one-off or repeating): pick the child the lesson is for. The schedule then names the child, and the parent still pays and gets the booking emails.
A private lesson can have 2 or 3 clients (a semi-private). After picking the first client, add up to 2 more under Other clients in this lesson (each can be for one of their children). The price is then the coach's semi-private price for that length of lesson, set from the coach's lesson prices, and the first client pays it for everyone. If the coach has no semi-private price for that length, or it allows fewer players, the booking is refused with the reason. The schedule and the lesson's panel name every client, each linking to their contact record.
Gate and lights access codes
Some venues open their gate, and switch on court lights, with a code instead of a key. AllSquads can give each court hire booking its own codes, made for that booking. This is switched on per club by AllSquads; if your club wants it, contact us. Once it is on, open Dashboard > Settings > Access control:
- Click Connect igloohome and sign in to your igloohome account.
- Click Refresh devices, then set each device's role: Gate for the entrance, Lights for a court's lights, or Not used. Tick the courts each device serves (a gate usually serves every court; a lights keypad can serve one court or several).
- Set how many minutes before and after the booking the codes work (default 10), and use Test connection to check the account.
Every confirmed court hire booking then gets a gate code, plus a lights code for each lights device covering its courts. The player gets the codes in the confirmation email and text and in a reminder 30 minutes before, and sees them on the booking. You can see them in the booking's details on Court Hire. Cancelling the booking deletes the codes from the devices; moving it to another time or court gives it new codes. A device with no Bridge can only take codes that expire at the end of the window: they cannot be deleted early, and the device says so in Settings.
Managing court hire bookings
Dashboard > Court Hire shows all upcoming and past court hire bookings. Admins can cancel individual bookings or entire recurring series. Each paid week of a recurring court hire series is recorded as its own paid booking and is included in the club's weekly payout like any other court hire. The player pays your court price plus AllSquads' booking fee on each week; the booking fee is not part of your payout. If the club cancels the series, the weeks not yet played are credited back to the players and are not paid out.
The court hire schedule grid (Dashboard > Calendar > Facilities) can be narrowed to a single venue or a single sport using the filters above the grid, which is useful for clubs running more than one location or more than one type of facility. Your last selection is remembered the next time you open the page.
Memberships
Memberships have a dedicated Dashboard > Memberships page with three tabs:
- Tiers — create and edit membership tiers through a short step-by-step wizard: identity + price (name, description, sport, price, billing — one-off, either a set number of days from the day each member joins or one fixed end date that is the same for everyone (see Fixed-date memberships below), or recurring weekly / fortnightly / monthly / annual), then coverage + entitlements (how many people the tier covers, see Family memberships below; what the member rate applies to — classes, court/facility hire, a Pro Shop discount percentage; any scoped "what's included" rows), then, for a recurring tier, an optional minimum commitment step and a cancellation policy step (notice period, when cover ends, and any refund or credit for unused time), and finally a review step summarising every choice before you save. Editing an existing tier opens the same wizard, but every step is reachable directly by clicking it in the step header — you don't have to click through the whole thing to change one field, and Save is available from any step. Deactivate a tier to stop offering it for new purchases without affecting members who already hold it.
- Members — every player and account holder with a membership at the club: which tier, purchased vs manually attached, account-level vs player-level holder, status (active / past due / cancelled / expired / lapsed), and renewal or expiry date. Club admins can cancel a purchased recurring membership from here, either at the end of the current billing period or immediately. They can also grant a manual membership from here — Add manual membership, pick a contact, set an optional expiry — and change a manual membership's expiry or end it from the row's Edit button.
- Settings — the membership model setting (see below), also linked from a pointer card on the main Settings page.
Manual comp memberships attach the same way from either place — Memberships > Members > Add manual membership, or open a contact in Dashboard > Contacts and use the right-side drawer to set membership_status (active / expired / none) and membership_expires_at. Both write the same record on the contact, so a membership granted on the Members tab shows in Contacts (and in the contact's membership history) exactly as one granted from the drawer, and vice versa. A manually-attached membership shows as "Manual" on the Members list rather than against a purchased tier. A manual expiry entered as a date runs to the end of that day in the club's time zone.
Adding a member to a tier by hand
A club that sells its memberships outside AllSquads (through a third-party membership system, at the front desk, by invoice) can still give those members a tier's benefits inside AllSquads. Open the contact in Dashboard > Contacts, choose Add membership (or Add tier if they are already a member), pick the tier from the Membership list, set the expiry date and save. Nothing is charged and no card is needed.
- The person gets everything the tier gives a paying member — the tier's court hire rate, its class discounts, and its weekly included sessions — from their next booking, with the same weekly reset.
- The expiry runs to the end of the chosen day in the club's time zone. Leave it blank to use the tier's own term (a set number of days, or its fixed end date); a recurring tier always needs a date.
- A tier added by hand does not renew itself. When it runs out the member pays standard rates again until you extend it — use Edit expiry on that tier in the drawer, or add the same tier again to renew it in place. End stops it immediately.
- The contact needs an email address or a linked AllSquads account. If they have not signed up yet, an account is created for them under that email and linked to the contact; when they sign up with the same address they claim it.
- Every tier added, extended or ended by hand is recorded in the contact's membership history with who did it and which tier. On the Members tab these memberships appear against their tier, not as a bare "Manual" row.
One person can hold more than one tier at once (a tennis tier and a pickleball tier, for example); each applies to its own sport.
Tiers that are not sold online
Every tier has a Sold online switch on the tier form, on by default. Turn it off for a tier you only ever add to people yourself, for example when members pay you directly or through another membership system.
- With Sold online off, the tier does not appear on your club page, on your memberships page or on any join page, and it cannot be bought or subscribed to, even by someone who has an old link to it. It cannot be sent as an invite either, because an invite is a link to buy.
- You can still add it to anyone from Dashboard > Contacts, exactly as described above, and it still appears in the tier lists your staff use (Contacts, the class form, court pricing).
- Everyone who holds the tier keeps every benefit: the court hire rate, class discounts and weekly included sessions are unchanged. Turning the switch off on a tier people already bought does not end or change their membership, and a recurring membership keeps renewing; it only stops new people buying it.
- If every tier at your club has Sold online off, players see no Memberships section on your club page at all.
- A tier with Sold online off shows a Not sold online label on the Tiers tab. This is separate from deactivating a tier: a deactivated tier cannot be added to anyone, while a tier that is only not sold online can.
Member pricing follows the club's membership model (clubs.membership_model, set on the Memberships page's Settings tab): in account mode (default) one membership on the account holder gives every player on that account — including linked children — the member rate; in player mode membership is per-participant, so a sibling without their own membership pays standard rate. Both modes read the same membership records; only whose membership is checked differs.
Membership is club-wide, not per staff member. A club with several coaches/admins can hold a separate contact record for the same player under each staff member's own roster — setting membership as active on any one of those records makes the player a member club-wide: the Contacts list, a player's profile drawer, the Memberships > Members list, and the broadcast Members/Non-members audience filter all show the effective (any-active-wins) status and, when more than one record is active, the furthest-out expiry date — never just the single record a particular staff member happens to own.
Sport
Each tier has a Sport setting: Any sport, or one of the sports listed on the club's profile (Settings > Profile). A tier scoped to a sport gives its benefits — the member rate on court hire, class member prices, and any "What's included" discounts or weekly sessions — only on that sport's courts and classes. A tennis member booking a pickleball court or a pickleball class pays the standard price, exactly as a non-member would; a pickleball member gets pickleball benefits only. A court's sport comes from its facility type (a Pickleball Court is pickleball); a class's sport is the one set on the class.
Tiers left on Any sport (every tier created before this setting existed) behave as they always have, across every court and class. A club-wide membership set directly on a contact (not a tier) also covers every sport. Someone who holds two tiers gets each tier's benefits on its own sport.
What the "applies to" switches actually do
The Classes and Facility / court hire switches on a tier decide which surfaces read that membership. Neither sets a price by itself:
- Classes — the member price of a class comes from that class's own Member discount %, set per class in Dashboard > Classes when you create or edit one. A class with no member discount stays at its standard price, even for a member holding a tier with Classes switched on.
- Facility / court hire — the member price of a booking comes from each court's own pricing in Dashboard > Court Hire: a member rate, or Free for members, on each peak/off-peak band (or the court's flat member rate when it has no bands). A band with no member rate stays at its standard rate for members. A court can also carry a rate per membership tier (see the court hire guide) so a full member, a half member and a non-member each see their own price; a tier without its own rate on a court gets the court's member rate. A court hire row under What's included (a percentage off, free, or free bookings each week) works from each court's standard price on every court, including courts with no member rate, and when it applies it replaces the court's own member price (a court that is free for members stays free).
Each switch on the tier form states this inline and links to the surface that sets the rate. Saving a tier with a switch on while nothing is priced for members anywhere on the club shows a warning on the Memberships page, with a link straight to the surface that fixes it — the tier still saves, but members keep paying standard rates until a rate is configured.
What's included
Beyond the "applies to" switches above, a tier can also scope a specific discount, a free surface, or a weekly session allowance to one or more particular classes, a class category, or court hire — for example "2 adult group lessons and 1 kids term included", "an adult gets 3 lessons a week", "20% off Tuesday cardio", or "20% off all six cardio classes". Add rows under What's included on the tier form:
- Scope — one or more specific classes (tick every class the row covers — one row can name many classes that share the same deal), a class category (group / private / term / camp / social — the same categories used elsewhere), or court hire.
- Court hire bands — a court hire row can be limited to particular pricing bands from your courts (the peak / off-peak time bands set under Dashboard > Court Hire), so members can get one deal off-peak and the standard rate at peak. Tick no bands and the row applies to every band, and to any court priced by a flat rate. You can add a second court hire row for a different band with a different deal.
- Treatment — a percentage off, free, or a number of sessions included per week.
- For a weekly allowance, also choose who it covers (adults, children, or either) and whether unused sessions roll over to the next week (off by default — unused sessions otherwise expire at the weekly reset, Monday to Sunday in the club's own time zone).
The summary line under each row spells out the whole set — "3 classes (Monday cardio, Wednesday cardio and Friday cardio): 20% off for members", or "Court hire — Off-peak band: free for members" — and the same line appears on the tier card and on the member's join page.
A class, category, or band can only appear in one row per tier. If the same class or band is ticked in two rows, saving is refused with a message naming the clash, so a member can never be given two different deals for the same thing.
A row here takes priority over the class's own Member discount % or court's member rate for the scope it covers. A class already set to free for members is unaffected either way — free always wins, and doesn't use up a session from any allowance. Setting a class's Member discount % to 100% is what makes it free for members: the class is then free on every booking, however many the member makes that week, and none of those bookings counts against a weekly session allowance. So "3 sessions a week" only ever caps classes that are not already free for members. A weekly allowance needs no Member discount % at all — it prices a full-price class on its own, and if you set a discount as well the two apply independently (10% off plus 2 free a week means two free, then 10% off). Once a weekly allowance runs out, that booking is charged whatever it would have cost without it — the member price if the class has one, the standard price if it doesn't — until the next reset; the booking flow shows how many sessions are left ("2 of 3 left this week"). A weekly allowance counts single sessions, so it never applies to enrolling in a whole term: a term enrolment is charged the term's own price, shows that price in the cart and at checkout, and doesn't use up any of the member's weekly sessions. A court hire booking that runs across a band the row covers and one it doesn't gets the court's ordinary member rate for the whole booking rather than a part-discount. A weekly allowance on court hire counts in the week of the court time being booked, not the week the booking is made, and cancelling a court booking that used one gives that free booking back for its week. A tier with no rows here behaves exactly as the "applies to" switches describe.
A row scoped to specific classes or a category only ever does something once Classes is switched on above — saving it with Classes off still saves the row, but the tier form and the tier's card both flag it inline until you flip that switch. A percent-off or free row is also flagged, by name, against any of its own classes that don't yet have a member rate set — those two reach nobody until that class is priced for members too, and the flag links straight to fixing it. A weekly-allowance row is never flagged that way, because it needs no member discount: on a full-price class it makes the covered bookings free by itself.
When a weekly session is actually used up, and when it comes back. Putting a class in the cart never uses up one of the member's weekly sessions on its own — only actually completing the booking does. So a member can add a class to their cart, change their mind, and never check out, without losing anything from their weekly count; the "N of M left this week" count in the booking flow reflects real, confirmed bookings, not items sitting unpaid in a cart. If a member later cancels a booking that did use one of their weekly sessions, that session is given back to the same week's count exactly when your class's cancellation policy would otherwise have entitled them to a credit — a coach or club cancelling always gives it back, and a member cancelling themselves gets it back only if they're cancelling within the class's normal notice window and refund setting. This mirrors how a session-pack credit is returned on a qualifying cancellation.
Minimum commitment
A minimum commitment is optional, and the tier form asks for the choice rather than leaving a blank box:
- Ongoing — no minimum term (the default, and what most clubs want): the membership renews every cycle and keeps going until the member cancels. They can cancel any time.
- Minimum term: a number of billing cycles the member commits to before they can self-cancel (e.g. 13 weekly cycles ≈ 3 months). After that it keeps renewing and they can cancel any time.
Switching a tier back to ongoing removes the minimum for new subscribers. A club admin can cancel any member's subscription from the Members tab regardless of the minimum term — the term only limits the member's own self-cancel.
Family memberships
A tier is defined by its composition: how many adults and how many children one price covers. Set "Adults covered" and "Children covered" when you create or edit a tier — for example 2 adults + up to 3 kids at one price. The price is the tier's own price, never a per-head multiplier, and a tier left at 1 adult / 0 children is an ordinary single-person membership.
The person who buys the membership always fills one adult slot, so "2 adults" means the buyer plus one other adult. At checkout the buyer fills the remaining slots: other adults by their AllSquads email address (they need an account, or to already be a contact of the club), children from the dependants saved on their account. Leaving slots empty is fine; trying to add more people than the tier covers is refused.
Everyone in a filled slot gets the member rate on whatever that tier covers — classes, court hire and the Pro Shop discount all apply exactly as they do for a single member. The buyer can change who is covered later from My Subscriptions > Who's covered, without paying again. Removing someone stops their member rate from their next booking onwards; bookings they have already made keep the price they were charged.
Inviting players to buy a membership
A club can invite people to join a specific tier instead of waiting for them to find it on the club profile. Each invited person gets an email and an in-app message carrying a direct link to that tier's join page. The invite is only a link: nobody is charged or made a member until they open it and choose to join, and the link never expires.
There are two ways to send one:
- Selected contacts — in Dashboard > Contacts, tick the contacts, then use the Invite to membership bulk action. Pick the tier, add an optional personal note, and send.
- A whole segment — in Dashboard > Memberships > Tiers, use the Invite (paper-plane) button on a tier and choose who to reach: everyone, non-members, active players (booked in the last 90 days), inactive players, parents, or current members (for example to move them to a higher tier). The segment is worked out across the club's full contact list, not just the page on screen.
A tier with Sold online switched off has no Invite button and is not offered in the invite tier list, because there would be nothing for the player to buy.
Invites respect each person's existing communication settings. Someone who has unsubscribed from club emails, or whose address has bounced, is not emailed (a player with an account still sees the in-app message); a contact with no account and no email can't be reached. A contact who has an email but hasn't set up their own AllSquads login yet is still emailed — the invite is addressed to them personally, and opening the join link is what confirms the inbox is theirs. Anyone who already holds that tier is skipped and reported back, and sending an invite again is safe — it re-sends the message to the same person without creating a second invite record or touching their membership.
Each tier row on the Tiers tab shows Invited N · Joined M; click it to see who was invited, when, whether it was re-sent, and who has joined since. "Joined" means the person's membership for that exact tier became active after the invite.
Sharing a tier's join link
Each tier on the Tiers tab has a Share button (next to Edit) that opens a QR code, a copy-link button, and quick options to send the link by email, SMS or WhatsApp. Use it for a poster on the clubhouse noticeboard, a QR code at the front desk, or a quick message to someone asking about membership. The QR code downloads as a high-resolution PNG, ready to print. The link goes straight to that tier's join page — the same page a player reaches from your club profile or from an invite.
Fixed-date memberships
A one-off tier's term is a choice on the tier form: a set length (a number of days from the day each member joins — a 365-day pass bought in March runs to next March) or a fixed end date (everyone's membership ends on the same day whichever day they join — a calendar-year pass ending 31 December, or a season pass ending when the season does). A tier has exactly one of the two.
For a fixed-date tier, every purchaser's membership runs to the end of that date in the club's time zone, and the join page shows the exact end date before payment. Because someone joining a few days before the end date would otherwise pay full price for almost nothing, each fixed-date tier has a rollover cutoff (default 30 days, set on the tier form): a member who joins inside that many days of the end date — or after it has passed — is sold the next period instead, ending on the same day and month a year later, and the join page says so. The tier's own date does not need editing each year; the next period is worked out from it automatically. A member who joins earlier than the cutoff gets the current period, however long is left.
Membership renewals
A recurring membership tier renews automatically each billing cycle for as long as the member's payment method keeps succeeding. A one-off membership (a set length or a fixed end date) does not auto-renew — the member re-purchases it once it expires. A manually-attached comp membership with an expiry date triggers a renewal notification to the contact before expiry; admins update it from the same Contacts drawer.
Annual tiers renew once a year on the anniversary of the member's sign-up. Because a year's charge is a larger, less frequent payment, AllSquads warns the member before it happens: 14 days before the renewal date they receive an email and an in-app notification stating the tier, the club, the renewal date and the amount that will be charged, with a link to manage or cancel the membership. It's sent once per year per membership, and a member who has turned off "membership renewal" emails in their notification settings still sees it in-app. Weekly, fortnightly and monthly tiers do not send a pre-charge reminder — those charges are small and regular, and members told us per-instalment reminders were noise.
Changing a tier's price only affects people who join after the change — every existing member keeps paying the price they signed up at until they cancel and re-join. The tier form says this next to the price field when you edit a recurring tier.
Cancellation policy
Each recurring tier has its own cancellation policy, set on the tier form alongside price and billing — see Membership Cancellation Policy for the full breakdown of what a member sees and how each setting behaves:
- Notice period — how many days' notice a cancellation needs (0 = none).
- When cover ends — at the end of the current billing period (the default — cover always runs at least to what's already been paid for), or immediately once any notice has passed.
- Unused time — nothing (the default), an AllSquads credit, or a real refund to the original payment method, each valued at the unused portion of the current billing period. The AllSquads booking fee is never part of this — only the membership price itself.
A tier left on the defaults behaves exactly as memberships always have: no behaviour changes for existing members unless you deliberately change a tier's settings. Cancelling a member from the Members tab still respects a tier's configured policy the same way a member's own self-cancel does, unless you pick an explicit "now" or "end of period" option in the cancel dialog — picking one of those overrides only WHEN cover ends, never whether a credit or refund is issued for what's left unused.
Discounts
Creating promo codes
Discounts are issued as promo codes under Dashboard > Promo Codes. Players enter the code on the Cart page at checkout. For each code:
- Code word (e.g., SUMMER20 — stored in upper case; players can type it in any case) and an optional description
- Type: percentage or fixed amount off, and the value
- Applies to: all classes, one class type (group, term, social, camp, private, court hire), specific classes, or specific players
- Conditions: minimum order, maximum uses per player, expiry date
- Weekly payment plans (fixed-amount codes only): the code comes off every weekly payment (the default) or the first payment only. A percentage code always comes off every payment. Once a player has used the code at checkout, this setting is locked; to change it, make a new code.
A promo code is funded by your club. The player pays the discounted price, and that discounted price is what the booking is worth: your payout for it, and any cancellation credit, are based on what the player actually paid. With more than one player or session, the discount is shared across them. The player's booking fee is still worked out on the full class price.
Group discounts
A class can offer a group discount, such as "2+ people save 5%". It applies automatically when a player books that many different people into the class in one cart, on top of any member price. Each person's price is reduced, and the booking records the reduced price that was actually charged. A promo code and a group discount never stack: the player gets whichever saves more. The same goes for a year-commitment discount. Payment-plan (instalment) and weekly-subscription seats count towards the group size but are not reduced.
Editing a promo code
Use the pencil icon on a code to change its description, discount, minimum order, max uses, expiry, and what it applies to — including switching the class, class type, or player list it is valid for. Every field except the code word itself can be changed, on desktop and on a phone; the code word is fixed, so deactivate and create a new code if you need a different word. Once a player has the code on a booking (even before they have paid), its discount type and value are locked, because changing them would change what that player is charged. Everything else stays editable. To offer a different discount, create a new code.
Deactivating and deleting a promo code
- Deactivate (the toggle on the row) keeps the code in your list but stops it working at checkout. Reactivate at any time.
- Delete (the bin icon) asks you to confirm, then removes the code from your list. A code that has never been redeemed is removed permanently, which also frees the code word for reuse. A code that players have already redeemed is deactivated instead of removed, so its redemption history stays attached to those bookings — the confirmation tells you which will happen.
- Either way, a deactivated or deleted code can no longer be applied at checkout: players see "This code is no longer active" or "Code not found".
Session packs
Session packs are pre-purchased bundles of sessions at a discounted rate. They are configured per-class in the class wizard (Step 2 / Step 3), not in a global settings page. Players purchase packs at checkout, booking at least one date up front; one session deducts per booked session at booking time (not at attendance). Packs are valid 12 months for any class at the same club that also has session packs enabled and is priced at or below the pack's per-session price — enabling session packs on one class does not make a player's existing pack redeemable on a class where it's switched off.
Contacts (CRM)
Contact management
Dashboard > Contacts provides a full CRM view of all players who have interacted with the club. Contacts are automatically created when a player makes a booking, whether it is a class or a court hire booking. A player who books court hire (paid by card or credit, free for members, made by your staff, or paid as a seat in a split court booking) appears in Contacts as soon as the booking is confirmed, and is not added twice. Unpaid holds do not add a contact. A contact's Bookings, Spent, Last booking and Active/Inactive status count their court hire as well as their classes: a court hire booking counts once it is paid and not cancelled, and Spent is the court price paid (card and credit, not the booking fee). The contact's Booking History lists class bookings, and a separate Court hire list under it shows their court bookings; each opens in Court Hire. A booking you declined stays in the Booking History marked Declined · not counted: it is never counted in the contact's Bookings, the Booking History total or the family member filters.
The Contacts list and the contact panel show each contact's phone number and email address, so you can tell who someone is even when there is no phone on file. The email is for reference only: to get in touch, use Message, which reaches the player in the app. Contacts added without a real email (for example a cash player added with no email, or an older migrated record) show no email.
Contact detail panel
Each contact shows: booking history, payment history, membership status, credits balance, notes, tags, and emergency details. The bookings count, last booking date and squads include bookings still awaiting payment or approval (for example a player you added who has not paid yet), so they match the booking panel. Cancelled bookings also count towards bookings and last booking, so you can see that someone booked even if they later cancelled. An abandoned online checkout never counts. Total spend only counts paid bookings, and all amounts show dollars and cents (for example $1,155.20).
Possible duplicates: a no-email player who has signed up themselves
If you added someone without an email and they later sign up to AllSquads themselves, they end up with two records: the one your club added (holding your membership and their Contacts entry) and their own login. Until the two are linked, their own login doesn't get your member price.
When AllSquads spots this, the Contacts page shows Possible duplicates with the names to review, and the contact shows a Possible duplicate box. It names the person who signed up, when they signed up, and a shortened version of their email, so you can check it's really them. Only your club's owner and admins see this. A match is only suggested when the names are the same and the person who signed up isn't already one of your members.
- Link accounts moves the contact, their membership and their bookings onto their own login, so they get your member price straight away. The record your club added without an email is retired. Cash bookings that move across get full online services from then on (self-service cancel, receipts, reminders), with the same fees as a cash booking made for an account holder.
- Not the same person removes the suggestion for good.
If more than one AllSquads account has the same name, the match can't be linked from the contact. Contact AllSquads support and we'll sort it out. Nothing is ever linked automatically.
Linking a saved attendee to a member contact
A player can save people they book for (friends, partners, teammates) under their own "People I book for" list, but saving someone doesn't automatically get them the member rate — pricing only follows an exact link between that saved person and one of your Contacts records. If a player's booking attempt asks you to link someone, or you simply want a saved person to price correctly going forward, open the contact and use the Link attendee profile action. You'll only be offered attendee profiles that have actually been booked into a class at your club — never every saved profile on the platform. Once linked, every future booking that attendee makes at your club (whenever the booker picks them from their saved list) automatically prices at the member rate this contact is entitled to; the booker can still unlink it themselves later if needed.
Tags
Apply custom tags to contacts for segmentation (e.g., Junior, Competitive, Term 1 2025). Tags can be used to filter contacts for bulk messaging.
Import contacts
Upload a CSV of existing contacts via Dashboard > Contacts > Import. Imported contacts are marked with source: Import.
Credits Management
Issuing credits manually
- Dashboard > Contacts > select contact > Issue Credits
- Enter amount (1 credit = $1 AUD), reason, and expiry date
- Credits are immediately available to the player for bookings with this club
Credits from cancellations
When a player cancels a booking and the cancellation policy permits a credit refund, credits are automatically issued without manual intervention.
When you (the coach or club) cancel — a session, a whole booking, a player's place in a session, a competition, or a paid competition entrant — every paid player gets a full credit of the price they paid for what you cancelled, whatever the class's cancellation policy says. Your cancellation policy only decides what a player gets when the player cancels. The booking fee is not refunded, and you are not paid for the cancelled place. A complimentary, unpaid or guest booking gets no credit, and so does a cash booking you don't cover; a cash booking with the full online experience is credited like a card booking, funded by you. Before you confirm, the cancel panel shows how many players get a credit and how many get none. Term classes keep their own rules: you choose no credit, pro-rata or full when you cancel.
Reason and message when you cancel a session
When you cancel a session, the rest of a term, or a whole camp, you can pick a reason from a short list: Poor weather conditions, Coach unavailable, Insufficient numbers, or Other. It's optional and available on every plan. If you don't pick one, the notice to players gives no reason. On a paid plan you can also write a message to players, for example "Courts are flooded, back next week". It's added to the cancellation email, the in-app notice and the text message. Because it rides the text message, it's limited to 80 characters, and emoji and curly quotes are swapped for plain characters so the text stays a single message.
Cancelling a player from a session
When you cancel a player from a session (the session roster in Bookings, the player's booking panel, or a bulk cancel on the roster), only that player's place in that session is cancelled. If they booked several sessions in one checkout, every other session stays booked, and sessions that have already happened don't stop you cancelling an upcoming one. The dialog shows the credit for that one session — the full price they paid for it, since a cancellation by the club is always a full credit.
The one exception is a term enrolment: there you choose This session or Entire term/series.
Every player is handled on their own, even when brothers, sisters or friends were booked together in one checkout. Cancelling one child (from the roster, their booking panel or a bulk cancel) cancels only that child: the others on the same booking stay enrolled, and any credit covers just that child's share. Ticking one child on the roster selects only that child. Moving a player from their booking panel starts with that child already chosen, and moves only them.
Printed attendance sheet
From a session on a class's roster, print a one-page attendance sheet (via the browser's print dialog, saveable as a PDF) — any coach, head coach or host assigned to that class can do this, so a coach walking onto court always has a sheet to mark attendance by hand and enter it later. Each row shows the player's name, their own mobile number, and their emergency contact, followed by blank Present / Absent / Excused boxes (headed P / A / E, with a key at the bottom of the sheet, so the name column stays wide on A4) and a Notes column. A number is blank when none is on file — a junior player's row shows their parent/guardian's mobile, since that's whose number is on the account. Only non-cancelled players on the selected session are listed. Downloading the same roster as a CSV FILE, rather than printing it, is club owner / club admin only, same as every other export below.
Viewing credit balances
Each contact's current credit balance is shown in their contact detail panel.
Communications
Messaging players
Dashboard > Messages supports direct messaging with individual players or groups.
Contacting all session attendees
From a session on the Schedule, "Send message to all attendees" opens the broadcast composer with that class selected under By squad and scoped to the players booked into that session. The composer shows the exact number of people the message will reach before you send, and the Send button carries that number. If the list changes between the moment you reviewed it and the moment you press Send (a new booking, a cancellation), the send is refused and the new number is shown so you can review it again — a broadcast cannot be recalled. This is a service message to people who hold a seat — see "Who receives a broadcast email" below for why it always reaches them.
Group chat
Every class has one group chat (the chat icon on a booking, or Messages, New, Create a channel, Class channel). It is shared by everyone booked into any session of that class plus the coach and club admins, so a post there reaches the whole class, not just one session's attendees. The confirmation before you post states how many people will be notified.
To chat with only some players, use Message class on a session's roster: it makes a separate group chat with only the players you tick, and a post in it notifies just them. Players with no AllSquads account can't be added to a chat. To email everyone booked into one session, use "Send message to all attendees" on that session.
Open a class group chat and use "Manage chat" (in the ⋮ menu) to:
- See who's in it — each person is labelled Head coach, Assistant coach, Admin, Coach or Player, and anyone you added yourself shows "Added by club".
- Add someone — search your contacts who have an AllSquads account (you can narrow the list to active, inactive, parents or members) and add them, even if they aren't booked into the class. They stay in the chat and get its notifications, even as bookings change.
- Remove someone — they stop seeing the chat and its messages and stop being notified, and they stay removed: their next message in the class or their next booking doesn't put them back. Removing someone from the chat never changes their booking. You can add them back later.
Someone who left the chat themselves can't be added back by the club. Any owner or club admin, and the class's head coach, can manage a class group chat. Assistant coaches can't. A class group chat has no rename, one-way/two-way or delete options.
Announcements / Broadcast
Start one from Messages with the New broadcast button. Send broadcast messages to all contacts, to one or more classes (By squad — every player with an active booking on those classes), or to hand-picked players; filter further by class type, sport, or audience (members, non-members, parents, adults, juniors). Whatever you choose, the composer resolves the real recipient count before you send and the Send button names it. A contact with no AllSquads account can only be reached by email, so one with no email address, or one who has unsubscribed from your emails, is not counted.
Finding a broadcast you've already sent. A broadcast isn't a chat, so it doesn't appear in your conversation list. To read one again, or copy it to send to someone else, open Messages and choose Sent broadcasts (under the search box, or beside New broadcast when no conversation is open). The list shows your broadcasts newest first, with when each was sent, who it was addressed to (for example By squad or Members) and how many people it reached. Open one to see the full message and press Copy message. Owners and club admins see every broadcast the club has sent; coaches see the ones they sent themselves. The list shows how a broadcast was addressed, not which individual classes a By squad broadcast went to. It stays available even if your plan no longer includes sending broadcasts.
Who receives a broadcast email. Every broadcast — to all contacts, to a filter (members, sport, class type, etc.), to one or more classes, or to hand-picked players — emails every recipient who has an email address on file, whether or not they have verified their email or activated their AllSquads account, and whether or not they have ever touched their notification settings. People who have switched club announcement emails off in their settings, or clicked "Unsubscribe" on one of your emails, are not emailed (they still get the in-app notification), with one exception: a message to players who hold a booking (By squad, "Send message to all attendees", or hand-picked players who are all currently booked) is a service message, like a booking confirmation or a venue-change notice, and reaches them even if they have switched announcements off.
Segment channels
From Messages, "Create Segment Channel" builds a one-way or two-way chat scoped to an audience filter (sport, class type, specific classes, or "booked in the last N days"), instead of a single class. Membership is automatic — it recalculates whenever bookings change at the club, adding anyone who newly matches the filter — so there's no manual "add a member" step.
Open a segment channel and use "Manage channel" (in the ⋮ menu) to:
- See who's in it — the member list shows each person's join date and whether they've muted the channel.
- Remove someone — they stop seeing new posts and stop being notified, and they stay removed even as the audience filter keeps recalculating (removing someone is a decision that sticks, not something the next booking undoes).
- Rename it.
- Switch one-way/two-way — one-way means only you can post (an announcement feed); two-way lets every member reply. Existing messages are kept either way.
- Delete it — removes the channel for everyone; this can't be undone.
Any current owner or club_admin at the club can manage a segment channel, not just the person who created it.
Analytics
Club analytics
Dashboard > Analytics provides:
- Revenue by period, coach, class, and sport
- Booking volume and trends
- Court hire utilisation and revenue (the Summary tab also has a Court hire card with revenue, bookings and utilisation for the selected range; it shows the same figures as the Court Hire tab and opens it)
- Attendance rates
- Player acquisition and retention
- Fee breakdown (booking fees collected from players + platform fee netted at payout)
Class-level performance
Drill into any class for session-by-session revenue, attendance, and margin breakdown.
Payments and Payouts
Stripe Connect
Each club has its own Stripe Connect account — that is where the weekly payout lands. Multiple clubs under one admin account each require separate Stripe connections. Player payments are processed on the AllSquads platform account (platform-held) and EVERY payment type (classes, court hire, memberships, session packs, subscriptions) accrues into the club's weekly payout; the booking fee is on the price after any promo code or discount the club offers, whatever credits cover (except credit from a cancelled booking, which already paid its fee), and when credits cover a whole booking it is deducted from the club's payout instead of charged to the player. Any fee taken from the payout for a booking (whether credits, a promo code, cash, a voucher or a manual credit paid for it) comes off if the booking is cancelled before the cancellation cut-off; it stays only if the class runs or the cancel is late. If only some sessions or players on a booking are cancelled before the cut-off, their share of the fee comes off, and a fee already taken in an earlier payout is returned on your next payout as a "Booking fee returned" or "Platform fee returned" line. AllSquads absorbs Stripe processing fees.
Changing your payout bank details. Go to Dashboard > Settings > Payouts and choose Manage bank details & payouts. That opens your Stripe Express dashboard in a new tab, already signed in, where you can change the bank account your payouts go to and see your payout history. You can also sign in to it directly at connect.stripe.com/express_login using the email on your Stripe account and the one-time code Stripe sends you. Only the club owner can do this; a coach asking to change the club's bank details should ask the owner.
Fees
AllSquads charges two distinct fees on every booking:
- Booking fee — paid by the player on top of the class price at checkout. Rate depends on class type (group/social 3%, camp 2.5%, term 2.2%, annual 3%, private 2.5%, court hire 3%, drop-in 3%, subscription instalment 3%). Retained by AllSquads from the platform-held charge (no Stripe
application_fee/Connect params). One-off booking fees are floored at 50¢ GST-inclusive. - Platform fee — paid by the club, netted off at payout. Rate depends on club subscription tier (Club Free 5%, Club 2%, Club Pro 1.5%).
Refunds claw back the cash portion only; fees on refunded bookings are not reversed. Historical fee rates are snapshotted at booking time, so subsequent tier or rate changes never re-rate past bookings.
Money paid to you (payouts)
We transfer your earnings to your Stripe account based on when bookings come in. Every week we process the previous 7 days of bookings (the week ending Sunday) — so if a player books a holiday camp 2 months out, you get paid for it this week. No waiting until the session runs, no cooling-off period.
If a booking is later cancelled, the player receives credits at your club (refunds-as-credits per our refund policy), so your cash from confirmed bookings stays with you. Stripe-cash refunds are exceptional and handled case-by-case.
If a booking is only approved after its week has already been paid out, that money is not lost and the paid week is never re-opened: the seat rolls forward and is included in your next weekly payout instead, listed against the date its class actually ran. This applies for up to four weeks after the class; anything older, contact support.
Dashboard > Payments shows three key cards: Last Payout (the most recent payout's amount and the date it was paid to your Stripe account; each payout covers the sessions that ran in its week, by class date, not the week they were booked), Current payout (last week's amount awaiting approval, or this week's accrual), and Total Paid Out (lifetime). There is no separate "Current Balance" card any more — under platform-held payments nothing sits in your Stripe account outside the weekly payout. The payout card on your dashboard Home follows the period selector: while the selected period's money hasn't been paid yet (e.g. the current week) it reads "Current payout" with an ACCRUING badge — Mon–Sun bookings, approved and paid weekly for the week ending Sunday. Once a period's batch has been paid (e.g. Last week once it has been approved) the card reads "Money paid to you" with the recorded paid amount.
In a payout's breakdown every booking is its own line, however it was paid. A booking paid in cash, by voucher or with a manual club credit shows its price in the Cash, Voucher or Manual credits column and the fees on it in the Platform fee column, so those fees come off that week's payout. If the fees fall in a different week from the class (for example, a cash booking made a fortnight ahead), that week's line for the booking shows only its fees, and its price appears in the week the class runs.
A week is only added to your Payouts list once it has been approved — pending figures can still move, so we don't show a number that might change. One exception: a week where a government-voucher booking (see "Government Vouchers" below) is your only activity, and the platform fee on that voucher leaves you with nothing to approve, still shows up — as "$0.00 paid" with the fee amount and "carried to next period" alongside it — rather than looking like an empty week. The fee itself isn't lost either way; it rolls into whichever future payout finally has enough to cover it.
Revenue numbers in your dashboard
The Performance section of your dashboard shows what your classes earned, counted on the day each class runs. The two numbers — money paid to you, and revenue earned — answer different questions, so they won't always match for the same week. That's by design.
How we count revenue per class type:
- Term enrolment — the full term amount shows on the day of the first session of the term.
- Holiday camp — camps booked per-day show as each day runs; a camp booked as a single whole-camp booking shows in full on the camp's first day.
- Drop-in / single session — revenue shows on the day that session runs.
- Private lesson — revenue shows on the day the lesson runs.
- Court hire — revenue shows on the day the court is booked for.
Example: a player buys a $200 term enrolment on April 15 for a term starting May 1. The money is paid to you in the weekly payout for the week of that first session (the week of May 1), not the week it was booked in April. The revenue ($200) also shows in your Performance section on May 1, the day the class actually ran.
Payment links
Generate a payment link for a specific booking or amount to share directly with a player (e.g., for offline or irregular bookings).
Payment links expire: the link itself stops working 24 hours after it's sent (the player sees a clear "expired" page, and you can simply re-send a fresh link), and if a link is still unpaid 48 hours after sending, the pending seat it was holding is released back to the class so it can't block other players indefinitely. A booking you've already collected in cash (marked paid) is never affected — only the unpaid link and its held seat.
Requesting payment on an existing booking
Request payment collects a balance, gap or top-up on a booking that already exists — for example, when a voucher or a part payment left a small amount owing — without creating a second booking or a duplicate enrolment. You choose the amount owing on the class itself; the player is charged that amount plus the standard booking fee, and pays it through a link the same way any other payment link works. It's available from three places: a class booking's roster (open the player's booking panel), a booking row in a contact's booking history, and a court hire or private lesson's detail view on the Schedule.
For a court hire or private lesson booking, Request payment only applies once the booking's own price has already been paid — it's for a top-up on top of that, not the original charge. An unpaid court or lesson booking still uses Send payment link to collect its own price first.
To record cash you collected for a court hire or private lesson booking, open it from the Court Hire bookings list and click Mark paid (Mark unpaid undoes it); the Schedule's booking panel offers Mark paid too, right after you add a cash booking there. This is saved on the booking, so it still shows as paid after you reload the page, in the booking's details and in your reports. Only a cash booking can be marked this way: card, payment link and credit bookings are marked paid when the payment arrives. Marking a cash booking paid doesn't change any cancellation credit.
A cash player you add to a class counts as paid. If they still owe you, open the class in Bookings and set the Cash Paid chip on their row to Cash Unpaid; click it again once you've collected the cash. On the Schedule, open the class and click the $ (Mark cash paid) button on a player who still owes you. Either way it's saved on the booking, so it still shows after you reload the page. A cash booking marked unpaid shows as Cash Outstanding in Analytics and isn't counted in Club Revenue until you mark it paid. Only a cash booking can be marked this way, and marking it paid or unpaid doesn't change the booking itself or any cancellation credit.
Booking while a session is running, and adding players afterwards
- A class stays publicly bookable while its session is in progress — players can book and pay right up until the session ends. It leaves public booking once the session is complete.
- After a session has finished, a club admin (not the coach role) can still add a player to it retrospectively — for late arrivals and cash walk-ins — using Add Player on that session, with payment as cash, a payment link, or as a no-charge attendance-only entry.
- The retrospective window runs until that week's payout has been finalised. Payouts are compiled weekly, in the week after the week ends, so in practice you can add to any session in the current payout week, right up to that compile. Once a week's payout has been finalised, that week is fixed and the retrospective window for its sessions is closed — a payout figure you have already been shown can never move underneath you. Attendance-only records for an older session are still possible; ask support.
- Term classes work differently, because a term is paid as one lump. A term enrolment's money is settled in full in the week of the term's first session, not week by week. So the retrospective window for every session in a term follows that first week: once the term's opening week has been paid out, adding a player to a later session in that term is closed too, even though the session itself only ran a few days ago. Camps and casual/weekly classes follow the session's own week as you'd expect.
- When the window has closed, Add Player is greyed out on that session and tells you why — "This session has been paid out". You'll never be sent through the form only to be refused at the end.
- For a completed session, an unpaid payment link also expires when that payout window closes, if that's sooner than the usual 48 hours.
Internal bookings
Coaches and admins can create internal (no-charge) bookings for complimentary spots, staff access, or administrative purposes. Internal bookings appear on the roster with a distinct badge. A player with an AllSquads account gets the same messages as for an online booking (confirmation, reminders, changes and cancellations); a player without an account isn't sent any. A free member court booking a player makes for themselves is not an internal booking in this sense, and gets its normal messages.
Reviews
How reviews are attributed to the club
After an attended session, players review in a two-part flow: a club review (primary — star + comment about your organisation) and an optional coach review of the coach who taught the session. Each part aggregates to its own target:
- The club part counts toward your club's profile and public rating. A player leaves at most one club review of your club, regardless of how many classes or coaches they book.
- The optional coach part counts toward the individual coach's profile and rating (it does not change the club rating).
- The aggregate club rating reflects club reviews only — players review the business identity, not the staff turnover behind it (2026-06-12).
Where to find reviews
Dashboard > Reviews ("Reviews for your organisation" for a real club) shows two tabs: Club reviews (reviews of your organisation — the default) and Coach reviews (reviews of individual coaches at your club, with a per-coach filter). Each row shows the reviewer's name, rating, body, the class name (linked), and any public response. (An independent coach whose account has only an auto-created personal org — never a real multi-coach club — sees this page headed "Reviews for your coaching business" instead, with copy about their own coaching rather than "your club"/"your organisation.")
Responding to a review
Dashboard > Reviews > select review > Respond. Post one public response visible below the review on your club profile; responses can be edited within 24 hours.
Appealing/flagging a review
Dashboard > Reviews > select review > Flag. Submit a reason (Inappropriate content, Factually incorrect, Not a real booking, or Other). The review stays visible while AllSquads admin reviews the appeal. If the appeal is upheld, the review is removed.
Review invitations and reminders
- AllSquads emails the player about a day after their attendance is marked. It does not matter what time of day you mark the roster — every attended booking earns an invitation.
- A player who has already reviewed your club is not invited again; they can only leave one review per club.
- Where a player has several classes newly marked attended, their invitations are paced over the following days (at most one per club per day, and no more than three review emails to the same person in a day) instead of arriving in one burst.
- If they haven't reviewed after 7 days, AllSquads sends one (and only one) reminder.
- There is no further follow-up email, and there is no hard deadline — a player can leave a review at any time afterwards via the class page.
Pro Shop (Products and Services)
Clubs can sell physical products and services directly through AllSquads via the Pro Shop section in the dashboard.
Adding products
Dashboard > Pro Shop > Add Product:
- Name, description, category, and price
- Upload product image (optional — not required)
- Set stock availability
Hire items
A product can be a Sale (the standard shape above) or a Hire — a per-hire charge such as racquet or padel hire, with no shipping/collection step and no permanent stock count-down. When adding or editing a product, switch its type to Hire and fill in Access instructions — a short note telling a player where to collect the item (for example, "Racquets are in the locker by court 3, code 1234"). This text is the same for every player who hires the item — it isn't a per-booking code — and it only appears for a booking that actually included that hire item and was paid for, never shown to a player who didn't add it. The player sees it in the booking details (My Bookings, web and the app) and in their court booking confirmation email, so they still have the code after the confirmation page.
Hire items appear as an "Add extras" option during court/facility hire checkout (with a quantity picker) and can also be purchased from the Pro Shop page against an existing booking. They're charged, refunded and reported exactly like any other Pro Shop item — see Online payment + payouts below — and cancelling the court booking cancels and credits/refunds any hire items on it under the same policy as the booking itself.
Checkout upsells
A product marked "Show as upsell" can appear on the cart at checkout. The cart shows at most one upsell per checkout, chosen from the products that match the booking: "Show as upsell for" tags filter by booking type (group / camp / private / court hire), and the audience tags — Juniors / kids only and Adults only — make sure the right gear reaches the right buyer (a juniors-only product never appears on an adult-only cart; it shows when the cart has a child attendee or a kids class). Ticking both kinds of tag on one product — say Juniors / kids only and Group lessons — narrows it on both counts at once: the booking has to be a group one and a junior one. Products pinned to specific classes take priority for those classes. Leave all tags unchecked to offer the product on any booking.
AllSquads picks that single upsell on the server, so the audience gate and the one-per-checkout cap apply on every route into the upsell list — a full cart, a single class, or a bare booking type on its own. Where the buyer's audience can't be established (a booking type by itself says nothing about who is playing, and neither does a class we can't identify), no audience-tagged product is offered at all: only a generic (untagged) product can surface, never the whole catalogue. The upsell box shows the product's uploaded image (or a placeholder icon when none is set) and a single truncated line of its description, alongside price and an Add control.
Pro Shop hours
Clubs can set Pro Shop open hours (e.g., Mon–Fri 9am–5pm) in Dashboard > Settings. Hours are displayed to players when ordering.
Player experience
Players can browse and purchase products from the club's profile page under the Shop tab (shown only when products are available and the club has Pro Shop enabled in its public-profile content settings). When ordering, players choose Pay now (card payment online via Stripe) or Pay at pickup (legacy pay-on-collection). All orders are collected at the club. After an order is placed, the club is notified to prepare it for pick-up.
Pro shop member pricing
When a club's membership product is configured with a pro-shop discount, an active member sees "Member price $X" alongside the standard price on every product it applies to, and the discounted amount is what's actually charged at checkout — calculated server-side, never a client-side estimate. The discount applies the same way whether the player pays now or pays at pickup. Non-members, and members whose membership doesn't carry a pro-shop discount, see the standard price only.
Who sold it (seller attribution)
Each order records who sold the item. When a player adds a pro-shop item during a class checkout (an add-on/upsell), the order is attributed to that class’s head coach and shows as "Sold by [coach]" on the Orders tab and in the CSV export (sold_by column). Direct shop-front purchases show "Shop front". Each order also shows the buyer's name. Attribution is informational: pro-shop revenue is settled to the club in the weekly payout regardless of who sold the item.
Online payment + payouts
Online pro-shop payments are platform-held charges: funds land on the AllSquads platform account and the club is settled through the same weekly payout batch as class bookings, court hire and memberships (net of the club's tier platform fee — AllSquads absorbs Stripe processing fees). A paid order is paid out to the club once you mark it Collected on the Orders tab (Ready, then Collected), hire items included. Until then it shows in your sales but not in your payout. It is included in the next weekly payout after you mark it Collected, listed against the week the player paid.
Cancelling an order
Cancel an order from Dashboard > Pro Shop > Orders with the cross on its row (available while it is pending or ready). You're asked to confirm first, with the amount the player will get back. If the player paid online, cancelling gives them the item price back as account credit at your club straight away, the same as a cancelled booking: it shows in their balance and on their contact. An order that has already been paid out to you can't be cancelled; to give the player something back, add a manual club credit. The booking fee is not credited. A cancelled order is not paid out to the club and is no longer counted in your revenue. A cancelled paid order can't be reopened. An order the player was going to pay at pickup simply cancels; nothing was charged, so there is no credit.
Sharing the Pro Shop
Dashboard > Settings > "Share your booking page" now includes a Pro shop card (shown when the club has products) with a shareable link, QR code download, and email/social share — pointing to /clubs/[slug]/shop.
Public profile content toggles
Dashboard > Settings > "Share your booking page" > Public profile content card: toggle which content types render on the public club profile, share links and embeds — Classes & coaching, Court hire, Pro shop. A toggled-off type's tab disappears from /clubs/[slug] and its share/embed options are hidden. All types default to enabled.
Your data and exports
The contact data, booking records and payout data collected under your club account belong to your club (Coach and Club Agreement, "Data scoping" and "Data exports and deletion"). There is no single "export everything" button; each area of the dashboard has its own export, and anything not covered below can be requested from support.
What you can export today
| Export | Where | Format | What it contains | Who can run it |
|---|---|---|---|---|
| Contacts | Dashboard > Contacts > Export | CSV | Every contact in your club's contact book: name, email, phone, type, status, source, total bookings, total spend, last booking. Filter first to export a subset. | Club owner / club admin |
| Bookings | Dashboard > Bookings > Export CSV | CSV | The current view or a chosen date range of bookings, with player, class, session and payment status. | Club owner / club admin |
| Roster CSV | A session's roster > CSV | CSV | The same attendance sheet as the print sheet below, as a downloadable file. | Club owner / club admin |
| Payments | Dashboard > Payments > Export > Export CSV | CSV | Every transaction line in the date range you choose: class, court hire, membership and pro shop payments with the player, amount, fees and payout figures. | Club owner / club admin |
| Reports | Dashboard > Reports > Export PDF / Export CSV | PDF, CSV | The selected period (week, month, quarter or financial year): the PDF is the summary statement, the CSV is every booking line in that period, including membership and pro shop rows. Both match the on-screen figures. | Club owner / club admin |
| Analytics | Dashboard > Analytics > Export | CSV | The active tab and date range as shown (revenue by period, class performance, court hire, and so on). | Club owner / club admin |
| Pro shop orders | Dashboard > Pro Shop > Orders > Export CSV | CSV | Every order: product, quantity, total, customer name and email, who sold it, status, date. The button is available once the club has at least one order. | Club owner / club admin |
| Payout statement | Dashboard > Payouts > View PDF on a payout | The statement for one payout period. | Club owner / club admin |
The one exception across all of the above: any coach, head coach or host assigned to a class can still print that class's roster as an attendance sheet (see "Printed attendance sheet" above) — printing isn't a file export, and coaches need it on court. Coach team members (coach, head coach, host) cannot run any of the file exports/downloads in the table above; an independent coach's own personal dashboard is unaffected — this table describes a real club's dashboard.
Each player can also download a copy of their own personal data from My Profile > Privacy; that export belongs to the player, not the club.
What is not covered by an export
These records are visible in the dashboard but have no download of their own: membership lists (members, tier, start and expiry dates), class rosters and attendance history, upcoming and past booking lists, court hire booking lists, player credit balances and credit history, messages and announcements, reviews, waitlists, your team (staff) list, class and program definitions, venue and court configuration, and promo codes. If you need any of these as a file, contact play@allsquads.com.au and we will supply them.
Leaving AllSquads
If your club decides to close its account, run the exports above first, then contact play@allsquads.com.au in writing. We will supply any of the records listed above that you need, and your club's operational presence — its public page, dashboard access, staff access and branding — is closed once you confirm. Closing your club does not delete your players' or coaches' accounts or their booking history: a player may play at other clubs and a coach may work at other clubs, and their own account and bookings stay theirs. Records that tax and payment regulations require us to keep are retained for the legally required period; everything else is deleted after closure. You own your contact data, booking records and payout data and can export them; some records are retained afterwards for the period tax and payment law require, and we tell you which.
Settings
Personal profile vs Club settings
Personal profile settings (name, photo, bio, notifications, account) are accessed via the top-right avatar menu > My Profile at /dashboard/profile. This is separate from club Settings.
Club profile
Dashboard > Settings > Organisation Profile. Update club name, description, sports, logo, cover image, contact details (email, phone, website, Instagram, Facebook), and social links.
Image sizes
Each upload shows its best size under the button. Use JPG, PNG or WebP, up to 5MB.
- Cover image: 1600 × 900 (16:9). Your club page crops the banner from the middle: a wide strip on a computer, close to square on a phone. Keep text and faces centred.
- Logo: 400 × 400, square.
- Class image: 1600 × 900 (16:9). Keep the action in the middle; the class page crops the top and bottom.
- Competition cover: 1600 × 900 (16:9). Keep the action in the middle; the competition card on your club page crops the top and bottom.
- Pro Shop product photo: 1200 × 900 (4:3), with the product in the middle.
Amenities
Dashboard > Settings > Profile > Amenities. Toggle which facilities and amenities the club offers (e.g., Parking, Changerooms, Café, Equipment Hire, Lighting, Wheelchair Access). Selected amenities appear on the club's public profile. For a directory club with Google opening hours on file, the same Amenities card also lists those hours (marked "Hours from Google"); the card shows the hours on their own if no amenities are selected.
Consumer-facing club profile (tab order)
The public club profile page (/clubs/[slug]) Overview tab displays sections in this order: About (description + social links) → Stats (members / classes) → Coaches → Court/Facility hire → Upcoming Classes → Amenities → Map. Class cards on the profile show the class image, formatted next session date/time (e.g. "19 Apr · 9:00am–10:00am"), and price. Which tabs appear (Classes, court/facility hire, Shop) follows the club's public-profile content toggles. The court/facility hire tab and its booking button are named for the sports the club actually has active courts for — a single-sport club sees its own sport in the label (e.g. "Pickleball court hire"), a club with more than one court sport but the same resource type sees the resource named generically (e.g. "Court hire"), and a club whose court sports use different resource types (for example both courts and swimming lanes) sees "Facility hire". The tab a player has open is kept in the page address, so pressing Back after opening a coach or class from it returns to that same tab.
Consumer-facing club profile filters
The Classes tab filter options are derived from the club's actual published classes — no fixed lists. Type options use the canonical class-type taxonomy (Term, Group, Private, Social, Camp, Court hire, One-off — term classes are correctly identified by their schedule even though they're stored as "group"); Sport and Day options only show values the club actually runs. All filters combine (AND) with Level, Audience and availability.
Venues
Dashboard > Settings > Venues. Manage multiple venues under a single club — add a venue with the Add venue button (or from the Venue field in the class wizard) and edit any venue's name and address inline. Each venue can have its own courts and address. One venue is included on every plan; additional venues are a Club Pro feature, and the Add venue button shows an upgrade prompt on other plans.
Embeddable widget
Dashboard > Settings > "Share your booking page" > Embed widget card. Generate an iframe snippet to place the AllSquads booking widget on the club's own website. The widget type selector is multi-select: pick any combination of Coaching, Court hire and Pro shop — one snippet renders all selected surfaces as tabs inside the iframe (?type=coaching,court-hire,pro-shop). Single-type embeds still work, and legacy ?type=both snippets keep working. Players can browse, book classes/courts and buy pro-shop products without leaving the club's site.
Website chat widget
Dashboard > Settings > Website Widget. Generate a JS snippet for the club's website that adds a branded AI chat agent. Players can ask questions and book classes directly via the chat widget.
Notification preferences
Dashboard > Settings > Notifications. Configure which events trigger notifications to the club admin.
Two-factor authentication
Every staff member (owner, club admin, coach or host) can add a second sign-in step using an authenticator app (Google Authenticator, Authy, 1Password or similar) — off by default, on per person, on their own account.
The owner or a club admin can also require it for everyone on staff at the club. Dashboard > Settings > Security > Require two-factor authentication for staff. You need two-factor on your own account before you can turn this on — otherwise switching it on would lock you out of your own dashboard, so setting yours up is the first step. Once it is on, every other staff member must set up two-factor before they can use the club dashboard again: instead of the dashboard they see a single screen explaining that the club requires it, with the setup steps and a sign-out button. Players are never affected. Turning the setting off does not remove anyone's existing two-factor authentication, it only stops requiring it for anyone who hasn't set it up yet. The Security section also shows a simple list of who on staff has it on, so an owner or admin can see who still needs to set it up — while the requirement is on, anyone still off is highlighted as "Off — blocked until they enrol", so it's easy to spot who to follow up with. With the requirement off, the list still shows On or Off for everyone, just without the highlight, since nobody is blocked yet.
To set up your own: Dashboard > Settings > Security > Turn on two-factor authentication. On a computer, scan the QR code with your authenticator app (or choose Can't scan? Enter key). On a phone or in the app, tap Add to authenticator app and your phone offers the app you use, such as Apple Passwords, Google Authenticator or 1Password (or choose Enter key manually). Then enter the 6-digit code from the app to finish. On iPhone the code may be saved in Apple Passwords, which is an authenticator app too and fills the code in when you sign in. You are then shown 8 backup codes once — save them somewhere safe. Each backup code signs you in a single time if you lose access to your app. If you staff more than one club, setting it up once covers every club you're on staff at.
Once on, signing in with your email and password asks for the 6-digit code (or a backup code) after your password. Signing in with Google or Apple is not affected — those sign-ins are not asked for a code. Text-message (SMS) codes are not offered.
Remembering a device
When you enter your code, you can tick Remember this device for 30 days, which is ticked by default. That browser then stops asking for the code for 30 days. It never stops asking for your password: every sign-in still needs it, and a device you have remembered gives nobody access without it.
The devices you have remembered are listed under Security beside the two-factor settings, showing the browser, when it was last used and when it expires, with the one you are using marked. Remove any of them, or all of them, and the next sign-in on that browser asks for a code again.
Some things clear every remembered device by themselves: changing or resetting your password, turning two-factor off or setting it up again, using a backup code to sign in, "sign out everywhere", and a support reset. If you sign in with a backup code, that browser is never remembered — a backup code means something has gone wrong with your usual device, so we ask again next time.
To turn it off: Dashboard > Settings > Security > Turn off and enter a current authenticator code or a backup code. If you have lost both your authenticator app and your backup codes, contact support@allsquads.com.au — the support team can remove two-factor from your account after confirming your identity, and that action is recorded.
Full Feature Access
Club (business) accounts have full access to all platform features including Court Hire, Pro Shop, Promo Codes, and Team Management. These features are not gated or upsell-locked for business accounts — they are available immediately upon account creation. The exception is inviting team members, which needs a paid Club plan (Club Free doesn't include team members; see Team Management above). Independent coaches who upgrade to a Business account gain the same full access.
