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
- Getting Started
- Dashboard
- Managing Students
- Subscription Plans & Billing
- Classes & Scheduling
- Martial Arts Management
- Fitness & Personal Training
- Exercise Library & Plan Builder
- Shop & Point of Sale
- Attendance & Check-In
- Contracts & Forms
- Messaging
- Marketing & Events
- Public Website
- Reports & Analytics
- Accounting Integration
- Equipment & Inventory
- Settings & Configuration
- Staff Management
- Staff Timesheets & Payroll
- Leads Pipeline
- Email Sequences (Drip Campaigns)
- Families & Household Accounts
- Membership Freezes
- Gift Cards & Vouchers
- Webhook Integrations
- Custom Fields
- Attendance Streaks
- Student Class Booking
- Kiosk & Workout Display
- Student Portal
- (moved to #52 — FAQ is now at the bottom)
- Installment Plans
- Referrals
- Promo Codes
- Class Credit Packages
- Virtual Classes
- Marketing Automation (Drip Sequences)
- Events & Public RSVP Links
- Native Payroll + Single Touch Payroll (STP Phase 2)
- BAS-ready Monthly Report
- Accounting Sync (Xero + QuickBooks Online)
- Multi-Location / Franchise Org Groups
- AI Insights
- Developer API
- White-Label Mobile App
- Video Library
- Community Features
- Self-Service Freezes
- Partner Organisations (super-admin)
- Data Export (Privacy Act / GDPR)
- Frequently Asked Questions
1. Getting Started
First Login
- Navigate to your Phoenix Suite URL (e.g.,
https://app.yourdomain.com)
- Enter your admin email and password
- You'll be directed to the Dashboard
Initial Setup Checklist
After your first login, complete these steps in order:
- Settings → Update your organisation details (name, address, ABN, phone)
- Settings → Configure GST (enable if registered, set rate)
- Settings → Add staff members and set their permissions
- Martial Arts → Create your disciplines and define rank progression
- Classes → Create your class schedule
- Payments → Plans → Set up subscription plans with pricing
- Contracts → Seed and customise contract templates
- Forms → Seed and customise form templates
- Students → Add your students and assign plans
- Settings → Branding → Upload your logos and set brand colours
- Settings → Choose SMS mode (Phoenix Messaging or own keys)
- Marketing → Load template library
2. Dashboard
The Dashboard provides an at-a-glance overview of your organisation:
- Active student count
- Monthly recurring revenue (MRR)
- Upcoming classes today
- Recent activity
3. Managing Students
Adding a Student
- Go to Students in the sidebar
- Click "Add Student"
- Fill in: first name, last name, email, phone, date of birth
- Emergency contact details
- Subscription Plans: Click the dropdown to add plans (e.g., "Karate Weekly $38.99/wk")
- Medical notes (optional)
- 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:
- Rank History: progression through their martial arts ranks
- Syllabus Progress: checklist of demonstrated techniques (click items to mark as complete)
- Body Metrics: weight, measurements, goals
- Subscriptions: active plans with pricing
- Documents: signed contracts
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
- Go to Payments → Plans tab
- Click "Create Plan"
- Configure:
- Name: e.g., "Karate Weekly", "PT Group Sessions"
- Module: Martial Arts or Fitness
- Discipline (optional): link to a specific discipline
- Base Price: e.g., $38.99
- Frequency: weekly, fortnightly, monthly, quarterly, annual, per session
- Session Type: unlimited, group, or private
- Sessions per week (if not unlimited)
- Click "Create"
Adding Discount Rules
- Click "Manage" on any plan
- In the plan detail, click "Add Discount Rule"
- Configure:
- Rule Name: e.g., "40% off with Martial Arts"
- Condition: "Has module subscription" → "Martial Arts"
- Discount Type: Percentage or Fixed
- Value: e.g., 40 (for 40%)
- 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":
- Click "Link Classes"
- Check the classes included in this plan
- 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
- Go to Classes in the sidebar
- Click "Add Class"
- Fill in: name, module (Martial Arts/Fitness), type, day, time, duration, capacity, instructor
- 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:
- Sessions: Generate sessions for a date range → individual occurrences of the recurring class
- Enrollments: View enrolled students, enroll new students, manage waitlist
- Roll Call: Click "Roll Call" on any session to mark attendance (present/absent/late/excused)
- Workout Assignment: Link an exercise plan to a session, view workout history
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
- Go to Martial Arts in the sidebar
- Click "New Discipline"
- Enter: name (e.g., Karate), style (e.g., Shotokan), grading system (belts/sashes/patches/levels)
- Click "Create"
Defining Ranks
- Click "Manage Ranks" on the active discipline
- Add ranks in order (first = starting level):
- Type a name (e.g., "White Belt") → colour auto-detects
- Adjust colour manually with the colour picker
- Set stripe (none/white/black) for styles with centre belt stripes
- Set Dan/Bar count for advanced ranks (gold bars appear on the swatch)
- Click "Save Ranks"
Setting Requirements
On the "Requirements" tab:
- For each rank level, set: minimum classes attended, minimum months at current rank
- These are used by the Grading Readiness dashboard
Managing the Syllabus
On the "Syllabus" tab:
- Filter by rank
- Click "Add Item" → choose rank, category (kata, technique, sparring, theory, fitness), name
- Mark as required or optional
- 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:
- Classes attended (vs. requirement)
- Time at current rank (vs. requirement)
- Syllabus items completed (vs. required)
- Overall status: Ready / Not Ready
Running a Grading
- Go to the "Gradings" tab
- Click "Create Grading" → name, date, location, examiner, testing fee
- From the Readiness tab, click "Invite Eligible to Grading" → select the grading event
- Students receive the invitation in their portal and can pay the fee
- On grading day, in the grading detail, mark each candidate: pass / fail / deferred
- Click "Complete Grading" → passing students automatically receive their new rank
7. Fitness & Personal Training
Programs
Programs are containers for exercise plans. Types:
- Personal: One client, customised training
- Group: Multiple clients, shared workouts
- Therapeutic: Injury rehabilitation, can be created by practitioners
To create:
- Go to Fitness → Programs tab
- Click "Create Program" → name, type, description
- Click the program card → "Link Exercise Plan" → select plans with day labels
- "Assign Client" → select students
Body Metrics
Staff can record body measurements for fitness clients:
- Weight, height, body fat %, BMI, circumferences (chest, waist, hips, bicep, thigh, neck, forearm, calf, shoulder), resting heart rate, blood pressure
- Measurement goals with target values and dates
- Students can also enter their own measurements
8. Exercise Library & Plan Builder
Building the Exercise Library
- Go to Exercises in the sidebar
- Click "Add Exercise" → name, category, muscle groups, equipment, instructions
- Categories: strength, cardio, flexibility, balance, plyometric, technique, kata, sparring, drill, warmup, cooldown
Creating an Exercise Plan
- Go to Fitness or Martial Arts → Exercise Plans tab
- Click "Create Exercise Plan" → name, type (individual/class/template), duration
- Click the plan card to open the Plan Builder
Using the Plan Builder
- Add Section: Warmup, Main Workout, Cooldown
- Within each section, add:
- Superset: paired exercises done back-to-back (e.g., A1 Pushups / A2 Curls × 4 rounds)
- Circuit: multiple exercises in sequence without rest
- Standalone Exercise: individual exercise
- Configure groups: rounds, rest between rounds, timed/rep-based
- Add exercises from the library with sets, reps, duration, rest, weight notes
9. Shop & Point of Sale
Adding Inventory
- Go to Inventory → "Add Item"
- Fill in: name, category, colour, brand, price, cost, stock level
- Size Variants: Add sizes (Small, Medium, Large) with individual stock counts
- Click "Add"
Making a Sale (POS)
- Go to Shop / POS → Point of Sale tab
- Click products to add to cart (select size if variants exist)
- Adjust quantities with +/- buttons
- Select customer (student or walk-in)
- Choose payment method: Cash, Card, or Account
- Click "Complete Sale"
- Print receipt or start a new sale
Processing a Refund
- Go to Shop / POS → Orders tab
- Click an order → "Process Refund"
- Select items and quantities to refund
- Choose type: refund, exchange, or warranty
- Toggle "Return to stock" per item (off for defective items)
- Enter reason → "Process Refund"
10. Attendance & Check-In
Setting Up
- Go to Settings → Attendance & Check-In
- Enable the check-in methods you want: Kiosk, Token/RFID, Self Check-In
- Create a kiosk device → copy the token
Kiosk Check-In (iPad/Tablet)
- Open
/kiosk on the tablet
- Paste the kiosk token → Activate
- Students see their photos → tap to check in
- RFID scanners connected to the tablet auto-trigger via the hidden input field
Workout Display
- Open
/workout-display?token=YOUR_KIOSK_TOKEN on a TV/projector
- Select a class session to display the workout plan
- Use the timer: Countdown, Tabata, AMRAP, EMOM, or Stopwatch
- 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
- Go to Contracts → Click "Seed Templates" to generate 5 Australian-compliant templates
- Each template includes merge fields like
{{student_full_name}} that auto-fill with student data
- Edit any template: adjust the wording, toggle witness/guardian requirements
- "Copy" any contract to create variations
Assigning Contracts
- Click "Assign" on any contract
- Select students (multi-select with Select All)
- Set an optional due date
- Students see pending contracts in their Documents page
- View who's signed and who hasn't via the "Assigned" column
Setting Up Forms
- Go to Forms → Click "Seed Templates" for Medical History, Fitness Assessment, and Grading Exemption
- Or create custom forms with the Field Builder:
- Available types: heading, info text, text, long text, email, phone, date, number, dropdown, radio buttons, checkbox
- Set each field as required/optional
- 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
- Go to Messages → "New Message"
- Choose the channel:
- In-App: Message appears in the student's portal
- Email: Sends a branded email (uses your org colours and logo)
- SMS: Sends a text message to the student's phone
- Select a student, enter subject (for email) and message body
- 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
- Go to Marketing → "Create Campaign"
- Configure: name, type (blast/event promo/special/newsletter), channel (email/SMS/both)
- Select audience: all students, active only, or by discipline
- Write email subject + body (HTML), and/or SMS body
- Save as draft → Click "Send Now" when ready
Marketing emails are automatically branded with your organisation's colours, logo, and footer.
Creating Events
- Go to Marketing → Events tab → "Create Event"
- Fill in: name, type (seminar/trip/workshop/social/competition), date, location, price
- Optional: early-bird pricing with deadline, capacity limit
- Bookings are tracked with payment status
Marketing Templates
Phoenix Suite includes 30 pre-built marketing templates (15 email + 15 SMS) covering common events:
| Grading Invitation / Reminder | Yes | Yes |
| Grading Results | Yes | — |
| Christmas Breakup Party | Yes | Yes |
| Holiday Schedule | Yes | Yes |
| Overseas Training Trip | Yes | Yes |
| Open Day | Yes | Yes |
| Refer a Friend | Yes | Yes |
| Fundraiser Event | Yes | Yes |
| Seminar Announcement | Yes | Yes |
| Competition | Yes | Yes |
| New Term Starting | Yes | Yes |
| Membership Renewal | Yes | Yes |
| Welcome New Member | Yes | Yes |
| Class Cancellation | Yes | Yes |
| School Holiday Camp | Yes | Yes |
| Payment Reminder | — | Yes |
Loading Templates:
- Go to Marketing → Templates tab
- Click "Load Template Library" to seed all system templates
- 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.
- Email: Free
- SMS: $0.20/message or buy credit packs for bulk discounts
- 2-way SMS: Purchase a dedicated number in Settings ($6/month)
Option 2: Bring Your Own Keys
In Settings → scroll to the advanced section under SMS:
- Email: Enable → paste SMTP2GO API key → set from name/address
- SMS: Enable → paste Twilio Account SID, Auth Token, From Number
14. Public Website
Requires the Website module license.
Setting Up Your Site
- Go to Website in the sidebar
- Branding & Theme tab: set colours (primary, secondary, accent, background), fonts, logo, social media links
- Content tab: configure hero headline/image, about section, toggle sections on/off
- SEO tab: site title, meta description, keywords, Open Graph image
- Click "Publish Site" to make it live
Your site is accessible at http://your-server:3003/your-org-slug.
Managing Blog Posts
- Go to Website → Blog tab
- Click "New Post" → title, content, featured image, SEO fields
- 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:
| Students | Total/active/frozen/overdue, monthly new student trend, per-student value |
| Revenue | MRR/ARR, subscription breakdown, shop/grading/event revenue |
| Utilisation | Per-class capacity vs. enrolled vs. average attendance with % bars |
| Attendance | Sessions, attendance rate, check-in methods, highest-absence students |
| Inventory | Stock summary/value, top-selling items, low-stock alerts |
| Trials | Total/converted/declined, conversion rate |
| Marketing | Campaign performance, communications stats |
Exporting
- Export CSV: Downloads a spreadsheet-compatible file
- Export PDF: Opens a printable report with your org branding
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
- Connection tab: Select your accounting software (Xero, MYOB, QuickBooks, or CSV)
- For cloud software: Click "Connect" to authenticate via OAuth2
- For CSV: No connection needed — just export
Account Mapping
On the Account Mapping tab, configure your chart of accounts. Pre-populated with Australian defaults:
- Sales accounts (subscriptions, shop, grading, events)
- GST Collected
- Cash at Bank, Accounts Receivable
- Inventory, COGS
- Depreciation Expense, Accumulated Depreciation
Generating Journal Entries
- Go to Journals tab → Click "Generate"
- Select a date range
- Phoenix Suite creates double-entry journal entries from all financial transactions
- Review entries → Click "Sync All Pending" to push to your accounting software (or export CSV)
Depreciation
- Go to Depreciation tab → "Add Schedule"
- Select equipment, method (straight-line or diminishing value), useful life, residual value
- 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:
- Add items with colour, brand, and size variants
- Track stock per size
- Click "Manage" to adjust stock levels (changes are logged)
- Low stock alerts in reports
18. Settings & Configuration
The Settings page now has two tabs:
- Organisation: Business details, integrations, attendance, staff, and other configuration
- Branding: Consolidated branding management (logos, colours, typography)
Go to Settings (admin only):
| Organisation Details | Business name, ABN, address, phone, email |
| Shop & Tax | GST registration, GST rate, account sales toggle |
| Attendance & Check-In | Kiosk, RFID, self check-in toggles + kiosk device management |
| Rate Limiting | API request limits per org |
| Email (SMTP2GO) | API key, from name/address |
| SMS (Twilio) | Account SID, auth token, from number |
| Organisation Logo | Managed in the Branding tab — see section below |
| SMS Messaging | Provision a dedicated phone number for 2-way SMS |
| SMS Credits | Purchase prepaid SMS credit packs, view balance |
| Stripe Payments | Enable, test/live mode, publishable/secret keys |
| Staff Members | Add/edit staff with permission tags |
SMS Credits
Instead of per-message billing, you can purchase prepaid SMS credit packs at bulk discounts:
| Starter | 200 | $29 | $0.145 |
| Standard | 500 | $59 | $0.118 |
| Business | 1,000 | $89 | $0.089 |
| Enterprise | 5,000 | $425 | $0.085 |
- Go to Settings → scroll to SMS Credits
- Click "Buy Now" on a pack → Stripe Checkout
- After purchase, credits are added to your balance
- Toggle between Credits mode (deducts from balance) and Per-message mode ($0.20/SMS)
- 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.
| Slot | Where It's Used | Recommended Size |
| Primary Logo | Default for everything | 500×200 PNG (transparent) |
| Horizontal Logo | Email headers, website headers | 600×150 PNG (transparent) |
| Square Logo | App icons, small spaces | 512×512 PNG (transparent) |
| Dark-background Logo | White variant for dark backgrounds (email gradient) | 600×150 PNG |
| Light-background Logo | Dark variant for white backgrounds | 600×150 PNG |
| Favicon | Browser tabs | 64×64 PNG |
| Apple Touch Icon | iOS home screen when installed as PWA | 180×180 PNG |
| Social Sharing Image (OG) | Preview when website shared on social media | 1200×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:
- Primary: Main brand colour — used for buttons, headers, accents
- Secondary: Complementary colour — creates the email header gradient with primary
- Accent (CTAs): Call-to-action button colour (e.g., "Book Now", "Register")
- Background: Public site background
- Card Background: Card/panel backgrounds on public site
- Text: Primary text colour
A live preview below the colour pickers shows:
- How your email header looks (with gradient)
- How your CTA button appears
Typography
Set fonts for your public website:
- Heading Font: Used for H1/H2/H3 tags
- Body Font: Used for paragraphs and body text
Any Google Font name works (e.g., Outfit, DM Sans, Inter, Poppins).
Site Identity
- Site Title: Used in page titles and document headers
- Tagline: Shown beneath the site title
- Receipt/Document Footer: Custom message at the bottom of receipts and PDF reports (e.g., "Thank you for your business. Refunds within 14 days.")
Where Branding Shows Up
| Marketing emails | Dark-bg logo (or horizontal fallback), primary→secondary gradient header, accent colour for CTAs |
| Public website | All colours, typography, primary logo |
| Shop receipts | Primary colour borders, logo in header, custom footer text |
| PDF report exports | Primary colour borders and table headers, logo in header, custom footer |
| Student portal emails | Org colours and logo for any sent messages |
Creating Your Logos
The easiest way is to design your logo once and export multiple sizes:
- Design source: Canva (free), Figma (free), or Photopea (free)
- Favicon package: Upload your logo to realfavicongenerator.net — generates all favicon sizes + iOS/Android icons in one click
- 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 Settings → Staff Members:
- Click "Add Staff" → name, email, initial password
- Set permissions (multiple can be selected):
- Admin: Full organisation access
- Personal Trainer: Fitness programs and client management
- [Discipline] Instructor: Per-discipline (e.g., "Karate Instructor", "Krav Maga Instructor")
- 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:
- Filter by staff member, date range, or status (pending/approved/rejected/paid)
- Each entry shows: staff name, date, clock in/out times, break, total hours, type (clock/manual), and status
Adding Manual Entries
- Click "Add Entry"
- Select the staff member from the dropdown
- Enter date and either:
- Clock in/out times (hours calculated automatically minus break)
- Or just the total hours worked
- Add optional notes
- Click "Add Entry"
Approval Workflow
- Click "Select Pending" to select all unapproved entries
- Or manually checkbox individual entries
- Click "Approve" or "Reject"
- 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:
| Employment Type | Casual, Part Time, Full Time, or Contractor |
| Hourly Rate | Used to calculate gross pay in summaries and exports |
| Super Rate | Default 11.5% (current AU super guarantee) |
| Super Fund | Fund name and member number |
| TFN | Tax file number (masked in the UI after entry) |
| Bank Details | BSB and account number (masked after entry) |
| Pay Cycle | Weekly, fortnightly, or monthly |
Summary View
The Summary tab shows a per-staff breakdown for the selected period:
- Total hours, pending hours, approved hours
- Gross pay (approved hours × hourly rate)
- Super contribution (gross × super rate)
- Totals row at the bottom
Exporting for Payroll
On the Export tab, choose a date range and export format:
- Simple CSV: Name, email, employment type, hours, rate, gross pay, shifts — import into any spreadsheet or generic payroll system
- KeyPay / STP: Full payroll export including TFN, super fund, bank details — compatible with KeyPay, Xero Payroll, and ATO Single Touch Payroll reporting
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
| New | Lead just came in (website form, walk-in, referral) |
| Contacted | You've made first contact |
| Tour Booked | They've agreed to visit your facility |
| Tour Done | Tour completed |
| Trial Started | On a trial membership |
| Converted | Signed up as a full student |
| Lost | Did 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
- Click "Add Lead" to create a new lead with name, email, phone, and source
- Click any lead card to open the detail view
- Click stage buttons to progress the lead through the pipeline
- 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
- Click "Create Sequence"
- Name it (e.g., "New Lead Welcome Series")
- Choose a trigger:
- New Lead: fires when a lead is added
- New Student: fires when a student is created
- Trial Expiring: fires when a trial is about to end
- Payment Overdue: fires when a payment becomes overdue
- Custom: manually enroll recipients
Adding Steps
- Open the sequence and click "Add Step"
- Configure:
- Delay: days after the trigger (or previous step) before sending
- Channel: email or SMS
- Subject: email subject line
- Body: HTML email content (supports merge fields like
{{first_name}})
- 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
- Click "Create Family"
- Enter a family name (e.g., "Smith Family")
- Add optional notes
Managing Members
- Click "Add Member" on any family card
- Select a student from the dropdown
- Set their relationship: Parent, Child, Sibling, or Spouse
- 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
- Click "Schedule Freeze"
- Select the student
- Set start and end dates
- Add an optional reason
- Click "Schedule"
How It Works
- Scheduled: freeze is set for a future date
- Active: the student's account is automatically set to "frozen" on the start date
- Completed: the student is automatically set back to "active" when the freeze ends
- Cancelled: you can cancel a freeze at any time (restores active status)
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
- Click "Create Gift Card"
- Set the value (e.g., $50.00)
- Optionally set an expiry date
- A unique code (e.g.,
GC-A1B2C3D4) is auto-generated
Redeeming
- Click "Redeem Code"
- Enter the gift card code and the amount to redeem
- 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
- Click "Add Endpoint"
- Enter the destination URL
- Select which events to subscribe to:
student.created, student.updated, student.deleted
payment.received, payment.overdue
class.checkin, class.booking
lead.created, lead.stage_changed
grading.completed, document.uploaded
streak.milestone, subscription.created, subscription.cancelled
- A signing secret is auto-generated
Payload Format
Each webhook sends a JSON POST with:
event: the event name
timestamp: when it fired
data: event-specific data
X-Phoenix-Signature header: HMAC-SHA256 of the body using your secret
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 Settings → Custom Fields (or via the API):
- Choose a field name, type (text, number, date, dropdown, checkbox, email, phone), and whether it's required
- For dropdowns, define the available options
- Set display order
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:
- Current Streak: consecutive classes attended (with up to 3 rest days between)
- Longest Streak: all-time record
- Total Classes: lifetime attendance count
- Milestones: automatic webhook events at 7, 14, 30, 50, and 100 classes
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:
- Go to My Classes → "Book a Class" tab
- Browse available classes with capacity indicators
- Click "Book Class" — or "Join Waitlist" if the class is full
- 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)
- Shows today's enrolled students as a photo grid
- Students tap their photo to check in
- RFID/barcode scanners trigger automatically
- Green confirmation overlay for 3 seconds
Workout Display (/workout-display)
- Shows today's class sessions with linked workout plans
- Full-screen exercise display: sections, supersets, circuits, exercises with sets/reps/weight
- 5 Timer Modes:
- 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
- Audio beeps at 3-2-1 and on phase changes
- Designed for TV screens and projectors
31. Student Portal
Students log in with their email and password and see:
| Dashboard | Overview of their status |
| My Classes | View enrolled classes, weekly schedule, check in (if enabled), attendance history |
| Gradings | See grading invitations, accept/decline, pay fees, view results |
| My Programs | View assigned exercise programs with plan details |
| Store | Browse and purchase items, checkout with card or account |
| Documents | Sign pending contracts (digital signature), fill out forms, view submission history |
| Profile | Update personal details |
| Messages | Chat with staff/admin |
| Billing | View 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.
- iPhone / iPad (Safari): tap Share → Add to Home Screen.
- Android (Chrome / Edge / Samsung): after a few seconds a prompt appears offering to install. Or tap the browser menu → Install app.
- Desktop (Chrome / Edge): an install icon appears in the URL bar.
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.
- Members → select student → Billing → New installment plan
- Choose: total amount, number of instalments, first-charge date, frequency (weekly / fortnightly / monthly)
- Member must have a saved card on file (Billing → Save a card)
- On each due date the daily scheduler attempts the charge via Stripe
- 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.
- Settings → Referrals → enable, set reward amounts (for referrer and referee)
- Each student gets a unique referral code in their Student → Profile → Referrals tab
- When a prospect uses the code on the trial form or a new signup, both sides get the reward credited to their account ledger
- Admin → Referrals → dashboard shows top referrers, rewards paid, and conversion rate
- Rewards can be:
- Dollar credit to account ledger (spendable in the shop or against next billing)
- Extra class credits
- A free month
35. Promo Codes
One-off discount codes scoped to a specific purchase type.
- Admin → Promo Codes → New code
- Configure: code (auto-uppercased), discount type (% or $ off), applies-to (any / class package / subscription / shop), min purchase, max redemptions total, max per-student, expiry
- 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.
- Admin → Class Packs → New package
- Name, description, credit count, price, expiry days (or blank for no expiry)
- Students see available packs in Student → Billing → Buy class credits
- Credits auto-deduct on class check-in (each check-in consumes one credit)
- Admin → Students → select student → Credits tab shows balance across all active packs
- Expired credits are written off automatically each night
37. Virtual Classes
Run classes over Zoom, Teams, Google Meet, or any conferencing tool.
- When creating a class, set Virtual = yes and paste the join URL
- Control when the join link becomes visible: N minutes before the session starts
- Members see a Join now button on the class card once the visibility window opens
- 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.
- Admin → Sequences → New sequence
- Choose trigger:
new_lead, new_student, trial_ending, overdue, inactive_7d, birthday
- Add steps: each step is an email or SMS with a delay (e.g. +0 min, +2 days, +7 days)
- Write the template with variable placeholders:
{first_name}, {org_name}, {unsubscribe_url}, etc.
- 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:
- Day 0: "Thanks for coming!" with photos
- Day 3: "Liked the vibe? Here's 50% off your first month"
- Day 7: "Trial class on us — book here"
- Day 14: "Last chance to claim your offer"
39. Events & Public RSVP Links
Event types supported
- Seminar — guest instructor, workshop
- Trip — training camp, tournament travel
- Workshop — skill-specific session
- Birthday / Party / Social — member birthday parties, studio socials
- Competition — hosting or team-travel
- Open Day — free public event to draw prospects
Creating an event
- Admin → Marketing → Events → Create Event
- Fill in name, type, date, time, location, capacity
- For birthday parties: set Host / featured name to the birthday child
- Optional: add RSVP page message (shown on the public invite page)
- Check "Add each RSVP as a soft lead" to wire drip sequences into RSVPs
- Save
Sending invites
Every event gets a public invite link of the form:
``
https://phoenixsuite.com.au/rsvp/<random-token>
`
After saving the event:
- Open the event detail view
- Copy the URL from the 🎟️ Public invite link card
- Paste into WhatsApp / SMS / email to parents or guests
What happens when guests RSVP
Anyone with the link — no account required — fills in:
- Their name, email, phone
- For social events: child's name, age, dietary notes
- How many people attending (1–8)
- Optional message
On submit:
- An event_booking
is created with all guest + child details
- If enabled, a trial_lead
is created with source event_rsvp
- Your new-lead drip sequences fire automatically
- Your webhooks fire for external integrations
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
- Admin → Payroll → Employees → click a staff member
- Set employment type (casual, part-time, full-time, contractor)
- Hourly rate + super rate (default 11.5%)
- TFN + TFN declaration type
- Tick "claim tax-free threshold" if applicable
- Tick HELP / STSL debt boxes as needed
- Address, date of birth, super fund USI + ABN + member number
Running a pay run
- Admin → Payroll → Pay runs → + New pay run
- Set period start / end, pay date, frequency (weekly / fortnightly / four-weekly / monthly)
- Phoenix pulls approved timesheet entries for the window and creates a draft slip per staff member
- Edit any slip — overtime, bonuses, allowances, leave, pre/post-tax deductions
- Click Finalise pay run
- Computes PAYG withholding using ATO NAT 1004 Scale 1/2/3 tables
- Computes super guarantee on ordinary time earnings
- Computes HELP/STSL using progressive bands
- Computes net pay + YTD totals
- Marks timesheet entries as paid
- 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:
- Admin → Payroll → STP settings
- Choose provider, paste API key + secret
- Pick sandbox
or production
- On pay-run finalisation, click Submit via sending service → Phoenix POSTs the payload and stores the submission ID
- The scheduler polls every 10 minutes for the ATO receipt ID
- Once received, the pay run status flips to lodged
Option B — manual lodgment:
- Click Download STP payload (JSON file)
- Upload it via your sending service's web portal
- 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.
- Admin → Reports → Monthly / BAS
- Pick a month (defaults to previous month)
- See:
- Sales breakdown (subscriptions, shop, refunds, net)
- GST collected + refunded + net payable
- Payroll hours, gross pay, super guarantee
- Outlook (active monthly subscriptions, estimated MRR)
- Download CSV for spreadsheet work
- 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
- Admin → Accounting → Connection tab
- Pick Xero or QuickBooks Online
- Click Connect → OAuth flow → pick your company
- Sync tab opens — configure:
- Auto-push invoices on / off
- Auto-mark invoices as paid on / off
- Default sales account code
- Default bank account code
- 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.
- Copy the webhook endpoint URL shown in the Sync tab
- Register it in your provider's developer dashboard
- 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.
- Register via the standard signup flow as a "Business Group" at /register
- Assign each child org one primary module (Martial Arts or Fitness)
- Admin → Org Groups → see combined stats, switch between orgs with one click
- 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.
- Admin → AI Insights
- Two tabs: Churn risk and Lead conversion
- Each row shows: name, score (0–100%), tier (low / medium / high / critical), top drivers
- Click Explain to see every feature's contribution as a red/green bar
- 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:
- Hides the AI Insights nav + dashboard widget
- Skips the nightly rescore and weekly retrain
- Returns 403 from the API
- Preserves existing scores and models so you can flip it back on
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.
- Admin → Developer API
- Click + Create key — pick name and scopes (read / write / admin)
- The key is shown once (sha256 hash stored) — copy it somewhere safe
- Include as Authorization: Bearer pk_live_xxx…
on every request
- 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.
- Admin → Branded App → Branding tab
- Set app name, slug, colours, icons (1024×1024 + adaptive icon for Android)
- Add support URLs (email, privacy policy — required by both stores)
- Store identifiers tab — set iOS bundle ID, Android package name, App version
- Upload your Apple ASC API key (Team ID, Issuer ID, Key ID, .p8 contents) and your Google Play service-account JSON
- Builds tab — click Build for iOS or Build for Android
- First build submits to TestFlight / Internal Testing under your account
- 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.
- Admin → Videos → + New video
- Upload to your bucket (S3 / R2 / Cloudflare Stream) and paste the URL
- Set title, description, discipline, skill level, access (all members / subscribers only / specific plans)
- Members see the library in Student → Programs → Videos
- 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:
- Attendance — most check-ins in the window (week / month / all-time)
- Streak — longest consecutive days attending
Feed
A chronological feed of:
- Member check-ins (those who opted in)
- Grading / rank promotions
- Waitlist promotions ("Sarah just got off the waitlist for Beginner BJJ")
Workout broadcast (floor display)
Instructors can push the current workout step to a floor TV + every member's phone simultaneously.
- During a class, instructor opens the Broadcast view
- Tap Start broadcast → step 1 appears on all connected devices
- Tap Next step → everyone sees it in real time
- 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.
- Settings → Self-service → Freezes — enable, set max duration, set annual limit
- Members see Billing → Freeze my membership on the mobile app
- Pick start + end dates within your limits → confirmed immediately
- Member's subscription pauses for the window; auto-resumes at end
- 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.
- License Portal → Dashboard → + New partner org
- Fill in org name, admin details, partner type (reseller / integrator / beta / internal / friends_family)
- Pick modules + limits (defaults to partner-scale: 9999 members, 100 staff, $0/mo)
- Choose: send a welcome email with password-reset link, OR get a temp password back to share out of band
- 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.
- GET /api/exports/org-data — admin-authenticated, returns one JSON document with 30+ tables (users, students, payments, classes, payroll, etc.). Secrets (password hashes, TFNs, Stripe keys) are redacted server-side.
- GET /api/exports/table/:name.csv — single table as CSV for spreadsheet import.
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.