v3.1.842.1950

Chat arrives, attached to the session, event or channel it belongs to. Clubs can ask members for money and track who has not paid. Coaching credentials get expiry dates and are enforced on the sessions that need them, and groups become records of their own with rename-safe references and group-granted permissions.

  • release
  • v3
  • features
  • bugfix
  • chat
  • safeguarding
  • membership
  • permissions
  • sessions
  • payments
  • files

Members can now talk inside ClubPal, on the session, event or channel the conversation belongs to. Qualifications stop being words typed on a profile and become records with award and expiry dates, and a session can now refuse a coach who does not hold what it requires. Groups get the same treatment: they stop being free text on a member's profile and become records you can manage, rename and grant permissions with. Session payments now follow a booking when it moves, so what a member paid is never lost by swapping. Clubs taking payments through ClubPal Payments can see their balance and when the next payout lands.

New features

Chat, in the place the conversation belongs

A question about Thursday's training belongs on Thursday's session, not in a group message nobody can find again. Chat gives members somewhere to talk inside ClubPal, attached to the thing they are talking about. It is off until you turn it on at Admin > Chat > Settings, which carries a separate switch for session chat, event chat and channels.

A conversation can live in three places: on a session, open to anyone who can see it, on an event, the same, or in a channel, open only to the people it is sourced from.

  • Channels are managed at Admin > Chat > Channels and need the Manage Chats permission. A channel draws its members from groups and named members, so a committee or a coaching team gets a room of its own. The list shows where each one gets its members and whether it is Active, Disabled, Archived, or has had its Source group deleted.
  • Messages arrive live, with no reloading, are grouped by day, and mark the point you last read up to. History is paged rather than loaded all at once, so a busy conversation opens quickly.
  • Quote a reply: the message you are answering is pinned above the composer and travels with your reply, and readers can click the quote to jump back. If the original is later deleted the reply survives, showing Message deleted in its place.
  • Attach photos and PDFs: up to four files per message, 10MB each, JPEG, PNG, GIF, WebP and PDF. The type is checked from the file itself, so renaming something to .pdf does not get it in.
  • React with one of seven, gathered into a summary row with counts you can click to see who. The author is told, as a bell alert only, and a muted conversation stays quiet.
  • My chats shows unread counts and a preview of the last message.
  • You are followed in automatically: booking a session subscribes you to its conversation, so does being assigned to coach it, and so does posting in one. Channels subscribe you from the moment you are in one. Every conversation has its own Mute notifications button, and what actually reaches you is set once at Profile > Notifications.
  • Delete your own message at any time. Anyone holding Manage Chats can delete any message.

Read the full documentation →

Reporting and moderating a message

Report sits under every message, including your own. Say what is wrong in up to 500 characters if you want to, and confirm. Nothing visible happens in the conversation: the person you reported is not told, and the message stays where it is until a moderator acts. Only the first report on a message raises an alert, so several people reporting the same thing does not become a pile of notifications.

Reports gather at Admin > Chat > Reported for anyone with Manage Chats, showing the message, its author, the conversation it came from, and every report against it with the reason given. Three actions:

  • Dismiss clears the reports and leaves the message alone, recording that a moderator looked.
  • Hide takes the message out of the conversation for everyone except moderators, and can be undone with Unhide.
  • Delete removes it for good. Replies that quoted it still read, showing Message deleted.

Read the full documentation →

Qualifications that know when they expire

A qualification used to be a word typed into a box on a member's profile. There were no dates, so nothing could tell you a coach's DBS check had lapsed. Qualifications are now records with their own page at Admin > Membership > Qualifications.

  • Define what your club tracks: create each qualification once. The create form suggests the common ones, including DBS Enhanced, DBS Basic, PVG, AccessNI, Garda Vetting, Working With Children Check and SafeSport, alongside first aid and coaching awards.
  • Award and expiry dates on every record: held against the member, so the platform works out where each one stands instead of relying on somebody remembering.
  • Five states: Valid, Expiring soon, Expired, Renewing, and No expiry recorded for a record that arrived without a date, usually from an import. Ticking Renewal in progress on a lapsed certificate turns it amber rather than red, so the dashboard stays worth reading, but it does not satisfy an eligibility rule: an expired certificate is expired.
  • A warning window you choose: set how many days before expiry each qualification starts warning, separately per qualification.
  • One dashboard, sorted by what lapses first: it opens on everything that is not currently valid, filters by qualification and by state, and exports.
  • On the member profile: a Qualifications card lists what someone holds with their dates and status, beside Membership and Payments.
  • Rename and archive safely: renaming updates every holder at once. Archiving takes a qualification out of the pickers while keeping everyone who already holds it.

Qualifications are no longer typed on a member's own Edit Profile page, since a record now carries dates that a member should not be setting for themselves. They are added from the Qualifications card instead.

Read the full documentation →

Coaches your sessions can actually check

Recording a certificate and enforcing it were separate problems. A session can now require one, and work out how many coaches it needs.

  • Coach eligibility rules: a session carries its own rules for who may be added as a coach, separate from the rules about who may book. Require a qualification, an age range, membership of a group, or a profile field value. Age on its own answers "coaches must be over 18" with nothing else to set up.
  • No way round it: the check runs wherever a coach is added, so an administrator adding somebody by hand is held to the same rule as a coach adding themselves. Adding several at once tells you which were refused and why.
  • Checked against the date of the session, not today: a certificate that lapses before a session three months away is refused now, while there is still time to renew it, rather than on the night.
  • Assigning a leader is checked too, when the session is saved.
  • Participants per coach: set one coach for every so many participants and the number required works itself out as bookings come in. It never drops below the fixed number you set, and setting a specific night by hand still beats the formula. The ratio is advisory: it drives the warnings and the dashboard, and never turns a member away or strands a booking that is already confirmed.
  • A cover page at Admin > Sessions > Cover: every session in the next 28 days that is short of coaches, or whose coaches do not hold what the session requires, with the date, cover against required, and the reason. Twenty eight days matches the default booking window, so a gap appears while the session can still be filled.
  • Expected attendance: the average of confirmed bookings across the last six times that session ran, shown beside the required number so a session three weeks out does not look covered just because people book late.
  • A prompt on the admin dashboard: a Review cover tile appears when sessions need attention, and stays hidden when none do.

Read the full documentation →

Groups you can actually manage

A group used to be a word typed onto a member's profile, which meant renaming one quietly detached it from every package, eligibility rule and file share that mentioned it, and a typo created a second group nobody noticed. A group is now a record in its own right, with its own page at Admin > Membership > Groups.

  • Rename safely: members, membership packages, eligibility rules and file shares all keep pointing at the same group and immediately show the new name. Nothing needs re-saving.
  • Grant permissions through a group: tick permissions under Granted Permissions and every member of the group holds them for as long as they are in it. Take someone out and the access goes with them. System Administrator can never be granted this way, and you can only grant permissions you hold yourself, both enforced on save rather than only hidden in the interface.
  • Manage the roster in one place: search for several members, click Add, and remove anyone from their row. Both apply without reloading the page, which is what swapping over a committee after an AGM actually involves.
  • See what a group is doing: the list shows a member count and a Grants badge you can hover to see exactly which permissions the group hands out.
  • Archive or delete: archiving keeps the group and its access but takes it out of the pickers, so nothing is added to it by accident. Deleting asks you to confirm and names what it will affect, then removes the group from every member, package, membership, file share and eligibility rule that used it.

Typing a new group name on a member's profile still creates it, so nothing you already do stops working. Names are unique per club regardless of case, so Coaches and coaches are one group rather than two.

Read the full documentation →

Ask a member for money, and see who has not paid

Clubs could already take an unplanned payment, but only if the member started it, and nothing was left behind afterwards. Payment requests turn that round: you ask a named member for a specific amount, they are told, and you can see at a glance who still owes you.

Raise one at Admin > Payments > Payment Requests, with the Manage Payments permission.

  • Ask one member, several, or a whole group. Everyone selected gets their own request for the same amount, so a kit levy goes out once rather than as forty messages. Choosing a group asks whoever is in it at the moment you send.
  • Say what it is for, add an optional note and an optional due date.
  • The member is told by email and in ClubPal, on the bell and by push, with a button that takes them straight to a page showing the amount, what it is for and when it is due. They pay by card in the usual way, and get the usual receipt.
  • Track what is outstanding with the total owed, how many requests are open and how many are overdue across the top of the list, filtered by Outstanding, Overdue, Paid or Cancelled. A member with no email address on file is flagged Not emailed, so you know to have a word instead.
  • Chase or withdraw: Send Reminder nudges a member again, at most once a day per request, and Cancel Request withdraws it with a reason the member is told.
  • A member's own requests show on their record, on the Payments tab.

Because a payment request is a bill, members cannot switch these notifications off. Requests are paid by card through ClubPal: if a member pays you another way, cancel the request with a reason saying so.

Read the full documentation →

What a member paid follows their booking

ClubPal now records what was actually taken for a booking separately from what the session costs, and that amount travels with the booking when a member moves it.

  • A member who paid £5 and moved to a £2.50 session can still move again to anything up to £5, rather than being capped at the price of the cheaper session they are currently on.
  • The Change Booking dialog says what the money will do before the member commits: how much has been paid, what they can move to with it, and, when the refund window has closed, that moving to a cheaper session will not refund the difference.
  • Cancelling later refunds what that booking paid, and only what that booking paid.

Moving a booking never buys back the right to a refund. The money stays usable, and cancelling after the refund window has closed is still walking away from something already paid for.

Read the full documentation →

Your balance and your next payout

The Payouts page listed settled payouts only, so you could see what you had already been paid and nothing about what was coming. It now shows your Balance and Pending figures alongside the date the next tranche is released and how much it will be, taken from the payment provider's own ledger rather than from a general rule about business days.

The Payouts link was also missing for some clubs on ClubPal Payments and is now shown to all of them.

Read the full documentation →

Club snapshot on the admin dashboard

The admin dashboard opens with a Club snapshot card reading Members (memberships active right now) and Renewals due (active memberships expiring in the next 30 days), plus Balance, Pending and the next payout for clubs taking payments through ClubPal Payments.

The snapshot is deliberately not moved by the date picker: it is where the club stands today, whichever dates the cards below are reporting on. Clubs with membership switched off get no membership figures rather than a count of zero.

Improvements

  • Club branding: headings on your banner and links in your navigation now pick black or white text based on the contrast against your own colours, instead of always being white. Clubs with a bright or light brand colour no longer get near-unreadable text on their own site.
  • Payments: the Fee column, and the CSV export, now show the fee your club actually bore after a refund rather than the fee charged before it, so amount less fee less refunded reconciles against the balance on every row.

Fixes

  • Coaches and admins can remove a member from a session again after the club's cancellation window has closed. Members are still held to the window.
  • Fixed a member's own profile edits not being taken into account by eligibility rules until the old answer expired, so correcting a date of birth or an address now unlocks what it should straight away.
  • Fixed the iOS app closing when Take Photo was chosen while uploading a picture.

As always, if you run into anything unexpected or have a feature request, get in touch, we'd love to hear from you.