Phoenix Suite

Phoenix Suite — User Guide

For gym owners, dojo operators, and studio administrators

Version 1.0 · April 2026 · Phoenix Suite

Phoenix Suite — Organisation User Guide

For gym owners, dojo operators, and studio administrators


Welcome to Phoenix Suite

Phoenix Suite is your all-in-one management platform for running a gym, dojo, or fitness studio. This guide covers everything you need to get your organisation set up and running.


Table of Contents

  1. Getting Started
  2. Dashboard
  3. Managing Students
  4. Subscription Plans & Billing
  5. Classes & Scheduling
  6. Martial Arts Management
  7. Fitness & Personal Training
  8. Exercise Library & Plan Builder
  9. Shop & Point of Sale
  10. Attendance & Check-In
  11. Contracts & Forms
  12. Messaging
  13. Marketing & Events
  14. Public Website
  15. Reports & Analytics
  16. Accounting Integration
  17. Equipment & Inventory
  18. Settings & Configuration
  19. Staff Management
  20. Staff Timesheets & Payroll
  21. Leads Pipeline
  22. Email Sequences (Drip Campaigns)
  23. Families & Household Accounts
  24. Membership Freezes
  25. Gift Cards & Vouchers
  26. Webhook Integrations
  27. Custom Fields
  28. Attendance Streaks
  29. Student Class Booking
  30. Kiosk & Workout Display
  31. Student Portal
  32. (moved to #52 — FAQ is now at the bottom)
  33. Installment Plans
  34. Referrals
  35. Promo Codes
  36. Class Credit Packages
  37. Virtual Classes
  38. Marketing Automation (Drip Sequences)
  39. Events & Public RSVP Links
  40. Native Payroll + Single Touch Payroll (STP Phase 2)
  41. BAS-ready Monthly Report
  42. Accounting Sync (Xero + QuickBooks Online)
  43. Multi-Location / Franchise Org Groups
  44. AI Insights
  45. Developer API
  46. White-Label Mobile App
  47. Video Library
  48. Community Features
  49. Self-Service Freezes
  50. Partner Organisations (super-admin)
  51. Data Export (Privacy Act / GDPR)
  52. Frequently Asked Questions

1. Getting Started

First Login

  1. Navigate to your Phoenix Suite URL (e.g., https://app.yourdomain.com)
  2. Enter your admin email and password
  3. You'll be directed to the Dashboard

Initial Setup Checklist

After your first login, complete these steps in order:


2. Dashboard

The Dashboard provides an at-a-glance overview of your organisation:


3. Managing Students

Adding a Student

  1. Go to Students in the sidebar
  2. Click "Add Student"
  3. Fill in: first name, last name, email, phone, date of birth
  4. Emergency contact details
  5. Subscription Plans: Click the dropdown to add plans (e.g., "Karate Weekly $38.99/wk")
  6. Medical notes (optional)
  7. Click "Add Student"

The student will receive login credentials and can access the student portal.

Viewing a Student

Click any student row to see their full profile:

Editing a Student

Click "Edit" on the student list or within their profile to update details, change subscriptions, or modify their status (active, frozen, overdue, cancelled).


4. Subscription Plans & Billing

Creating a Plan

  1. Go to PaymentsPlans tab
  2. Click "Create Plan"
  3. Configure:
  4. Name: e.g., "Karate Weekly", "PT Group Sessions"
  5. Module: Martial Arts or Fitness
  6. Discipline (optional): link to a specific discipline
  7. Base Price: e.g., $38.99
  8. Frequency: weekly, fortnightly, monthly, quarterly, annual, per session
  9. Session Type: unlimited, group, or private
  10. Sessions per week (if not unlimited)
  11. Click "Create"

Adding Discount Rules

  1. Click "Manage" on any plan
  2. In the plan detail, click "Add Discount Rule"
  3. Configure:
  4. Rule Name: e.g., "40% off with Martial Arts"
  5. Condition: "Has module subscription" → "Martial Arts"
  6. Discount Type: Percentage or Fixed
  7. Value: e.g., 40 (for 40%)
  8. The discount automatically applies when a student with a martial arts subscription is assigned this plan

Linking Classes to Plans

In the plan detail, scroll to "Linked Classes":

  1. Click "Link Classes"
  2. Check the classes included in this plan
  3. Save

When a student is assigned this plan, they're automatically enrolled in all linked classes.

Assigning Plans to Students

On the Students page, edit a student and use the plan picker dropdown to add subscription plans. The system automatically calculates discounts based on their other subscriptions.


5. Classes & Scheduling

Creating a Class

  1. Go to Classes in the sidebar
  2. Click "Add Class"
  3. Fill in: name, module (Martial Arts/Fitness), type, day, time, duration, capacity, instructor
  4. Click "Create"

Weekly Schedule View

Switch to the "Weekly Schedule" tab to see all classes laid out on a visual timetable, colour-coded by module.

Managing Sessions

Click any class card to see its detail:

Generating Sessions

In the class detail, click "Generate Sessions", select a date range, and sessions will be created for every occurrence of the class's day within that range.


6. Martial Arts Management

Setting Up Disciplines

  1. Go to Martial Arts in the sidebar
  2. Click "New Discipline"
  3. Enter: name (e.g., Karate), style (e.g., Shotokan), grading system (belts/sashes/patches/levels)
  4. Click "Create"

Defining Ranks

  1. Click "Manage Ranks" on the active discipline
  2. Add ranks in order (first = starting level):
  3. Type a name (e.g., "White Belt") → colour auto-detects
  4. Adjust colour manually with the colour picker
  5. Set stripe (none/white/black) for styles with centre belt stripes
  6. Set Dan/Bar count for advanced ranks (gold bars appear on the swatch)
  7. Click "Save Ranks"

Setting Requirements

On the "Requirements" tab:

Managing the Syllabus

On the "Syllabus" tab:

  1. Filter by rank
  2. Click "Add Item" → choose rank, category (kata, technique, sparring, theory, fitness), name
  3. Mark as required or optional
  4. Staff can check items off on a student's detail page as they demonstrate competency

Grading Readiness

The "Grading Readiness" tab shows all enrolled students with progress bars for:

Running a Grading

  1. Go to the "Gradings" tab
  2. Click "Create Grading" → name, date, location, examiner, testing fee
  3. From the Readiness tab, click "Invite Eligible to Grading" → select the grading event
  4. Students receive the invitation in their portal and can pay the fee
  5. On grading day, in the grading detail, mark each candidate: pass / fail / deferred
  6. Click "Complete Grading" → passing students automatically receive their new rank

7. Fitness & Personal Training

Programs

Programs are containers for exercise plans. Types:

To create:

  1. Go to FitnessPrograms tab
  2. Click "Create Program" → name, type, description
  3. Click the program card → "Link Exercise Plan" → select plans with day labels
  4. "Assign Client" → select students

Body Metrics

Staff can record body measurements for fitness clients:


8. Exercise Library & Plan Builder

Building the Exercise Library

  1. Go to Exercises in the sidebar
  2. Click "Add Exercise" → name, category, muscle groups, equipment, instructions
  3. Categories: strength, cardio, flexibility, balance, plyometric, technique, kata, sparring, drill, warmup, cooldown

Creating an Exercise Plan

  1. Go to Fitness or Martial Arts → Exercise Plans tab
  2. Click "Create Exercise Plan" → name, type (individual/class/template), duration
  3. Click the plan card to open the Plan Builder

Using the Plan Builder

  1. Add Section: Warmup, Main Workout, Cooldown
  2. Within each section, add:
  3. Superset: paired exercises done back-to-back (e.g., A1 Pushups / A2 Curls × 4 rounds)
  4. Circuit: multiple exercises in sequence without rest
  5. Standalone Exercise: individual exercise
  6. Configure groups: rounds, rest between rounds, timed/rep-based
  7. Add exercises from the library with sets, reps, duration, rest, weight notes

9. Shop & Point of Sale

Adding Inventory

  1. Go to Inventory"Add Item"
  2. Fill in: name, category, colour, brand, price, cost, stock level
  3. Size Variants: Add sizes (Small, Medium, Large) with individual stock counts
  4. Click "Add"

Making a Sale (POS)

  1. Go to Shop / POSPoint of Sale tab
  2. Click products to add to cart (select size if variants exist)
  3. Adjust quantities with +/- buttons
  4. Select customer (student or walk-in)
  5. Choose payment method: Cash, Card, or Account
  6. Click "Complete Sale"
  7. Print receipt or start a new sale

Processing a Refund

  1. Go to Shop / POSOrders tab
  2. Click an order → "Process Refund"
  3. Select items and quantities to refund
  4. Choose type: refund, exchange, or warranty
  5. Toggle "Return to stock" per item (off for defective items)
  6. Enter reason → "Process Refund"

10. Attendance & Check-In

Setting Up

  1. Go to SettingsAttendance & Check-In
  2. Enable the check-in methods you want: Kiosk, Token/RFID, Self Check-In
  3. Create a kiosk device → copy the token

Kiosk Check-In (iPad/Tablet)

  1. Open /kiosk on the tablet
  2. Paste the kiosk token → Activate
  3. Students see their photos → tap to check in
  4. RFID scanners connected to the tablet auto-trigger via the hidden input field

Workout Display

  1. Open /workout-display?token=YOUR_KIOSK_TOKEN on a TV/projector
  2. Select a class session to display the workout plan
  3. Use the timer: Countdown, Tabata, AMRAP, EMOM, or Stopwatch
  4. Tabata timer: configure work/rest seconds and rounds

Self Check-In

When enabled, students see a "Check In" button on each class card in their portal.


11. Contracts & Forms

Setting Up Contract Templates

  1. Go to Contracts → Click "Seed Templates" to generate 5 Australian-compliant templates
  2. Each template includes merge fields like {{student_full_name}} that auto-fill with student data
  3. Edit any template: adjust the wording, toggle witness/guardian requirements
  4. "Copy" any contract to create variations

Assigning Contracts

  1. Click "Assign" on any contract
  2. Select students (multi-select with Select All)
  3. Set an optional due date
  4. Students see pending contracts in their Documents page
  5. View who's signed and who hasn't via the "Assigned" column

Setting Up Forms

  1. Go to Forms → Click "Seed Templates" for Medical History, Fitness Assessment, and Grading Exemption
  2. Or create custom forms with the Field Builder:
  3. Available types: heading, info text, text, long text, email, phone, date, number, dropdown, radio buttons, checkbox
  4. Set each field as required/optional
  5. Reorder with up/down arrows

Reviewing Submissions

Click the submission count on any form to see all submissions → approve or reject each one.


12. Messaging

Sending Messages

  1. Go to Messages"New Message"
  2. Choose the channel:
  3. In-App: Message appears in the student's portal
  4. Email: Sends a branded email (uses your org colours and logo)
  5. SMS: Sends a text message to the student's phone
  6. Select a student, enter subject (for email) and message body
  7. Click Send

Messages sent via email or SMS are tagged with a channel badge (email icon or phone icon) in the conversation thread.

Two-Way Email

When you send an email, a unique reply-to address is embedded (e.g., replies+token@reply.yourdomain.com). When the student replies from their email client, the reply threads back into the same conversation in Phoenix Suite automatically.

Setup required: Cloudflare Email Routing with a Worker (see Deployment Guide).

Two-Way SMS

If your organisation has a dedicated SMS number (provisioned in Settings), students can reply to SMS messages and their replies thread back into the conversation.

Getting a number: Settings → SMS Messaging → "Find Available Numbers" → select and purchase (~$6/month for an AU mobile number).

Viewing Conversations

The Messages page shows all conversations in a sidebar. Click a conversation to see the full thread with channel badges showing how each message was sent/received.

Students Messaging Staff

Students can initiate conversations from their portal Messages page by selecting a staff member.


13. Marketing & Events

Requires the Marketing module license.

Creating a Campaign

  1. Go to Marketing"Create Campaign"
  2. Configure: name, type (blast/event promo/special/newsletter), channel (email/SMS/both)
  3. Select audience: all students, active only, or by discipline
  4. Write email subject + body (HTML), and/or SMS body
  5. Save as draft → Click "Send Now" when ready

Marketing emails are automatically branded with your organisation's colours, logo, and footer.

Creating Events

  1. Go to MarketingEvents tab → "Create Event"
  2. Fill in: name, type (seminar/trip/workshop/social/competition), date, location, price
  3. Optional: early-bird pricing with deadline, capacity limit
  4. Bookings are tracked with payment status

Marketing Templates

Phoenix Suite includes 30 pre-built marketing templates (15 email + 15 SMS) covering common events:

TemplateEmailSMS
Grading Invitation / ReminderYesYes
Grading ResultsYes
Christmas Breakup PartyYesYes
Holiday ScheduleYesYes
Overseas Training TripYesYes
Open DayYesYes
Refer a FriendYesYes
Fundraiser EventYesYes
Seminar AnnouncementYesYes
CompetitionYesYes
New Term StartingYesYes
Membership RenewalYesYes
Welcome New MemberYesYes
Class CancellationYesYes
School Holiday CampYesYes
Payment ReminderYes

Loading Templates:

  1. Go to MarketingTemplates tab
  2. Click "Load Template Library" to seed all system templates
  3. Filter by: All, Email, SMS, Marketing, Reminders, Transactional

Previewing:

Click "Preview" on any template to see it rendered with your organisation's branding (colours, logo, name, address).

Using in a Campaign:

Click "Use in Campaign" to pre-fill a new campaign with the template content. Edit the placeholder fields (e.g., [DATE], [TIME], [PRICE]) and send.

All email templates automatically use your org's brand colours from Website → Branding settings.

Email & SMS Setup

Option 1: Phoenix Messaging (recommended)

Phoenix Suite manages the email and SMS infrastructure for you. No API keys needed — just start sending.

Option 2: Bring Your Own Keys

In Settings → scroll to the advanced section under SMS:


14. Public Website

Requires the Website module license.

Setting Up Your Site

  1. Go to Website in the sidebar
  2. Branding & Theme tab: set colours (primary, secondary, accent, background), fonts, logo, social media links
  3. Content tab: configure hero headline/image, about section, toggle sections on/off
  4. SEO tab: site title, meta description, keywords, Open Graph image
  5. Click "Publish Site" to make it live

Your site is accessible at http://your-server:3003/your-org-slug.

Managing Blog Posts

  1. Go to WebsiteBlog tab
  2. Click "New Post" → title, content, featured image, SEO fields
  3. Set status to "Published" to make it live

Handling Trial Leads

Trial signups from the public site appear in the Trial Leads tab with a pipeline: New → Contacted → Converted / Declined.


15. Reports & Analytics

Go to Reports in the sidebar. Available reports:

ReportWhat It Shows
StudentsTotal/active/frozen/overdue, monthly new student trend, per-student value
RevenueMRR/ARR, subscription breakdown, shop/grading/event revenue
UtilisationPer-class capacity vs. enrolled vs. average attendance with % bars
AttendanceSessions, attendance rate, check-in methods, highest-absence students
InventoryStock summary/value, top-selling items, low-stock alerts
TrialsTotal/converted/declined, conversion rate
MarketingCampaign performance, communications stats

Exporting

Date Filtering

Use the From/To date pickers at the top to filter any report by date range.


16. Accounting Integration

Go to Accounting in the sidebar (admin-only).

Setup

  1. Connection tab: Select your accounting software (Xero, MYOB, QuickBooks, or CSV)
  2. For cloud software: Click "Connect" to authenticate via OAuth2
  3. For CSV: No connection needed — just export

Account Mapping

On the Account Mapping tab, configure your chart of accounts. Pre-populated with Australian defaults:

Generating Journal Entries

  1. Go to Journals tab → Click "Generate"
  2. Select a date range
  3. Phoenix Suite creates double-entry journal entries from all financial transactions
  4. Review entries → Click "Sync All Pending" to push to your accounting software (or export CSV)

Depreciation

  1. Go to Depreciation tab → "Add Schedule"
  2. Select equipment, method (straight-line or diminishing value), useful life, residual value
  3. Click "Generate" with a date to create depreciation journal entries

17. Equipment & Inventory

Equipment (Assets)

Go to Equipment → track condition, service dates, and value of your assets (mats, bags, machines, etc.).

Inventory (Stock)

Go to Inventory → manage sellable items:


18. Settings & Configuration

The Settings page now has two tabs:

Go to Settings (admin only):

SettingPurpose
Organisation DetailsBusiness name, ABN, address, phone, email
Shop & TaxGST registration, GST rate, account sales toggle
Attendance & Check-InKiosk, RFID, self check-in toggles + kiosk device management
Rate LimitingAPI request limits per org
Email (SMTP2GO)API key, from name/address
SMS (Twilio)Account SID, auth token, from number
Organisation LogoManaged in the Branding tab — see section below
SMS MessagingProvision a dedicated phone number for 2-way SMS
SMS CreditsPurchase prepaid SMS credit packs, view balance
Stripe PaymentsEnable, test/live mode, publishable/secret keys
Staff MembersAdd/edit staff with permission tags

SMS Credits

Instead of per-message billing, you can purchase prepaid SMS credit packs at bulk discounts:

PackCreditsPricePer SMS
Starter200$29$0.145
Standard500$59$0.118
Business1,000$89$0.089
Enterprise5,000$425$0.085
  1. Go to Settings → scroll to SMS Credits
  2. Click "Buy Now" on a pack → Stripe Checkout
  3. After purchase, credits are added to your balance
  4. Toggle between Credits mode (deducts from balance) and Per-message mode ($0.20/SMS)
  5. Low balance warnings appear when credits run low

18.1 Branding

Centralised management of your organisation's visual identity. All settings here apply across your public website, marketing emails, receipts, PDF reports, and documents.

Access via Settings → Branding tab.

Logos & Icons

Upload different logo variants for different contexts. Any variant that isn't uploaded falls back to your Primary Logo.

SlotWhere It's UsedRecommended Size
Primary LogoDefault for everything500×200 PNG (transparent)
Horizontal LogoEmail headers, website headers600×150 PNG (transparent)
Square LogoApp icons, small spaces512×512 PNG (transparent)
Dark-background LogoWhite variant for dark backgrounds (email gradient)600×150 PNG
Light-background LogoDark variant for white backgrounds600×150 PNG
FaviconBrowser tabs64×64 PNG
Apple Touch IconiOS home screen when installed as PWA180×180 PNG
Social Sharing Image (OG)Preview when website shared on social media1200×630 PNG

Tip: If your logo is square, upload it to Primary Logo and Square Logo. Everything else will fall back to it automatically.

Brand Colours

Six colour pickers control your theme:

A live preview below the colour pickers shows:

Typography

Set fonts for your public website:

Any Google Font name works (e.g., Outfit, DM Sans, Inter, Poppins).

Site Identity

Where Branding Shows Up

OutputUses
Marketing emailsDark-bg logo (or horizontal fallback), primary→secondary gradient header, accent colour for CTAs
Public websiteAll colours, typography, primary logo
Shop receiptsPrimary colour borders, logo in header, custom footer text
PDF report exportsPrimary colour borders and table headers, logo in header, custom footer
Student portal emailsOrg colours and logo for any sent messages

Creating Your Logos

The easiest way is to design your logo once and export multiple sizes:

  1. Design source: Canva (free), Figma (free), or Photopea (free)
  2. Favicon package: Upload your logo to realfavicongenerator.net — generates all favicon sizes + iOS/Android icons in one click
  3. Social image: Design in Canva at 1200×630, include your logo + tagline + branded background

Alternatively, if you only have a square logo, upload it to Primary and Square slots only — all other contexts will use it automatically.


19. Staff Management

In SettingsStaff Members:

  1. Click "Add Staff" → name, email, initial password
  2. Set permissions (multiple can be selected):
  3. Admin: Full organisation access
  4. Personal Trainer: Fitness programs and client management
  5. [Discipline] Instructor: Per-discipline (e.g., "Karate Instructor", "Krav Maga Instructor")
  6. Permissions control what staff can do and which classes they appear as eligible instructors for

20. Staff Timesheets & Payroll

Admin-only. Go to Timesheets in the sidebar.

Clock In / Out

Staff members can clock in and out via the API. A clock-in/out button can be added to any staff-facing screen. The system prevents double clock-ins and automatically calculates hours worked minus break time.

Viewing Timesheet Entries

The Entries tab shows all timesheet records for the selected date range:

Adding Manual Entries

  1. Click "Add Entry"
  2. Select the staff member from the dropdown
  3. Enter date and either:
  4. Clock in/out times (hours calculated automatically minus break)
  5. Or just the total hours worked
  6. Add optional notes
  7. Click "Add Entry"

Approval Workflow

  1. Click "Select Pending" to select all unapproved entries
  2. Or manually checkbox individual entries
  3. Click "Approve" or "Reject"
  4. Once approved, entries can be marked as "Paid" after payroll is run

Staff Pay Configuration

On the Pay Config tab, set up each staff member's pay details:

FieldDescription
Employment TypeCasual, Part Time, Full Time, or Contractor
Hourly RateUsed to calculate gross pay in summaries and exports
Super RateDefault 11.5% (current AU super guarantee)
Super FundFund name and member number
TFNTax file number (masked in the UI after entry)
Bank DetailsBSB and account number (masked after entry)
Pay CycleWeekly, fortnightly, or monthly

Summary View

The Summary tab shows a per-staff breakdown for the selected period:

Exporting for Payroll

On the Export tab, choose a date range and export format:

All exports are logged in the Export History table with date, period, staff count, total hours, and gross amount.


21. Leads Pipeline

Admin-only. Go to Leads in the sidebar.

The Leads Pipeline is a CRM tool for tracking potential new students from first contact through to conversion.

Pipeline Stages

StageMeaning
NewLead just came in (website form, walk-in, referral)
ContactedYou've made first contact
Tour BookedThey've agreed to visit your facility
Tour DoneTour completed
Trial StartedOn a trial membership
ConvertedSigned up as a full student
LostDid not convert (capture reason)

Board vs List View

Toggle between a Kanban board (cards in stage columns) and a list table view. The board gives you a visual overview of your sales pipeline.

Managing Leads

  1. Click "Add Lead" to create a new lead with name, email, phone, and source
  2. Click any lead card to open the detail view
  3. Click stage buttons to progress the lead through the pipeline
  4. Set follow-up dates so you don't lose track of prospects

Activity Log

Every lead has an activity feed. Add notes, log calls, record emails sent, tours given, or meetings held. Stage changes are logged automatically.

Lead Sources

Track where leads come from: website, referral, walk-in, social media, advertising, or other. This helps measure which channels are most effective.


22. Email Sequences (Drip Campaigns)

Admin-only. Go to Sequences in the sidebar.

Email sequences are automated multi-step email campaigns triggered by events.

Creating a Sequence

  1. Click "Create Sequence"
  2. Name it (e.g., "New Lead Welcome Series")
  3. Choose a trigger:
  4. New Lead: fires when a lead is added
  5. New Student: fires when a student is created
  6. Trial Expiring: fires when a trial is about to end
  7. Payment Overdue: fires when a payment becomes overdue
  8. Custom: manually enroll recipients

Adding Steps

  1. Open the sequence and click "Add Step"
  2. Configure:
  3. Delay: days after the trigger (or previous step) before sending
  4. Channel: email or SMS
  5. Subject: email subject line
  6. Body: HTML email content (supports merge fields like {{first_name}})
  7. Steps execute in order — Step 1 fires immediately (0-day delay), Step 2 fires N days later, etc.

Activation

Toggle sequences active/paused. Paused sequences stop sending but retain enrolled recipients.


23. Families & Household Accounts

Admin-only. Go to Families in the sidebar.

Group related students (e.g., parent + children, siblings) into family units for household management and family discount tracking.

Creating a Family

  1. Click "Create Family"
  2. Enter a family name (e.g., "Smith Family")
  3. Add optional notes

Managing Members

  1. Click "Add Member" on any family card
  2. Select a student from the dropdown
  3. Set their relationship: Parent, Child, Sibling, or Spouse
  4. Family members appear on the card with initials and relationship tags

24. Membership Freezes

Admin-only. Go to Freezes in the sidebar.

Schedule membership freezes with automatic activation and resumption. Useful for holidays, injuries, or personal leave.

Scheduling a Freeze

  1. Click "Schedule Freeze"
  2. Select the student
  3. Set start and end dates
  4. Add an optional reason
  5. Click "Schedule"

How It Works

The daily scheduler processes freeze activations and completions automatically.


25. Gift Cards & Vouchers

Admin/Staff. Go to Gift Cards in the sidebar.

Issue gift cards with unique codes for use at your POS.

Creating Gift Cards

  1. Click "Create Gift Card"
  2. Set the value (e.g., $50.00)
  3. Optionally set an expiry date
  4. A unique code (e.g., GC-A1B2C3D4) is auto-generated

Redeeming

  1. Click "Redeem Code"
  2. Enter the gift card code and the amount to redeem
  3. The balance is deducted — partial redemptions are supported

The dashboard shows total cards, active count, and outstanding balance.


26. Webhook Integrations

Admin-only. Go to Webhooks in the sidebar.

Send real-time event notifications to external services like Zapier, Make.com, or custom APIs.

Adding an Endpoint

  1. Click "Add Endpoint"
  2. Enter the destination URL
  3. Select which events to subscribe to:
  4. student.created, student.updated, student.deleted
  5. payment.received, payment.overdue
  6. class.checkin, class.booking
  7. lead.created, lead.stage_changed
  8. grading.completed, document.uploaded
  9. streak.milestone, subscription.created, subscription.cancelled
  10. A signing secret is auto-generated

Payload Format

Each webhook sends a JSON POST with:

Delivery Logs

Click "Logs" on any endpoint to see delivery attempts with status codes and timestamps.


27. Custom Fields

Custom fields let you add organisation-specific data to student profiles. Defined by admins, filled in by staff or students.

Defining Fields

In SettingsCustom Fields (or via the API):

Viewing/Editing

On any student's detail page, custom field values appear alongside standard profile data. Staff can edit them; students can view (and edit if permitted).


28. Attendance Streaks

The system automatically tracks attendance streaks for every student:

View the leaderboard at Features → Streaks (API), or on individual student profiles.


29. Student Class Booking

Students can now book themselves into classes from their portal:

  1. Go to My Classes"Book a Class" tab
  2. Browse available classes with capacity indicators
  3. Click "Book Class" — or "Join Waitlist" if the class is full
  4. Drop a class by clicking "Drop" on the enrolled class card

Booking validates that the student has an active subscription for the class's module. Waitlisted students auto-promote when a spot opens.


30. Kiosk & Workout Display

Check-In Kiosk (/kiosk)

Workout Display (/workout-display)

- Countdown: preset durations

- Tabata: configurable work/rest/rounds with WORK/REST colour changes

- AMRAP: count down timer

- EMOM: interval with round counter

- Stopwatch: count up


31. Student Portal

Students log in with their email and password and see:

PageWhat They Can Do
DashboardOverview of their status
My ClassesView enrolled classes, weekly schedule, check in (if enabled), attendance history
GradingsSee grading invitations, accept/decline, pay fees, view results
My ProgramsView assigned exercise programs with plan details
StoreBrowse and purchase items, checkout with card or account
DocumentsSign pending contracts (digital signature), fill out forms, view submission history
ProfileUpdate personal details
MessagesChat with staff/admin
BillingView payment history

Install as an app (PWA)

The student portal can be installed on any iPhone, Android, or desktop as a standalone app with its own home-screen icon — no App Store download required.

Once installed the app launches full-screen without the browser chrome, boots faster, and shows proper push notifications when configured.


33. Installment Plans

Break big purchases (annual memberships, equipment packages, private coaching bundles) into scheduled instalments that auto-charge from a saved Stripe card.

  1. Members → select student → Billing → New installment plan
  2. Choose: total amount, number of instalments, first-charge date, frequency (weekly / fortnightly / monthly)
  3. Member must have a saved card on file (Billing → Save a card)
  4. On each due date the daily scheduler attempts the charge via Stripe
  5. Failed charges are flagged in Payments → Failed — operator is notified

Each instalment creates a Stripe PaymentIntent so receipts are real tax invoices.


34. Referrals

Let existing members bring in friends with a rewards-for-both model.

  1. Settings → Referrals → enable, set reward amounts (for referrer and referee)
  2. Each student gets a unique referral code in their Student → Profile → Referrals tab
  3. When a prospect uses the code on the trial form or a new signup, both sides get the reward credited to their account ledger
  4. Admin → Referrals → dashboard shows top referrers, rewards paid, and conversion rate
  5. Rewards can be:
  6. Dollar credit to account ledger (spendable in the shop or against next billing)
  7. Extra class credits
  8. A free month

35. Promo Codes

One-off discount codes scoped to a specific purchase type.

  1. Admin → Promo Codes → New code
  2. Configure: code (auto-uppercased), discount type (% or $ off), applies-to (any / class package / subscription / shop), min purchase, max redemptions total, max per-student, expiry
  3. Share the code however you like — members enter it at checkout

Validation happens server-side at checkout. Redemptions are logged in promo_redemptions with the actual discount amount (not the validated amount, so accounting stays accurate even if a member uses stale validation data).


36. Class Credit Packages

Sell bundles of class credits instead of recurring subscriptions — great for casual members, visiting drop-ins, or "bring-a-friend" packs.

  1. Admin → Class Packs → New package
  2. Name, description, credit count, price, expiry days (or blank for no expiry)
  3. Students see available packs in Student → Billing → Buy class credits
  4. Credits auto-deduct on class check-in (each check-in consumes one credit)
  5. Admin → Students → select student → Credits tab shows balance across all active packs
  6. Expired credits are written off automatically each night

37. Virtual Classes

Run classes over Zoom, Teams, Google Meet, or any conferencing tool.

  1. When creating a class, set Virtual = yes and paste the join URL
  2. Control when the join link becomes visible: N minutes before the session starts
  3. Members see a Join now button on the class card once the visibility window opens
  4. Attendance can still be tracked — instructor taps "Mark as attended" from the mobile app or admin panel

38. Marketing Automation (Drip Sequences)

Build multi-step email + SMS flows that fire on triggers.

  1. Admin → Sequences → New sequence
  2. Choose trigger: new_lead, new_student, trial_ending, overdue, inactive_7d, birthday
  3. Add steps: each step is an email or SMS with a delay (e.g. +0 min, +2 days, +7 days)
  4. Write the template with variable placeholders:
  5. {first_name}, {org_name}, {unsubscribe_url}, etc.
  6. Enable the sequence

When the trigger fires (webhook from a new lead, RSVP, trial signup, birthday sweep), the sequence queues each step for its student. The scheduler processes the queue every 5 minutes.

Event RSVP sequences

When you create a birthday party or open day and check "Add each RSVP as a soft lead", every RSVP fires the new_lead sequence. A typical post-party follow-up:


39. Events & Public RSVP Links

Event types supported

Creating an event

  1. Admin → Marketing → Events → Create Event
  2. Fill in name, type, date, time, location, capacity
  3. For birthday parties: set Host / featured name to the birthday child
  4. Optional: add RSVP page message (shown on the public invite page)
  5. Check "Add each RSVP as a soft lead" to wire drip sequences into RSVPs
  6. Save

Sending invites

Every event gets a public invite link of the form:

``

https://phoenixsuite.com.au/rsvp/<random-token>

`

After saving the event:

  1. Open the event detail view
  2. Copy the URL from the 🎟️ Public invite link card
  3. Paste into WhatsApp / SMS / email to parents or guests

What happens when guests RSVP

Anyone with the link — no account required — fills in:

On submit:

After the event

The event detail page shows every attendee. For each RSVP that became a lead, you'll see them in Admin → Leads with source event_rsvp — filter there for easy follow-up.


40. Native Payroll + Single Touch Payroll (STP Phase 2)

Phoenix Suite ships with Australian-native payroll. No QuickBooks or Xero needed to run a pay run.

Setting up employees

  1. Admin → Payroll → Employees → click a staff member
  2. Set employment type (casual, part-time, full-time, contractor)
  3. Hourly rate + super rate (default 11.5%)
  4. TFN + TFN declaration type
  5. Tick "claim tax-free threshold" if applicable
  6. Tick HELP / STSL debt boxes as needed
  7. Address, date of birth, super fund USI + ABN + member number

Running a pay run

  1. Admin → Payroll → Pay runs → + New pay run
  2. Set period start / end, pay date, frequency (weekly / fortnightly / four-weekly / monthly)
  3. Phoenix pulls approved timesheet entries for the window and creates a draft slip per staff member
  4. Edit any slip — overtime, bonuses, allowances, leave, pre/post-tax deductions
  5. Click Finalise pay run
  6. Computes PAYG withholding using ATO NAT 1004 Scale 1/2/3 tables
  7. Computes super guarantee on ordinary time earnings
  8. Computes HELP/STSL using progressive bands
  9. Computes net pay + YTD totals
  10. Marks timesheet entries as paid
  11. Generates the STP Phase 2 JSON payload

Lodging STP

Phoenix generates the STP Phase 2 pay-event payload matching the ATO's Business Implementation Guide schema. You can't lodge directly to the ATO without being a registered Digital Service Provider, so you connect a sending service.

Option A — connect Ozedi or SuperChoice:

  1. Admin → Payroll → STP settings
  2. Choose provider, paste API key + secret
  3. Pick sandbox or production
  4. On pay-run finalisation, click Submit via sending service → Phoenix POSTs the payload and stores the submission ID
  5. The scheduler polls every 10 minutes for the ATO receipt ID
  6. Once received, the pay run status flips to lodged

Option B — manual lodgment:

  1. Click Download STP payload (JSON file)
  2. Upload it via your sending service's web portal
  3. Once the ATO returns a receipt ID, paste it into the "ATO receipt ID (manual lodgment)" field and click Mark as lodged

Pay slips

Each pay slip shows: ordinary hours × rate, gross, PAYG, super, net, YTD totals, and the STP Phase 2 tax treatment code (e.g. RTXXXX for regular resident claiming tax-free threshold).


41. BAS-ready Monthly Report

Automated monthly summary your accountant loves.

  1. Admin → Reports → Monthly / BAS
  2. Pick a month (defaults to previous month)
  3. See:
  4. Sales breakdown (subscriptions, shop, refunds, net)
  5. GST collected + refunded + net payable
  6. Payroll hours, gross pay, super guarantee
  7. Outlook (active monthly subscriptions, estimated MRR)
  8. Download CSV for spreadsheet work
  9. Automated email: on the 1st of each month, every admin in your org automatically receives the previous month's summary by email

42. Accounting Sync (Xero + QuickBooks Online)

Two-way sync of invoices, payments, and contacts. One-click connect, auto-push after every Stripe checkout.

Connecting

  1. Admin → Accounting → Connection tab
  2. Pick Xero or QuickBooks Online
  3. Click Connect → OAuth flow → pick your company
  4. Sync tab opens — configure:
  5. Auto-push invoices on / off
  6. Auto-mark invoices as paid on / off
  7. Default sales account code
  8. Default bank account code
  9. Webhook verifier token (see below)

Webhook for inbound voids

When someone voids an invoice in Xero / QBO, Phoenix can mirror the void back to the local payment / order.

  1. Copy the webhook endpoint URL shown in the Sync tab
  2. Register it in your provider's developer dashboard
  3. Paste the verifier token / webhook key back into Phoenix

Backfilling history

The "Backfill last 30 days" button pushes every Stripe payment and shop order from the past 30 days. Useful right after first connecting.


43. Multi-Location / Franchise Org Groups

One parent account with multiple studios underneath — each studio keeps its own members, classes, Stripe, and reporting, but you get a group view across all of them.

  1. Register via the standard signup flow as a "Business Group" at /register
  2. Assign each child org one primary module (Martial Arts or Fitness)
  3. Admin → Org Groups → see combined stats, switch between orgs with one click
  4. Optional: share templates (contracts, forms, classes) across the group

44. AI Insights

Phoenix scores every active member for churn risk and every open lead for conversion probability. Explainable — every score shows the top feature contributions.

  1. Admin → AI Insights
  2. Two tabs: Churn risk and Lead conversion
  3. Each row shows: name, score (0–100%), tier (low / medium / high / critical), top drivers
  4. Click Explain to see every feature's contribution as a red/green bar
  5. The dashboard shows a 🚨 Members at critical churn risk card when any exist — click any row to jump to their profile

Heuristic vs trained model

Out of the box, Phoenix uses hand-tuned weights from industry gym-churn studies. After ~90 days of live data, click Bootstrap training data to generate historical samples, then Retrain model — Phoenix fits a per-org logistic regression and the scores update accordingly. The model version + AUC (quality metric) are shown on the page.

Recommended interventions

For each tier you configure interventions (call, email, SMS, offer, class invite). When you open a member's explanation panel, Phoenix shows the interventions for that tier so your team knows exactly what to do.

Turning it off

Some operators prefer not to score members algorithmically. Settings → AI insights → Disable. This:


45. Developer API

Operators who want to wire Phoenix into their own tools (custom signage, bespoke analytics, gym-management middleware) can use the REST API.

  1. Admin → Developer API
  2. Click + Create key — pick name and scopes (read / write / admin)
  3. The key is shown once (sha256 hash stored) — copy it somewhere safe
  4. Include as Authorization: Bearer pk_live_xxx… on every request
  5. Rate-limited per-org (default 100 req/min; configurable in Settings)

The OpenAPI 3.0 spec is at https://api.phoenixsuite.com.au/api/openapi.json. Import it into Postman / Insomnia for auto-generated client stubs.


46. White-Label Mobile App (Release Imminent)

Ship your own branded iOS + Android app to the App Store and Play Store under your brand.

  1. Admin → Branded App → Branding tab
  2. Set app name, slug, colours, icons (1024×1024 + adaptive icon for Android)
  3. Add support URLs (email, privacy policy — required by both stores)
  4. Store identifiers tab — set iOS bundle ID, Android package name, App version
  5. Upload your Apple ASC API key (Team ID, Issuer ID, Key ID, .p8 contents) and your Google Play service-account JSON
  6. Builds tab — click Build for iOS or Build for Android
  7. First build submits to TestFlight / Internal Testing under your account
  8. Approve + release to public via the App Store Connect / Play Console as normal

This feature is hidden from the nav until the base Phoenix Suite app is live in the stores. Come back when "Release Imminent" drops.


47. Video Library

On-demand training videos members can watch between classes.

  1. Admin → Videos → + New video
  2. Upload to your bucket (S3 / R2 / Cloudflare Stream) and paste the URL
  3. Set title, description, discipline, skill level, access (all members / subscribers only / specific plans)
  4. Members see the library in Student → Programs → Videos
  5. View counts are tracked per-member for engagement reporting

48. Community Features

Leaderboards

Students can opt in to a public profile. Two leaderboards shown on the student dashboard:

Feed

A chronological feed of:

Workout broadcast (floor display)

Instructors can push the current workout step to a floor TV + every member's phone simultaneously.

  1. During a class, instructor opens the Broadcast view
  2. Tap Start broadcast → step 1 appears on all connected devices
  3. Tap Next step → everyone sees it in real time
  4. Live HR monitors show on the display leaderboard if members have BLE straps connected

49. Self-Service Freezes

Let members freeze their own membership from the app without asking staff.

  1. Settings → Self-service → Freezes — enable, set max duration, set annual limit
  2. Members see Billing → Freeze my membership on the mobile app
  3. Pick start + end dates within your limits → confirmed immediately
  4. Member's subscription pauses for the window; auto-resumes at end
  5. Operator gets a notification — can override if abused

50. Partner Organisations (super-admin)

Super-admins can create orgs outside the normal signup flow — business partners, beta customers, friends & family, internal test tenants.

  1. License Portal → Dashboard → + New partner org
  2. Fill in org name, admin details, partner type (reseller / integrator / beta / internal / friends_family)
  3. Pick modules + limits (defaults to partner-scale: 9999 members, 100 staff, $0/mo)
  4. Choose: send a welcome email with password-reset link, OR get a temp password back to share out of band
  5. Org is created with is_partner = true and all licenses expires_at = NULL` (indefinite)

51. Data Export (Privacy Act / GDPR)

Every admin can export every row their org owns as JSON or CSV.

Hand this to a member on request (APP 12), to an auditor, or to a new system during a migration.


52. Frequently Asked Questions

Q: Can I use Phoenix Suite on my phone?

A: The student portal is fully responsive and works on all phones. The admin portal is optimised for tablets and desktops.

Q: How do I reset a student's password?

A: Currently, use the database directly or contact your system administrator. Self-service password reset via email is planned for a future update.

Q: Can students have multiple disciplines?

A: Yes. Students can be enrolled in any number of disciplines simultaneously, each with independent rank progression.

Q: Do I need Stripe to accept payments?

A: No. You can use manual payment tracking (cash/card recorded in the system) without Stripe. Stripe enables automated card processing and recurring billing.

Q: Can I customise the contract templates?

A: Yes. Seed the templates, then edit any of them. You can adjust wording, add/remove sections, and change merge fields. Use the "Copy" button to create variations.

Q: How do I give a practitioner access?

A: Students can generate a temporary access code from their Programs page. The practitioner uses their email + code to log in and can only create therapeutic programs for that specific student.

Q: What's the difference between Programs and Exercise Plans?

A: A Program (e.g., "Strength & Weight Loss") is a container that groups multiple Exercise Plans (e.g., "Upper Body Monday", "Lower Body Wednesday"). Plans contain the actual exercises, sets, and reps.

Q: Can I run multiple organisations from one Phoenix Suite instance?

A: Yes. The platform is multi-tenant — each organisation's data is completely isolated. The License Portal manages all organisations from a central dashboard.


For technical support, contact your Phoenix Suite administrator or visit the documentation at your instance URL.