Skip to main content

Release Notes

What's changed for customers, most recent first.

2.15.2 — 2026-10-16​

  • A student can no longer be enrolled directly into a class belonging to a different programme (e.g. moved straight from Snakes & Cranes into a Juniors class) from any instructor-facing "Add class" or "Add student" screen — they must be formally moved to the new programme first. Previously only one of the three places you could add a student to a class actually enforced this.
  • The booking widget you embed on your own website now matches the main booking page for Adults classes — it correctly shows "Your first name", "Your date of birth", etc. instead of child/parent-carer wording. The main booking page already had this fix; the embeddable version didn't.

2.15.1 — 2026-10-14​

  • Grading Day's slot counts are now always correct. The "N assigned" figure in Manage Slots could previously drift above the real number of students who'd actually show up on the check-in roster — if a student re-graded early, lost eligibility, or left the club after being assigned to a slot, they'd silently keep counting as "assigned" forever. Both numbers now always agree.
  • Promotion-suggestion tasks (FR-55) fire reliably for every eligible student — a dedup bug meant a second student turning the same age in the same sweep could be silently skipped. Fixed.

2.15.0 — 2026-10-13​

  • Student of the Week history follows a class mover — when a student moves class (e.g. Snakes & Cranes → Juniors), their S.O.W. history from the old class now counts in the new one: the dedicated SOW report's numbers, and the register's own S.O.W. picker, which now also shows each candidate's win count and last-won date, and highlights a suggested pick (fewest wins, then longest since their last win) with a ★ badge. The old class's own numbers are never touched — nothing is moved or subtracted, the new class's figures simply become inclusive of genuine prior history.
  • Class/type mismatches — downward training no longer flagged. A Teens student training in a Juniors class, or a Juniors student in Snakes & Cranes (including skipping a level), no longer appears on the Class Mismatch tile — a common, legitimate case (make-up session, sibling's class, scheduling flexibility). Training upward still flags exactly as before, since that's the case actually worth checking.
  • Fixed: an inactive student showing as a GUEST on their own past register. Opening an old register for a student who's since left no longer mislabels them with a GUEST badge and a delete control — they correctly show as a normal roster member for that date, same as anyone else who actually trained that day.
  • Fixed: a trial reschedule could silently stop that lead's reminder texts/emails. If a trial lead changed their date — via the admin Pipeline board, the self-service reschedule link, or the chat bot — their 24-hour reminder could permanently stop firing for the new date. Reminders now correctly re-fire after a reschedule.
  • Auto-flagged promotion tasks (FR-55) — a Task now appears automatically when a student crosses an age or grade boundary suggesting they're ready to move up a class type: Snakes & Cranes turning 8, 9, or 10 (or reaching the top S&C grade) flags for Juniors; Juniors turning 11, 12, or 13 flags for Teens; Teens turning 18 flags for Adults — only when an active class of the target type exists. Promoting the student closes the task automatically.

2.14.0 — 2026-10-12​

  • Loyalty Referrals — every active-student family can now be given their own referral link and QR code, refreshed automatically each month. Share it, and a friend who books a trial (or goes on to join) raises a reward reminder for the club to action. Off by default — turn it on under Admin → Integrations → Loyalty Referrals, and nothing is ever sent without a real human approving it first on the Comms page, same as every other suggested message.
  • Instructor SMS-copy toggle — the instructor phone number used in message templates can now be kept separate from whether you want a copy of every outbound SMS sent to yourself. A new Copy me on SMS switch under Admin → Integrations controls that independently.

2.13.2 — 2026-10-09​

  • Signing up as an adult now looks right — the online booking form used to ask adults for their "child's" date of birth and force them to fill in a "parent/carer" name that doesn't apply to them. It now asks for their own details, in their own words, and drops the irrelevant field entirely.

2.13.1 — 2026-10-02​

  • Grading Day is now properly usable on a phone — the header's menu row (previously running off the edge of the screen) now scrolls neatly within its own row, and every popup on the page (Slots, HQ Figures, Notify Parents, Past Gradings, Payments, Assign to slot, Complete Grading) now opens correctly as a full-width sheet instead of looking squashed or appearing off-screen. The Grade Slots setup form is also easier to fill in on a phone, one field at a time instead of a cramped two-column layout.
  • Two menu items renamed for clarity — "Slots" is now Grade Slots, and "Select Multiple" is now Assign Students, with Grade Slots moved to the front of the menu.

2.13.0 — 2026-09-28​

  • Grading Day: notify parents of slot timings — once students are assigned to Grading Day slots, tap Notify Parents on a slot (or Notify All for every slot) to text and email each parent their child's grading date, venue, and slot times — no more relaying this by hand. A preview shows who'll be notified, who's already been told, and who's missing contact details, and a repeat send only reaches students who are new or moved since the last one.
  • Reactivate a deactivated student — the People list now has an Active/Inactive filter, and an inactive student's profile has a Reactivate student button restoring them straight back into their previous class. A reminder covers what reactivating doesn't do automatically: billing isn't resumed, and it's worth checking the class is still the right fit.
  • Staff Fees: flagged sessions are now tap-to-fix — the amber "N flagged" pill on the Staff Fees report is a real button now, not a tooltip that never worked on a phone. Tapping it explains in plain language why a session didn't count towards pay, and tapping the session itself jumps straight into that exact class and date's register to check or correct it.

2.12.0 — 2026-09-25​

  • HQ Grading Figures, one click — the Grading Day page now has an "HQ Figures" button that builds the spreadsheet sent to head office after every grading — who's grading, to what sash, and what's owed — instead of it being built by hand. A summary shows the numbers before you download, and flags anyone left out and why.
  • Plan by Student — a second way to plan a lesson — the Lesson Planner can now split a class by student as well as by technique: pick a technique category for a group, add the students working on it, then open another category for a different group in the same timed slot. Each group only ever shows the techniques its own students need next. Slots and technique sections are colour-coded and collapsible, past weeks open collapsed automatically, and several students can now be selected together before choosing which technique they all join.
  • Projected/Actual Grade Figures — the Sash Order report is renamed and gains a second basis: Projected (everyone marked Eligible, as before) and a new Actual tab counting only students who are Confirmed and have paid their grading fee — a firmer number to order sashes against closer to the day.

2.11.0 — 2026-09-24​

  • Different trial messages for adults and kids — trial leads booked onto an Adults class now get Adults-specific messages at each stage of the trial journey: booking confirmation, 24-hour reminder, first-trial follow-up, second-trial reminder and the membership invite. Everyone else continues to get the existing messages exactly as before.
  • The membership invite matches too — when an instructor presses Send Invite for an Adults lead (and for the automatic follow-up reminders after it), the Adults version of the invite is sent.
  • Ready to use on every branch — all branches now have the six Adults templates in their Templates page (under Trial Lead Only), already set to Adults only. They can be edited like any other template, and the Adults wording can be tailored per branch.
  • Set up automatically for new branches — a newly created branch starts with the Adults templates and their pipeline stages already in place.
  • Kids or adults, chosen up front on the booking form — if a branch runs both children's and adult classes, the online trial booking form now first asks who the class is for and shows only the matching classes (with a Change link), instead of one long list. Ads can link straight to either list by adding ?for=adult or ?for=child to the booking link, and the same works for the form embedded on a branch's own website. Branches with only one kind of class see no change.
  • Correct sash order for Black grades — Black/Silver now comes before Black/Gold, then Black, for Juniors and Teens on every branch, so Next Sash and grading-slot eligibility follow the real progression.

2.10.0 — 2026-09-19​

  • Branch Grade Readiness, at a glance — a new summary above the Attendance Grid's class tables: Total students, Eligible, Confirmed, and Paid (once SumUp Order Tracking is on), each with a live percentage. No more scrolling every class's table to tally where the branch stands ahead of a grading day.
  • Attendance Grid classes now sort by when they actually run — Monday to Sunday, earliest time first — instead of alphabetically by class name.
  • Grading fees for multiple children in one order are now tracked correctly — if a parent pays for two (or more) children's grading fees in a single SumUp order, each child's payment is now tracked and reviewed separately, instead of only the first being recorded.
  • Safer review queue for multi-fee orders — when an order needs a human to confirm who it's for, each fee is now clearly labelled ("Fee 1 of 2 on this order") and a student already matched to one fee is greyed out on the others, so the same child can't accidentally be picked twice while another goes unrecorded.
  • Duplicate button on comms templates — create a variant of an existing template (subject, body, SMS text, and audience restrictions all copied over) without retyping it from scratch. Starts inactive until you review and save it.

2.9.0 — 2026-09-13​

  • Grading fees can now be marked Paid automatically — forward SumUp's own "New order" email for your grading-exam product to a dedicated address, and r4ptor detects it, matches it to the right student by their name/email/phone, and marks their grading fee Paid on its own. If it can't tell for certain who an order belongs to, it's queued for a quick one-tap manual match instead of guessing.
  • New Settings section: "SumUp Order Tracking" — a single on/off switch, plus your webhook secret and the product name to watch for (e.g. "Grading"). Off by default — nothing about this feature is visible anywhere until you turn it on.
  • Paid/Unpaid shown right on the Attendance Grid — once enabled, every student's row on the Attendance Grid report shows whether their grading fee is Paid, alongside the existing Eligible/Confirmed toggles.
  • A new "Grading Fee Payments" table on the Revenue page — the full history of every grading order received: which student, order number, amount, date, and whether it applied automatically or needed review.
  • A quick "mark Confirmed" nudge, from two places — if a student's grading fee shows Paid but they're not yet marked Confirmed for the next Grading Day, a small flag appears right next to it — on the Attendance Grid and the Revenue page — so you can confirm them in one click from whichever screen you're already looking at.

2.8.2 — 2026-09-12​

  • Chat bot fix: no more false "couldn't confirm" messages after a real booking — previously, if a visitor said something like "Perfect" or "Thanks" right after the bot confirmed their child's trial, the bot could sometimes contradict itself and claim the booking hadn't gone through after all — even though it genuinely had. That's fixed: the bot now correctly remembers a booking it already made earlier in the same chat, and won't second-guess itself on a later, unrelated reply.

2.8.1 — 2026-09-11​

  • Confirmed now requires Eligible — a student can only be marked "Confirmed for next Grading Day" once they're also marked "Eligible for next grade", wherever that's set (the Attendance Grid report or People's bulk toolbar). Un-confirming is always still allowed. Turning Eligible off also clears Confirmed automatically, so the two never drift out of sync.
  • New People filter: "Not confirmed for Grade" — sitting alongside the existing Eligible/Confirmed chips, shows students who are eligible but haven't been confirmed yet — the ones still owing a decision.
  • Tidier filter chip labels — Eligible for Grade / Confirmed for Grade / Not confirmed for Grade.

2.8.0 — 2026-09-11​

  • New report: Attendance Grid — under Reports, a class-by-class attendance grid built for grading-eligibility decisions. Each class gets its own table: every currently-enrolled student down the side, their last 12 sessions across the top, a tick for each one they attended. At the end of each row, an x/y attended count and a % for the whole period — everything you need to decide who's actually put the time in, without digging through the register week by week.
  • Sortable by Surname, Forename, or Sash — click any of the three headers to sort that class's table; click again to reverse, click a third time to clear. Click more than one to build a compound sort (e.g. Sash then Surname), same as the existing Student of the Week report.
  • Eligible / Confirmed toggles right on the grid — two toggles at the end of each student's row set "Eligible for next grade" and "Confirmed for next Grading Day" directly from the attendance data, without switching over to People. Same fields, same save, just one click while the attendance is right there in front of you.

2.7.0 — 2026-09-08​

  • Airtable sync flags Dropouts and offers to deactivate them — when a re-sync detects a student's Airtable status has changed (e.g. to "Dropout"), they're pulled out of the normal sync and shown in their own section with the reason, so it's impossible to miss. Nothing is deactivated automatically — tick the ones you want, individually or all together, then confirm. If the student has actually checked in recently, a warning tells you before you deactivate them (catches an Airtable duplicate record being mistaken for a real dropout). Once you've said a specific record isn't really a dropout, it won't ask again.
  • Cleaner Airtable sync preview — rows that were never going to be created (a dropout record that's brand new to r4ptor) or need no action (already inactive) no longer clutter the list — just a one-line count. An already-up-to-date record no longer gets pre-ticked for no reason. The Errors count now only reflects real problems, not incomplete dropout records that were going to be skipped anyway.
  • Filter People by grading status — the People screen can now be filtered to just students marked "Eligible for next grade" or "Confirmed for next Grading Day", alongside the existing Student Type and Sash filters.

2.6.0 — 2026-09-05​

  • Bulk-import classes from a CSV — a new Classes tab on the Import screen lets you create a whole term's worth of classes in one upload, without needing a student CSV alongside them. Covers every field the manual + Add Class form does, including an optional venue (matched by name, or created on the fly if you give it an address), and safely skips any class that already exists by name if you re-upload the same file.
  • Grading Day slots can now be restricted to specific Student Types and Next Sashes — e.g. an 8:15 slot that's Snakes & Cranes-only, or one that only assesses White and White/Bronze sashes. Trying to bulk-assign a student into the wrong slot is blocked, and the "Assign to slot" picker only offers slots that actually fit the students you've selected. Both the Manage Slots panel and the check-in roster's own slot header now state the restriction in plain text — "Next Sash: White, White/Bronze", or "Next Sash: All Sashes" when a slot isn't restricted.
  • Grading Day polish — every slot you create now shows on the check-in roster straight away, even before anyone's assigned to it; slots are listed everywhere in Drop-off-time order; and the check-in filter bar has been trimmed down to just Search + Sort, since slots themselves now do the narrowing the old Current sash/Next sash/Slot filters used to.
  • Pause new bookings on an individual class — a class can now be individually stopped from accepting new trial bookings, independent of its Student Type, venue, or active/inactive status. A paused class disappears from the public trial-booking form and from the chat bot, but stays fully visible on Register, Home, and Lesson Planner, and anyone who already has a trial booked on it can still reschedule. Toggle it from a class's detail sheet under Classes.

2.5.0 — 2026-09-04​

  • Student of the Week can go to a Guest student — a student training in a class they're not enrolled in (e.g. covering a missed session elsewhere) can now be given Gold/Runner-up, tagged (Guest) in the picker. Removing a guest from the register automatically clears any award they held. Also fixed a pre-existing bug where a student's S.O.W. report counted awards won in every class they'd ever attended, not just the one being reported on.
  • Register roster sortable by Sash, First Name, or Surname — a new sort control on the Register (matching Grading Day's existing one) reorders both the Students and Guests sections; always resets to Surname when a register is opened.

2.4.0 — 2026-09-02​

  • Grading Day time slots — set up named time slots for a grading day (e.g. "Slot 1 — 9:00 Drop-off"), assign confirmed students to one at a time, and freely move them between slots afterwards (handy for instructor-agreed time-swaps). Comms templates can now include the grading date, venue, and a student's own slot times as tokens.
  • Check-in roster groups by slot — once slots are in use, the check-in page automatically groups students by their slot instead of Student Type, each with its own collapse/expand, Drop-off/Start/Collect times, and a live checked-in percentage. Anyone not yet assigned sits in an "Unassigned" group at the top.
  • Fixed: Google Sheets lead-poll only worked with a bare Sheet ID — pasting a full Google Sheets URL (as the field's own placeholder text suggests you can) silently failed every time; now both a bare ID and a full URL work.

2.3.0 — 2026-08-30​

  • A fourth Staff role: Instructor (Cover) — added the same way Assistant Instructor was, so a cover instructor can be recorded distinctly from a regular Coach/Team Leader wherever staff roles show up (People, Register, Reports, Lesson Planner).
  • Send Class Message from the Register — a free-text "Send Class Message" button on any class register sends an urgent one-off email/SMS to every enrolled student's contact, for things too time-sensitive to wait for a scheduled comms template (a cancelled session, a venue change).
  • Email works with any SMTP provider, not just Gmail — Settings now offers Gmail, one.com, or Custom SMTP, each with a live Test Connection check before saving. No more being locked into Gmail App Passwords.
  • Sash Order report combines identical syllabuses — Juniors and Teens (which share the exact same grade sequence at this club) now report as one combined section with category totals, instead of two separate sections an instructor had to add up by hand.
  • Grading Day check-in — a new standalone page for running a grading day: confirm which students are attending ahead of time (from People, individually or in bulk), then tap-to-check-in as they arrive on the day, with live search and multi-select sash filters for narrowing a large class quickly. "Complete Grading" archives the day as a permanent record and resets everyone's grading flags club-wide for the next cycle.

2.2.0 — 2026-08-18​

  • A persistent left sidebar on desktop — jump directly to any screen (Registers, People, Reports, Settings, etc.) from a sidebar that's always there, instead of returning to Home first every time. Home's old desktop tile grid is gone; mobile is completely unchanged.
  • A consistent header on every screen — Date, Plan Type, and Sign out now appear the same way everywhere on desktop, and every screen now uses the same page width as Registers, instead of some being narrower or (Comms) wider than the rest.
  • Comms splits into columns on desktop — Suggested, Templates, and Variables each lay out in independently-scrolling columns instead of one long list, so there's less scrolling to find what you need.
  • One-click contact on Trial Starters — Call, WhatsApp, SMS, and Email buttons on a trial lead's contact details, matching what's already on student profiles. No more copying a number or email out to another app.
  • Staff Fees no longer counts classes that were never actually run — a session someone merely opened (e.g. on the wrong day) but never took a register for is excluded from fee totals, and flagged on the report by name and date so it can be corrected at the source rather than the discrepancy resurfacing every month.
  • The register date picker no longer hides stray sessions — a register that was accidentally created on the wrong day is now reachable and correctable, instead of the date picker silently bouncing you to a different day every time.

2.1.0 — 2026-08-12​

  • Configurable earliest trial date per class type — instructors can hold a class type back from new bookings until a set date (e.g. Snakes & Cranes waitlisted until next term), enforced both on the public booking form and server-side against direct submissions.
  • Edit a trial lead — fix a mistyped name/email/phone, or assign a class to a "Class TBC" lead (every Meta-sourced lead arrives this way), without deleting and re-adding.
  • Automatic first-contact message for Meta Lead Ad leads — now a standard part of every branch's pipeline. A lead who fills in a Meta Lead Ad form gets an immediate email + SMS, and correctly moves from New to Contacted once it sends.
  • Trial-pipeline activity in Club Health and AI Insights — new leads and conversion rate now show up as a genuine club-health signal, not just after-the-fact conversions.
  • Known absences no longer count against a student unfairly — At Risk / Lapsed flagging now looks at unexplained absences only; a student's own displayed numbers are never adjusted, only the decision to flag them.
  • First-pass developer API docs — Settings → Developer now has a live, interactive API reference for 35 endpoints, growing incrementally each release.
  • trialDate2 auto-corrects when Week 1 is rebooked — previously left stale, which also threw off the Week 2 reminder.

2.0.0 — 2026-08-08​

  • Offline Register — if the gym's wifi or signal drops mid-session, instructors can keep tapping student attendance (and, from the same release, staff attendance, the class-held toggle, removing a guest, and S.O.W. Gold/Silver awards too). A small "Offline" badge appears in the Register header with a pending-changes count, and everything syncs automatically — with a "Synced" confirmation — once the connection comes back.
  • Lesson Planner weeks and technique groups are now collapsible — each week in a lesson plan block can be collapsed/expanded independently, and within an expanded week each technique-type group can be collapsed on its own too, in both Standard and By Teacher view modes.
  • Fixed: trial-lead comms silently going nowhere on 13 of 14 branches — a leftover test-mode setting left over from setup meant trial confirmation/reminder emails and texts were silently never sent on every franchise branch except princeavenue, with no error anywhere. Now sends correctly everywhere, matching each branch's own Test Mode setting in Settings.
  • Fixed: app install prompt that didn't work — "Install r4ptor" appeared but did nothing when tapped; now installs properly.

1.19.0 — 2026-08-07​

  • Voluntary ("V") tag on staff attendance — Coaches and Team Leaders can be tagged 'V' for a specific voluntary session in Register, excluding just that session from their fees-report payroll calculation. Attendance itself is untouched — they still show as present, just unpaid for that session.
  • Register guest picker gets a proper search — replaces the old single long dropdown with a text box and a live-filtered suggestion list, for classes with a large pool of eligible guest students.
  • Media consent icon on Register — a small icon now flags any student (roster or guest) without media consent directly on the Register, so instructors don't need to check People separately before photographing or filming a session.
  • Student notes field — a small instructor-only notes section on the student profile, which now also carries over automatically from a trial lead at conversion instead of being silently dropped.

1.18.0 — 2026-08-07​

  • Monthly Drills — a 7th technique type in the Lesson Planner (alongside Strikes/Kicks/Blocks/Form/Footwork/Other) for drills that aren't tied to a specific grade — selecting it applies to every enrolled student, and the Lesson Planner surfaces the drill appropriate to each week's actual month.
  • Lead Sources report — Reports → Lead Sources shows every trial lead grouped by source (Meta Lead Ad, Website, etc.) with converted/lost/in-progress counts and a conversion percentage.
  • 2 Students of the Week per session — Register now supports up to 2 Gold winners alongside the existing Runner-up, each picked from its own dropdown.
  • Assistant Instructor pill is now red — matches Coach/Sifu's colour consistently across People, Register, and Reports.
  • Annual fee setting consolidated — the club's annual membership/affiliation fee is now one setting instead of two separate, easy-to-desync ones.
  • Google Sheets Lead Ads bridge (opt-in) — an alternative to the Make.com bridge for pulling in Facebook Lead Ad submissions, for clubs who'd rather use a Google Sheet.
  • Fixed the browser tab title, which still read "r8ptor" instead of "r4ptor."

1.17.0 — 2026-08-05​

  • Assistant Instructor staff role — People → Staff can now be tagged as Coach, Assistant Instructor, or Leader. Assistant Instructors can be assigned to any class including Adults, and appear as full technique-group leaders in the Lesson Planner, just like Coaches — a distinct, visible label on the roster, reports, and register, not a functional restriction.

1.16.0 — 2026-08-05​

  • Sort Students by First Name A-Z — People → Students gains a First Name sort option alongside the existing Surname/Type/Sash choices.
  • Trial pipeline search — a search box (name/email/phone) now looks across every pipeline stage, not just the active tab.
  • Meta Lead Ads — honest status — the native "Connect Facebook Page" flow completes but can't reliably deliver real leads yet (pending Meta's own App Review). The in-app UI, docs, and marketing site now mark it "under development" and point to r4ptor's working Make.com bridge instead, with a new section in Marketing & Ads showing the webhook URL and secret needed to set it up.

1.15.0 — 2026-08-03​

  • Failed payment alerts — if a GoCardless payment fails or is later charged back, a High priority task ("Payment failed — [name]") is now raised automatically for the instructor to chase. Previously this only surfaced if someone happened to check the GoCardless dashboard directly.
  • Mandate cancelled after joining — if a member's Direct Debit is cancelled, fails, or expires well after they've already joined, r4ptor now raises a task instead of the change going unnoticed.
  • Membership offer reminders — if a parent doesn't complete the membership form after the instructor sends the offer, r4ptor now automatically re-sends it as a reminder at 2 days, 4 days, and 7 days (final), capped at 3 nudges total.
  • Free plan gating fix — Tasks, Bot Conversations, Marketing & Ads, Renewals, and Financial are now properly locked behind a "Pro only" badge on the Free plan, same as Lesson Planner/Comms/AI Insights.
  • Free plan 25-student limit fix — CSV import and Airtable sync now also respect the Free plan's 25-active-student cap, same as Add Student/Add Class already did.

1.14.0 — 2026-08-02​

  • Mandate Overview and Import Mandates cards on Financial now show the actual student name/email per mandate, and every GoCardless card can be collapsed/expanded individually.
  • Add to plan — put a new Direct Debit mandate onto a real GoCardless plan without leaving r4ptor, from Financial → Members With Mandate — No Plan, or directly from a student's own People profile. Supports both a recurring subscription (picked from the club's own existing plans) and a one-off payment.

1.13.0 — 2026-08-02​

  • The staff register now supports marking an absence as "known" (tap twice), same as the existing student pattern.
  • GoCardless Recent Payments now shows the paying family's name instead of a generic "Monthly Fees - Class - WkN" description.
  • Real GoCardless matching gaps found and fixed: siblings on a combined family Direct Debit are now both linked correctly (previously only the first child ever matched); a student's subscription now stays automatically in sync as they move classes or their fee changes, instead of silently going stale over months or years.
  • New: each student can now have a secondary phone/email on file, specifically for financial matching — useful when a grandparent, ex-partner, or other family member handles the Direct Debit under different contact details than the student's main record.

1.12.0 — 2026-07-31​

  • Twins and siblings booking together no longer get wrongly rejected as a duplicate booking, on the website form or the chat bot.
  • Booking two children at once on WhatsApp no longer occasionally crashes the conversation.
  • The bot will never again tell a visitor a trial is booked when it isn't — if it can't complete a booking for any reason, it now says so honestly and alerts the club to finish it manually, rather than risking a false confirmation.
  • WhatsApp replies now consistently use WhatsApp's own bold formatting instead of showing stray asterisks, and instructor replies typed into the admin screen are now actually delivered to the visitor on WhatsApp.
  • Booking three or more children in one conversation is no longer attempted automatically in chat — the bot now points visitors straight to the online booking form for that case.

1.11.0 — 2026-07-30​

  • When booking a trial through the chat bot, visitors are now offered a genuine choice of the next few available dates for that class, rather than the bot picking one for them automatically.

1.10.0 — 2026-07-30​

  • The same AI chat bot from the website can now also answer questions and book trials on your club's WhatsApp number.
  • If a message looks like spam or has nothing to do with the club, the bot won't reply — it flags it for you to review instead, so genuine enquiries never get lost in the noise.
  • A re-engagement nudge is sent automatically if a visitor goes quiet partway through a conversation.

1.9.0 — 2026-07-29​

  • An AI assisted chat bot you can add to your own website that answers questions about your classes, fees, and policies, and can book a visitor straight into a free trial — landing in your normal Trial Starters pipeline like any other lead.
  • Full control in Settings: turn it on/off, pick your AI provider and model, write your own FAQ knowledge, and set your own API key.
  • Every conversation is saved so you can review what people actually asked and how the bot answered, from a new "Bot Conversations" screen on the home dashboard. You can also take control of a conversation in real time, stopping the bot from responding further.
  • Unread badge on the Bot Conversations tile, and conversations can be dismissed without deleting them.
  • Visitors who aren't ready to commit can leave just a name + email/phone for a callback, instead of booking a trial outright.
  • Two separate instructor alerts — one for a new bot conversation starting, a separate one for a new opportunity actually landing in the funnel. Both off by default.
  • A "Check Balance" button for Twilio in Settings.

1.8.6 — 2026-07-28​

  • The membership offer sent when a trial completes now goes out by both email and text, not just text.
  • Once a converted lead has been added to a class as a member, they no longer clutter the "Joined" column on the trial pipeline board.
  • Sending a comms message to a large group now only sends you (the instructor) one copy, not one per recipient.
  • The Airtable sync screen now shows exactly what's changing for each student (old value → new value) before you import, and lets you tick/untick individual students to include or exclude from the sync.
  • Taking a class register no longer spams the Activity Log with one row per student — just one entry per register taken.

1.8.5 — 2026-07-28​

  • Fixed a bug where clicking "Mark 2nd Trial" on a trial lead's pipeline card did nothing — it now correctly advances the lead and unlocks "Send Membership Offer".
  • The Trial 1 / Trial 2 pipeline tabs and status labels now show a checkmark ("Trial 1 ✓", "Trial 2 ✓") to make it clear the lead has completed that stage.

1.8.4 — 2026-07-27​

  • Fixed a bug where some trial bookings could get the same 24-hour reminder text sent twice.
  • Bulk emails to a large group of students are now much more reliable — large sends could previously fail partway through.
  • The instructor now gets a copy of trial-lead emails and texts too (confirmations, reminders, conversion offers), the same way regular student comms already worked.
  • Comms templates using the venue address or instructor name tokens now fill in correctly everywhere, not just in some message types.
  • Annual membership renewal is now fully working: a new "Fees" section in Settings lets you set your annual fee and payment link, and renewal reminders appear in Comms → Suggested for you to review before sending.

1.8.1 — 2026-07-26​

  • Fixed: the bulk "Send Comms" button on the People screen had never actually been wired up since it was first added — clicking it silently did nothing for any group of students, on every instance. Reported by a real customer trying to broadcast an update to parents; now sends correctly.

1.8.0 — 2026-07-26​

  • Multi-branch venues — a class can now be linked to its own venue (name + address), for instructors running classes across more than one physical address. The booking form and comms show that class's own venue address instead of one single club-wide address. Single-branch clubs see no change. Manage venues from a new "Manage Venues" screen in Classes.

1.7.1 — 2026-07-26​

  • Trial-booking classes can now have their own marketing description — an optional blurb (age-appropriateness, what students will learn, etc.) shown with a "Show more" expand on the online booking form and the embeddable widget.
  • The venue address now shows on the booking form itself, not just in the confirmation email/text afterward — with a proper Settings field to set it.

1.7.0 — 2026-07-25​

  • Embeddable trial-booking widget — paste a ready-made snippet (found in Marketing & Ads → "Copy embed code") directly into your own WordPress site, so visitors can book a trial without leaving your site. Works the same as the existing booking page.
  • Fixed: Meta Lead Ads leads were being silently dropped — a lead submitted through a Facebook/Instagram Lead Ad form never actually reached the pipeline due to a backend bug; now saves correctly.

1.6.1 — 2026-07-24​

  • The Class Mismatch tile's action button is now called Reassign instead of Promote — it was always able to move a student to any class matching their current type, including downward moves or corrections, not just upward ones.
  • Clearer wording on the mismatch row describing which value is the student's own type vs. the class's.

1.6.0 — 2026-07-24​

  • Guest instructors can now see student contact details (Call/WhatsApp/SMS) from the register — previously they had no access at all.
  • New: phone-number import — a one-time CSV backfill for students missing a phone number, matched safely by student ID rather than name.
  • A student's type changing in Airtable now actually takes effect — it was silently frozen after the student's first sync, so a real-world promotion (e.g. Snakes & Cranes → Juniors) never showed up in r4ptor even after a resync.
  • New: Class Mismatch tile — flags any student left enrolled in a class that no longer matches their current type, with a one-click Reassign action to move them into the right class properly.
  • Moving a student between classes no longer erases their attendance history in the class they left.
  • New: guest attendance on the register — "+ Add Guest Student" lets an instructor mark someone present in a class they aren't enrolled in (e.g. they missed their own session and trained elsewhere that week), with full remove/undo and visibility on the student's own profile.

1.5.0 — 2026-07-22​

  • Fixed: importing and assigning a student to a class today no longer hides them from today's register. A same-day join was being silently excluded due to a timestamp comparison bug.
  • Deactivated students no longer inflate class roster counts shown on class/register cards, and attendance % figures computed from those counts are now correct too.
  • The register now shows the class name in a small header.
  • New report: Sash Order — a tally of students per sash colour, for pre-ordering ahead of a grading. Two views: By Branch and Class by Class. Counts the next sash a student is testing into, not their current one.
  • New: "Eligible for Next Grade?" flag on each student — set individually or in bulk via People → Select. Only eligible students count towards the Sash Order tally, and the flag resets automatically once a student's grade actually changes.
  • Many previously-silent actions (marking a register, sending payments-related comms, curriculum changes, bulk imports, and more) are now recorded in the Activity Log for the first time.

1.4.6 — 2026-07-20​

  • Lesson Planner printing overhaul — the old three print variants (A4/A5/Compact) are replaced by two reliable options, both guaranteeing a week never spills onto a page it shouldn't:
    • A4 Print — landscape, one week per page, with technique columns that adapt to how many techniques that week has.
    • A5 Print — new. Portrait, two weeks per page, folding in half at the exact centre of the page.
  • Fixed: printing no longer visibly changes the live screen for a moment before the print dialog opens.

1.4.5 — 2026-07-19​

  • Fixed: opening a register for a class on a day it doesn't run left a phantom "held" session with no students checked in. The "Class held" toggle now defaults OFF and only turns on when attendance is actually marked, or you switch it on yourself.
  • One-time cleanup: 213 old phantom sessions across all clubs were corrected fleet-wide — no data was deleted, only the held flag was fixed on sessions that had zero attendance records.

1.4.4 — 2026-07-19​

  • Fixed: long class names were truncated on the Today/All Classes dashboard cards on mobile — the class-type badge now stacks above the attendance %, freeing up room for the name.

1.4.3 — 2026-07-19​

  • Fixed: People → Select's bottom action bar (count, Cancel, Assign to class, Last graded, Send Comms) overflowed off the right edge of the screen on narrow phones.

1.4.2 — 2026-07-19​

  • Fixed: a trial that lapsed with nobody logging back in could stay stuck on "trial" forever instead of converting to the free plan — the downgrade now also runs on a daily background check, independent of login activity.

1.4.1 — 2026-07-19​

  • Fixed: wrong attendance percentage on student profiles. In any club running more than one class under the same student type (e.g. Saturday + Friday + Wednesday Juniors), a student's attendance % could be understated because sessions from a different class they weren't even enrolled in were counted against them. This did not affect the Club Health report, data exports, or any comms sent to parents.

1.4.0 — 2026-07-18​

  • AI Insights are more accurate — Retention Risk, Club Health, Comms Gaps, and Lesson Suggestion all had their underlying calculations corrected. Grading Readiness report removed — wasn't providing enough value.
  • AI model selection is safer — dropdown of current models instead of free text, validated live against the provider's model list on save. A model is now required before AI Insights will run.
  • "Last graded" date — track when a student was last assessed at a grading, separately from their current grade. Editable per-student or via People → Select → Last graded for a whole cohort.
  • Known vs unknown absence in the register — tap cycles Present → Known absence → Unknown absence. Known absences no longer count against a student in Retention Risk the way an unexplained no-show does.
  • Fixed: several Settings fields (including AI Model) could silently fail to save the very first time.

1.3.0 — 2026-07-13​

A visual polish pass across the whole platform.

  • Cleaner Settings page — dark panel, clearly labelled sections, proper three-column layout on desktop.
  • Helpful tooltips — hover any ⓘ icon next to a setting on desktop for a plain-English explanation.
  • Consistent dark backgrounds — Tasks, Reports and other secondary screens now match the home screen.
  • Fixed: no more stale screens after a platform update — the app always loads fresh content.

1.2.0 — 2026-07-10​

  • Renewals dashboard — see at a glance who's coming up for renewal in the next 30 days, with a clear indicator of who has a Direct Debit in place.
  • Trial self-service links — leads get a personal link to reschedule or cancel their own trial, without calling or messaging you.

1.1.0 — 2026-07-01 to 2026-07-10​

  • Airtable sync reliability overhaul — fixed siblings sharing a parent email stealing each other's record, added name-based fallback matching when no Airtable ID or email match is found, and an "In Sync" tile for records with no changes to apply.
  • SumUp financial view rebuilt — a cleaner Overview / Sales / Payouts tab layout with period selectors.
  • Fixed: a session that expired now redirects to login instead of leaving you stuck.

1.0.0 — 2026-06-11 to 2026-07-01​

The original launch release — r4ptor rebuilt from the ground up as a modern Vue 3 app.

  • Complete frontend rewrite for a faster, smoother experience on every screen.
  • GoCardless payments — Direct Debit mandate setup and payment tracking for memberships.
  • Lesson Planner overhaul — visual refresh, a "By Teacher" grouped view, and reliable printing.
  • Airtable sync — connect your existing Airtable base and keep student records in sync automatically.
  • Meta Lead Ads integration — leads from Facebook/Instagram ad forms flow straight into your pipeline.
  • Tasks — a full task system with recurrence, due dates, and automatic setup tasks for new instances.
  • Google Sign-In on the login and signup pages.
  • Franchise management tools for running multiple branches under one lead account.

0.2.0 — 2026-06-26​

Fleet/signup-service improvements (not part of the customer-facing app itself):

  • Fixed new signups incorrectly showing as "unknown" plan.
  • Fleet admin panel now loads in well under a second instead of 10+ seconds.
  • Added the ability to delete a test instance from the fleet admin panel, with a confirmation step.

0.1.0 — 2026-06-26​

A visual overhaul of the self-serve signup page (signup.r4ptor.app) — dark mode, a branded background, and a live step-by-step checklist while your new instance is being provisioned.