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)
- 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.
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. New venues are added during onboarding (or via the class wizard's venue step); migrated clubs should check their imported addresses here — v1 imports initially carried a single combined venue that may need correcting or supplementing.
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)
- 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.
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).
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)
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.
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.
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.
- 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.
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
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.
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: different rates by day of week if required
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
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
Managing court hire bookings
Dashboard > Court Hire shows all upcoming and past court hire bookings. Admins can cancel individual bookings or entire recurring series.
Memberships
Memberships are managed inline on each contact in Dashboard > Contacts — there is no dedicated "Memberships" page. Open a contact in the right-side drawer, set membership_status (active / expired / none) and membership_expires_at. The contact's member pricing activates as soon as status is set to active.
Member pricing follows the club's membership model (clubs.membership_model): 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, 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.
Membership renewals
Memberships with an expiry date trigger a renewal notification to the contact before expiry. Admins update the renewal manually from the same contact drawer.
Discounts
Creating discount rules
Discounts are configured under Dashboard > Promo Codes (which covers both promo-coded discounts and non-coded discount rules). For each:
- Name (e.g., Sibling Discount, Early Bird)
- Type: percentage or fixed amount
- Applies to: specific classes, class types, or all classes
- Conditions: e.g., minimum booking count, promo code required, date range
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.
Contact detail panel
Each contact shows: booking history, payment history, membership status, credits balance, notes, tags, and emergency details.
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.
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 any session detail, Contact Everyone sends a message to all players enrolled in that session.
Group chat
Sessions support a group chat accessible to all enrolled players and the coach.
Announcements / Broadcast
Send broadcast messages to all contacts or filtered segments (by tag, sport, membership status, class enrolment, class type, or sport). The broadcast composer includes class type and sport filter dropdowns to target specific player groups.
Analytics
Club analytics
Dashboard > Analytics provides:
- Revenue by period, coach, class, and sport
- Booking volume and trends
- Court hire utilisation and revenue
- 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; both fees described below are calculated on the cash portion of each payment and credits never attract a fee. AllSquads absorbs Stripe processing fees.
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 Monday we process the previous 7 days of bookings — 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 (amount + booking week of the most recent batch), Current payout (last week's amount awaiting Monday 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 & paid Monday. Once a period's batch has been paid (e.g. Last week after Monday's approval) the card reads "Money paid to you" with the recorded paid amount.
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. You're paid the cash on April's weekly Monday batch. But the revenue ($200) shows in your Performance section in May, on the date of the first session — that's 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.
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, on the Monday 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.
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
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.
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". 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). Paid orders appear in the club's payout figures the week the payment lands.
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.
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.
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.
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 → 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 & Squads, court/facility hire, Shop) follows the club's public-profile content toggles.
Consumer-facing club profile filters
The Classes & Squads 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. Each venue can have its own courts and address.
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.
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. Independent coaches who upgrade to a Business account gain the same full access.