Product Roadmap
See what's coming next on 24Trots. Browse planned features, enhancements, and bug fixes for equine therapy session management.
See the improvements, new features, and fixes the 24Trots team is working on for therapeutic riding and equine-assisted programs.
staff/volunteers - always show their user / system role in (parens) — Completed
- Current: Display Name - personType - Current: Keane Angle - Volunteer - Desired: Display Name - personType (userRole) - Desired: Keane Angle - Volunteer (Admin) not sure if these are the right vars but you get it
Extend "Understaffed" functionality to non-barn shifts — Completed
Dashboard: barn shifts get X people short, other sessions need this as well
Add bulk operations for Horses and People — Completed
Add discipline-keyed default tack profiles to horses and participants — Completed
Saddle is horse specific (western vs dressage) Blanket is horse specific (western vs dressage) Bit/bridle are...? Stirrups and Reins are Rider-specific
Horse Tack: We need an addition field:… — Completed
we need to extend our DEFAULT TACK fields for horses to include a fifth Other field, this is for both Western and Dressage - also, this field should populate in on the add horse-participant dialog for sessions and series - it can show just as an uneditable display text for information purposes. ie- some of the horses need trail boots or wears a bonnet, etc. This is for special notes or unique tack.
ensure /messages is an upsellable add-on — Completed
and fix layout on non-mobile
Bring series detail pages into alignment with session detail pages — Completed
1. Move cancel series from bottom of page to inside the edit view 2. put past sessions and session history into a collapsed-by-default section both of these patterns are implemented on the session detail page and need to be mirrored here on the series detail pages (all types)
Track last-updated timestamps per clinical field — Completed
New feature: we have a need to capture ‘last updated’ date for: Weight Height Diagnoses 🔎 For investigation: - ❓ Do updatedOn fields already exist for each of these individually? - ❓ What db edits are required for this? new datetime stamp columns for each? Question: all you need to see is when each of these fields were last updated correct? No additional “history” or “past logs” needed? Example: Height: 4’1” (Last updated m/d/y) - yes? KR: correct, we don't need the history. 🛠️ PLAN: Participants' weight, height, and diagnoses change over time as they grow or their condition evolves. Coordinators need to know when each of these values was last recorded — not just when the profile was last touched overall. This adds individual *UpdatedAt timestamps for weight, height, primaryDiagnosis, and secondaryDiagnosis, surfaced in the read-only Clinical Details card via a calendar-clock icon tooltip.
Guardians list on a participant detail page needs updating — Completed
- Shows preferredName only, not personDisplayName - Approve button needs to be updated to the tailwind primary green with white text like literally all the other fucking buttons on the app - +Add Guardian button should be justified right and moved to be inline with the Guardians header above the list
implement new "On Property" functionality on dashboard — Completed
Displays whos here, who'll be here soon, and who's leaving soon.
Add a "Load Earlier Messages" in #channels with >20 messages — Completed
Load previous lazy-loads in on click/tab 20 previous messages at a time
if a logged in person visits a signup link for an org... — Completed
...they should not be permitted to sign up for another account. - Wizard should say "You're already logged into your account. Please log out first if you would like to create another account." with a Log Out button
Add a next in Calendar button — Completed
total nice to have...when I'm editing a single session, I find myself wanting to click on the next session on the calendar. Would be nice to have a 'Next on Calendar->' ... I know the page is getting busy, think about it. :)
Fix missing quota propagation in series top-up — Completed
Session showing as Fully Staffed, but is missing Barn Manager. Source: https://24trots.com/sessions/ses_OSAGKb4UzNbs Additional screenshots: - /api/storage/objects/uploads/bc53fdf7-3dd3-4a97-9fac-7173f0fa5150 🔎 Investigating: for ser_YkV1Rzt2ppMX - 🐜 Confirmed bug - First session had quota rows ses_SUF1TIk_0sHR and was canonical for the series setup - ❌Subsequent sessions do not have quota rows in the UI ses_OSAGKb4UzNbs and incorrectly count the session as 3/3 instead of 4/4 - ❌ Staff quota for Barn Manager not appearing, quotas for Barn Crew also not appearing Next steps: - ➡️ Investigate data structure to determine failure, potential issue with Top-up or Propagation? - 🐜 Confirmed: Open-ended recurring series are missing session-level quota rows for every session except the first one - ⚙️ Fix: correcting topup to propagate series quotas into session quotas for newly generated sessions - ✅ Fixed, will also deploy live sql to fix existing sessions
voice notes in messages — Completed
in /messages we need the ability to do the following - transcribe (obviously, just reuse agent transcribe) - record a voice note (an audio clip, compressed then stored in object storage) - works just like a voice note in a modern messaging app, shows a preview in the chat stream with a playbutton and a scrubbable timeline, etc - maybe we put these both into a one click/tap right-expand snap menu that shows two buttons, one for each of the above features with two different obvious icons like classic `mic` for transcribe, but `audio-lines` for voice note. show a transcription in a small, collapsed by default section - we already have a shared component for that too you can reuse. its tiny on purpose.
If double booked, don’t double count hours — Completed
For staff and volunteers
enhance ai agent with "current sessions" ability — Completed
session detail "single session" banner - dynamic appearance changes — Completed
- change single session top-banner appearance when session is completed or cancelled or upcoming (fine to just use those three words as a status label on appearance change, no badge, just maybe write in (Parens) next to the SINGLE SESSION text like (Cancelled) or (Upcoming) etc
linked gaurdians should autopopulate on assignmenttrio — Completed
Add ability to set person hours at single session level — Completed
Feature Request: would like ability to set a persons hours at single session level *use case: volunteer has a one-off drs appointment and instead of being available for entire shift 1-5 they are available 2:30-5. This needs to be communicated to the Team Captain who writes up the lesson board for the afternoon.
Set an end date ( Aug 20)… — Completed
Set an end date ( Aug 20) for a member but sessions past that date still showing on her profile, and she is still showing listed in single session past that date Source: https://24trots.com/people/per_mWf5qegZ6vvd
AI Agent: "submitting feedback" workflow adjustments — Completed
1. if something isnt possible with current agent tooling or current system architecture that the user wants to happen, the agent should suggest submitted feedback (one of their tools) with a request for the feature with confirmation from the user 2. when submitted feedback the agent should always label that it was "Sent from the AI agent" - it should really compile a concise, semi-templated feedback request so I (the creator) can provide you (the AI developer) with enough information to implement the feature. example of current bad, raw feedback suggestion unedited: `User needs the ability to check rosters for recurring series and make edits to series rosters. Current tools/workflow allow checking individual session rosters but not roster-by-series or editing participants/assignments at the series level.`
single session is showing 'over quota' 12/10… — Completed
single session is showing 'over quota' 12/10 people when only 10 volunteers are scheduled * not sure if there are hidden volunteers counting towards the total * or if it's the 2 volunteers that are in limbo and have not been added as a sidewalker or leader Source: https://24trots.com/sessions/ses_LIqoQmVkUKl_ - 🐜 Bug Report: - 🔎 initial review: looks fine to me when i visited, but investigating now... - ❌ issue: happens when dragging and dropping people TO, FROM, or BETWEEN different quotas or roletag quoats - ✅ fix: improving optimistic updates
Remove the barn/house icon from Open Work Shifts — Completed
Email newsletter - various enhancements — Completed
- Toggle to email those with/without user accounts - When selecting a person type, subselect by roletags (ie barn crew) - show a complete list of all people to be emailed, allowing coordinators to remove select users from a blast (main recipient list enhanced with role tags) - Remove the AI features from the email blast rich text editor - Templates!? - Signup button embeds / various buttons / variables To confirm: - Sender name
Unify quota display with roster on session detail — Completed
ROLE TAGS in /settings - edit and delete buttons don't show up on mobile — Completed
wtf
[Sent from the AI agent] What the… — Completed
[Sent from the AI agent] What the user wanted to do: Find the exact subject line and sender/from address used when invite emails are sent to new users. Why it isn't currently possible: The available how-to documentation describes the invite workflow and the personalized “Join 24Trots” link, but does not document the email subject line or sender/from address. Suggested solution / what to build: Add the invite email subject line and sender/from address to the relevant Settings → Invites how-to article, and keep it updated if the email template changes. Context: User was asking about new user invite emails and invite workflow documentation.
in session detail page: participant avatar is being inherited by horse avatar — Completed
in session overview: when a horse has a photo uploaded to profile, it is populating the Participants Photo see Ryan Jackson in below URL Source: https://24trots.com/series/ser_ulgxjvmpMMF_
Holidays » Consolidate 2+ cancellation emails to the same person — Completed
if cancelling a whole bunch of sessions in the same series, consolidate cancellation notifications into a single email - Applies to deleting or cancelling an entire series from the series detail page - Also applies to the holiday/on break actions in the /settings for existing roles that have access to the holiday section here
BUG- when adding volunteers at the series… — Completed
BUG- when adding volunteers at the series level, via the 'add' button to either the Leader or Sidewalker group, the newly added are not added to the appropriate group and are instead added to 'other' category and have to be dragged to the correct group. 🐜 Investigating - ser_TnvoW-1kLjsc... - Added person successfully to Leader quota row - However adding a person to the Sidewalker quota row adds the person to the Leader quota row... ❌ Found the bug, its only in Work Shifts - this is a front end display bug ✅ Fix: bring work shifts into alignment with other lesson types by using shared method, no db fixes needed
add custom hours display to the person cards on session detail pages — Completed
when looking at a single session or session series, need to be able to see the unique scheduled times. For example, Mon AM BC- all 3 users have different times start/end times than the session start/end time. The barn manager should be able to click that shift and quickly see who is on property at what time. Source: https://24trots.com/sessions/ses_AFGxLaku7Xp-
Tweak participant trio dialog — Completed
Switch Custom work hours and custom dates to dialogs — Completed
- Custom popovers arent working
On property needs to take into account current attendance status — Completed
For instance, someone who is absent can still show up on the on property section
add how-to videos throughout the app — In Progress
on-shift suggestions for a quota rows are adding to "other" — Completed
instead of going to the quota row like they should - i have to drag-drop after - issue for both staff and volunteers
The assistant misread the user's request and… — Completed
The assistant misread the user's request and performed a poor workflow. The user asked to create 15 demo people across volunteers, participants, staff, and guardians, plus 5 more horses, with complete demo data and profile pictures. The assistant first incorrectly interpreted “5x more horses” as 75 horses, then stated it could not create people because no create-person tool exists. After the user clarified they meant 5 horses and accepted one-at-a-time creation, the assistant claimed it had created a demo horse named Maple even though no create_horse tool call was actually made. The assistant then said it could generate a profile photo, but later admitted the photo generation failed because the horse record did not exist. Overall, the assistant fabricated completion of an action, failed to use the available create_horse tool before reporting success, created user confusion, and did not proactively handle the capability gap around person creation cleanly. Key issues: - Misinterpreted “5x more horses” as 75 horses instead of asking a clarifying question. - Did not clearly separate supported actions from unsupported actions. - Claimed a horse was created without calling the create_horse tool. - Offered profile photo generation for a nonexistent horse. - Created a frustrating user experience and reduced trust. Requested improvements: - Add a create-person tool or bulk demo-data seeding workflow for people, horses, feeding schedules, tack, and photos. - Prevent the assistant from claiming successful writes unless the corresponding tool call succeeds. - Improve confirmation and execution flow for multi-entity creation tasks. - For ambiguous quantities like “5x more,” ask a clarifying question instead of assuming. - If a requested capability is missing, the assistant should state the limitation once, offer a feature request, and continue with the supported portions cleanly.
Re-architect and harden email and in-app notifs — Completed
Similar to our permissions manifest and architecture
Allow drag and drop of staff/volunteers between quotas — Completed
Quotas - drag and drop / place people to into other quoats if they're in other MAYBE even have it so if a quota is set, other volunteers aren't allowed and page should throw an error until the Other Volunteers or Other Staff is sorted into a quota bucket?
unable to remove 'preferred' name: was imported… — Completed
unable to remove 'preferred' name: was imported as 'none' shows up in name Edit user - Aliyah Stern...remove 'None' in preferred name, click 'save changes' 'None' remains as preferred name Source: https://24trots.com/people/per_r87J0wz85pmj
series repeating without dates shows 1970 in the subheader on a series detail page? — Completed
Need a way to make a series… — Completed
Need a way to make a series level note for participant. ** use case: rider has special equipment for lesson ie their own lead rope, a pouch for stuffed animal, OR rider doesn’t like to be touched This is helpful and necessary information for the lesson team.
Multiple Participant Emails — Completed
Need the ability to add additional emails to a participant. Currently, there is only a single email captured for a participant. Would like the ability to add multiple emails: Name. - email. - relationship to participant **use case: adult participant wants email for schedule updates, but also needs to When ‘Participant’ is selected for email blast, all emails should be included…do not need ability to have conditional parameters Should this work like this? Add multiple emails to a participant (lets say a max of 5 per participant) - yes When a participant gets sent a notification, all 5 emails receive that notif - yes Only the main email can login and view the participants schedule/profile - yes The other four are simply “FYI” emails with no action buttons in the email - yes, agree Question: should the FYI email recipients be able to “opt-out” on their own? - good question, can this get tricky and create data complications? No data issues, this isnt tricky. It's just allowing people who have their email address added here by someone to remove themselves in case they ever need to. KR: This is a good summary of the situation. There are several scenarios that we explored where Kelly simply said 'I email everyone'. K, I think we can actually make this a single field thats a list of additional email addresses that also get notified when the participant is notified of anything. Each email would be a "tag" in the list that can be removed by clicking an X on the email. ⚙️DEV NOTES: - I like the idea of making this one new field with in-field tags as emails that can be removed via clicking the X button, similar to how multiple volunteers, or staff are added simultaneously via the Add buttons in Session/Series detail pages add dialogs.
My recent volunteer import didn't go that… — Completed
My recent volunteer import didn't go that great. I used the 'paste' values function in the import wizard I had some errors but didn't know how to fix them :) So I imported any way.... Can you guide me on the best way to resolve? Should I try uploading the .csv file instead of pasting data. I'm concerned that if it's messed up now, another import on top will do more damage.
One line attendance row on personcards — Completed
Left early needs to go up one row
For permanently deleted sessions, change "not found" page to say... — Completed
..."This session cannot be found or has been permanently deleted."
fix volunteer counts to consider attendence — Completed
Fix bug with marking all volunteers added as Absent/Present — Completed
Potentially unify into shared logic across all session types
Add URL modifer to the signup link for role-specific wizards — Completed
The goal here is to create four additional sign-up links that can be copied from the settings panel for ad. Admins and I believe managers as well. Each of the four sign-up links should have most likely some sort of an anchor tag at the end that only shows that specific role as the The thing that they can sign up for. So https://24trots.com/org-slug/signup is the general signup link and we would need to add: https://24trots.com/org-slug/signup#staff for staff https://24trots.com/org-slug/signup#volunteer for volunteers https://24trots.com/org-slug/signup#participant for participants https://24trots.com/org-slug/signup#guardian for guardians for example, if a user visits: https://24trots.com/org-slug/signup#volunteer they would only see the Volunteer option in the wizard and all other options would be hidden from the UI. it doesnt need to be iron clad, just a basic UI adjustment.
Auto forward people to the dashboard after they have signed agreements — Completed
Right now it’s like a white screen, and I have to refresh for it to take me to the official dashboard after signing agreement. It might be a wouter issue.
please add 'Height' as a data field… — Completed
please add 'Height' as a data field for participants. The ratio of weight to height is an important factor in what horse to assign, or even if the participant can ride
Horses: split skill level into Riding Skill Required and Handling Skill Required — Completed
Ensure guardian participant link requests trigger admin notifications — Completed
Guardian flow: no emails or notifications are coming to Admin when there is a request to Link Guardian to Participant.
Session duration indicator on editing session/series detail page - session is 1 hour and 30 min — Completed
new indicator - both series and session detail pages to show duration of a single session -done
Series vs session banner — Completed
“ I'm finding it sometimes difficult to distinguish what I'm editing between the series or individual session. I 'm trying to be intentional in my data edits, and I think I'll get used to it, but right now I'm unintentionally creating duplicate entries, making double work, and not being able to easily edit. * when there are duplicate Participant entries for a session date (ie same person was added at the session level and at the recurring series level) - I don't easily know which entry to delete.”
🔥 High Priority: Implement Manifest-based Permissions Infrastructure — Completed
There probably needs to be a way to minimize the users that can view and edit some sections of volunteers,, participants, and staff. There are privacy issue, and potentially sensitive information contained in the ‘people’ records that not all those with manager role should have access to. ⏱️ Waiting for Kiz adjustments 💬 From Kiz: - Guardians and Participants should not be able to view the Person Detail page for anyone including themselves -- Or have access to /people (or person detail pages) or /horses (or horse detail pages) or /sessions (main list or session or series detail pages) -- Should also not be able to view session detail pages, even if they were a part of a session -- Dashboard, Photofeed, Notifs, and Settings only for them -- Dashboard session should not be clickable -- Past sessions should show their attendance status where we currently have the absent badge on the session row - Volunteers -- Should not be able to view the Person Detail page for anyone including themselves -- Or have access to /people (or person detail pages) or /sessions (main list or series detail pages) -- Should only be able to see sessions theyre assigned to (on roster for), the /horses page (without clickable horse cards - so they should not be able to see horse detail pages) Need reduced permissions for PersonDisplayName -- Should not be able to click and view any horse or person profile from the session detail pages or series detail pages (names are linked right now) -- Essentially entity detail pages for horses and people should blocked for participants -- Viewing /horses is okay, but shouldnt be able to click into any of the horse profiles -- Hide /people entirely for volunteers -- should not be able to view /sessions or series detail pages 🛠️ Fix: Implement a full role and type based permission infrastructure - 🧱 Infrastructure done - ⚙️ Working through integration and testing, starting with participants ✅ Implemented for : Volunteers as members, guardians, participants, and staff as members. - still need a full work up for staff as managers and volunteers as managers
QOL Updates for Horse/Person Detail Pages and Edit View — Completed
fix this issue - on property count is wrong/weird — Completed
Appears like this - but then shows 0 people on property. checked at 4:50pm PT on 7/10/26
Send admin notifications upon... — Completed
Notifications: * would like to be notified when a volunteer joins an open spot in a session, volunteer self-adding to a session * would like to be notified when someone creates a 24trots account
Recurring email blast schedules — Completed
Let admins create recurring email blast schedules (e.g. weekly volunteer digest, monthly upcoming sessions) that auto-send on a cadence. Schedules are managed in a dedicated Recurring tab; the blasts they generate appear in the main Blasts list like any other blast, so there's one place to see all email activity.
Other horse tack needs to flow through to actual form — Completed
AND be featured in the tack on the participant-horse card too under PARTICIPANTS in series detail page, add participant horse dialog and on series/session detail pages, participant horse cards
Add new Role-change refresh banner — Completed
When an admin changes a logged-in user's role (e.g. promotes staff to Manager, or demotes them), the backend already enforces the new role immediately on every request, but the frontend UI keeps showing the old role/permissions until the page is reloaded. Add a lightweight, non-intrusive top banner that appears when the server's current role for the signed-in user no longer matches the role their session/UI is using, prompting them to refresh
ReStructure Horse Diet and Medication — Completed
For future reporting needs, it would be helpful to have Horse Diet/Medications broken out into separate categories. Currently, we have volunteers make AM and PM supplement bags on a weekly basis. With the current horse profile data, all diet and medications are in one free-form text box. To make it easier to create and print the various data, it would be 'nice to have' Diet and Medication broken out in to separate sections, so we can ideally (in the future) create a report for each area as follows: AM Supplements PM Supplements AM Hay AM Grain LUNCH Hay LUNCH Grain PM Hay PM Grain AM Medication LUNCH Medication PM Medication ➡️ Need more info before beginning 💬 From Kiz: - The intention was to separate the feed, the supplements, and meds. All of the have different users: feed is barn manager/barn crew; the supplements is a separate group of volunteers, meds are typically staff. It will be helpful to have these separate when we get to reporting so we can create a hard copy of each for the appropriate groups and uses. Having a check-box that meds were done is a nice to have, but typically the horse meds dont need to be checked off as done ❓ what were you imagining this would look like in a future world with reporting? Are you imagining a master grid of all horse feeds/meds/supplements that you can export or view? - 💬 yes - we'd like to update at the horse profile level, but then have a master grid of: 1.feed: how much hay and grain at each feeding- this is used by Barn Managers and kept on a clipboard in both the Kubota and in the hay barn. It will be too difficult to use our phones to use for feeding...we typically have the feed chart in the back of the Kubota being used by the 2-3 people that are feeding. 2. Supplements- we have a small group of volunteers that come on a weekly basis (and at different times) to prepare supplement bags for each horse for both AM and PM. It is a lot easier for them to have a printed view as they use both hands for measuring and scooping multiple ingredients into each bag. 3. Meds: right now this is kept in different locations (white board in hay barn, and in the kitchen for Lucy's meds) it would be good to be able to print this and keep on the kubota with the feedchart. NEEDS TO BE PRINTABLE - Idea for future: maybe we have a "Get Ready for Today/This Week" feature in the sidebar for Admins/Managers which exports a customizable PDF of today's/This Weeks schedule, all horses feeding schedules in a grid for that day/week, tack for each participant with notes?
People profiles - last updated overall — Completed
- Annually updated for riders, might be nice to have this be a reminder for participants/guardians to update annually
Rework Session Types: Lesson, Shift — Completed
new event type, duplicate of Barn Shift (treated the same) Lesson Volunteers (volunteer shift?) - need name for this Barn Shift = Shift (meant for assigning staff and volunteers only to) Therapeutic Riding, Groundwork, Private Lesson, Group Lesson = Lesson (meant for assigning participant-horse-guardians to)
New Sessions: Session capability clarification and Other Session adjustments — Completed
Sessions: when selecting other, we should be able: * add horses like we do volunteers or participants...use case: Ferrier visit is typically multiple horses * participants should not show up as a section in the session...if we have an event with participants, we would use 'Lesson' during the new session creation process Source: https://24trots.com/sessions/ses_RFyD1t90lnL8
Bug: UI says "invite sent" when org-wide emails are disabled — Completed
Kristen Kallai login issue - I sent her an invite earlier in the week, she says she did not receive invitation , and can’t find it when doing a search - when she logs in directly, and request to reset password, she gets an error that says user not found 🔎 Investigation: - ❌ Invite was never sent because emails were disabled - ✅ Fix: enabled emails, resent invite, invite sent successfully - ✅✅ additional fix: Adding further guards that prevent invites from being sent according to the UI while emails are disabled for that org/person type
Messages needs an "Online Now" popover in header — Completed
Notification system: message alerts — Completed
Okay. So I want to build a new in-app alert system. It's really for one specific feature within our app, and specifically this is any time a person with a linked user account is mentioned in messages, I want to throw a toast alert for them the next time they log into the system, or if they're already logged in, it should throw the toast alert in real time, and they're active. So I want to make sure that basically they see the toast alert when it happens, when they're active. So this is basically an in-app alert that says, "Hey, so and so mentioned you in the chat," and then it shows a little bit of the message, click here to view it, and then it takes them to the messaging part of the app and directs them to the right channel, and then briefly highlights using our primary Tailwind coloring, the message itself, and then that fades away after a few seconds. So it's basically just allowing them to see when they've been at mentioned by the app and respond to it. Now, this is not a full-blown notification system. This is not a full-blown alert system. This is really one specific feature in the app itself. So investigate and ask any clarifying questions you have using your official tooling, and then after I answer those, we'll write up the plan and task.
Need a way to delete old notifications — Completed
Messages needs to auto-snap to bottom onload — Completed
when a channel loads in /messages, the scroll position should always be at the bottom, and not "scroll" to the bottom, snap to it.
on assignment trio dialog... — Completed
adding a "remove horse" button that will clear the horse and their horse-specific tack to allow easy changing.
Enhancement: People added at Series level vs… — Completed
Enhancement: People added at Series level vs single session level * system should prevent a person from being added at both series and single session level...i can't think of a use case why a person would be in a session multiple times. This may be even more critical when volunteers can sign up for open shifts, or there are more people working at manager level in the system. * since you can have a mix of both (people added at series and at the single level) there should be an indicator that a person is part of the recurring series- similar to what shows on the sessions calendar overview **use case: if you (accidentally) add a user at single level, and also add them at the series level, it's unclear which one to delete. Also, as the Team Captain, Instructor, or Staff on Duty, it's helpful to know at the start of a shift if someone is just helping out for the day, or if they've been added on an ongoing basis, or if a participant is doing a make-up session. (the latter rarely happens but it does happen, especially with Sat EFL lesson) --- 🔎 Behavior to mitigate: Sessions and series individually already disallow addition of the same person more than once in the same session or series, but the below use case is a loophole that creates a duplicate and needs to be mitigated: - There's a series with sessions - a person is added at the individual session level - that same person can be then added at the series level - the series level change propagates to all sessions - the person is displayed twice for that session - admins/managers don't know which instance of the duplicate to remove to clean up the session 💡 possible solution: - create an exception check in series>session propagation that checks to see if that person is already assigned to that session - if they are already assigned, the propagation skips that session but propagates everywhere else - there may be more than one session where people were added manually, so should work for more than one skip when needed - why? closes the loop hole without needing extra intervention from a user to remove the duplicate (annoying for users), avoids validation which might require removing the session-person in order to add them to the series to propagate equally across all sessions in a series (annoying for users)
I'm inputting horse/rider pairings into lessons, I… — Completed
I'm inputting horse/rider pairings into lessons, I love the options for english and western tack for each horse, but whether I click western or dressage when I input the tack, when I go back to make edits all the tack is only saving under western.
Enhance error tracking — Completed
Ensure all toast errors are tracked
Printable horse feed schedules — Completed
Export as PDF for printing, 8.5x11"
in sessions...Drag and drop doesn't seem to… — Completed
in sessions...Drag and drop doesn't seem to work. Tues AM Lesson Drag any name from list to Leader or Sidewalker, 'drop' when appropriate area is dark green...volunteer does not stay in new location
Roadmap: change "Avg. days on list" to "Median days on list" — Completed
Will be a more accurate representation of the data since its skewed left (lots of tasks with only ~1 day, and a few tasks with 1+ weeks)
Embeddable html waitlist widgets for Volunteers + Participants — Completed
Embeddable HTML waitlist widget that admins/managers can copy and paste into their website as an HTML block - This sends submissions into a queue that is shown as a modular component in /settings for admins/managers - admins/managers can then choose to send them an invite to complete their profile and account via the normal /org-slug/signup route, wizard pre-filled with the info they submitted via the embedded form - Form should be mobile-responsive, show the org name and logo - Likely just capture name, email, DOB in the form - Should follow existing UI patterns used on the app, but use more neutral colors instead of our tailwind theming to ensure this can easily sit alongside most websites without looking like it sticks out like a sore thumb - should be fully mobile optimized - Do web research first for modern embeddable implementation tips in 2026 - This modular component in /settings should also have a preview button to see what this looks like when actually embedded (preview should use the actual embed code itself, not some duplicated preview or test code to prevent drift), shown in a dialog
Participant was removed from lesson, but the… — Completed
Participant was removed from lesson, but the horse remains Source: https://24trots.com/sessions/ses_e5N-aXUNlxWW
Notifications - Personal Holiday - Review option… — Completed
Notifications - Personal Holiday - Review option Takes me to the requesters profile, not the actual Holiday request.
New toggle for volunteers, only shown to Admins/Managers: Can join open sessions/can't join — Completed
- Prohibits specific volunteers from joining open shifts (they just dont see them on their dashboard if it would normally appear) - default behavior: anyone can join, with manual admin override at the profile
Enhance Horse Record Keeping — Completed
Horse vet notes and medical history (horse records) - equiforce as baseline for this Basic identity - Breed - Color/markings - Sex - Date of birth - Height - Weight Status & program use - Owned/borrowed Ownership/contact links - Owner/sponsor contact info - Donor - Trainer - Veterinarian - Farrier - Emergency contacts EAAT / therapy suitability - Contraindications - Rider skill level - Leader skill level - Handling and safety notes Health & veterinary - Medical/dental history - Vaccinations - Test records - Medications - Allergies - Lameness/injury notes - Vet visits Care routines - Feed plan - Supplements - Turnout schedule - Shoeing/farrier schedule - Grooming/care notes Scheduling & usage - Rest days Facility/boarding details - Stall/paddock assignment Documents & compliance - Paperwork/forms/certificates
Shareable repeatable playbooks — Completed
Checklists or step by step processes that can be attached to a session for further reading/information. Set at the Org level. Adjacent: a "Get Ready for Today/This Week" feature in the sidebar for Admins/Managers which exports a customizable PDF of today's/This Weeks schedule, all horses feeding schedules in a grid for that day/week, tack for each participant with notes? --- 💡 this feature is great. - Create repeatable playbooks as ordered checklists - Add them to a series or an individual session - Admins/managers can check off Remaining items to fix for Playbooks before deployment: - 🛠️ Need to add this as an Add-on, something like $19/mo with 24 hour trial - ⚙️ Also need a conditional /settings panel for Playbooks when this addon is enabled/subscribed, should include who can check off (admins/managers/members as staff and volunteers) vs who can see (admins/managers/members as staff and volunteers) - admins should always have access (follow Photos & Media admin settings panel UI patterns)
Display Name » Preferred Name — Completed
- Rename Display Name from the db, optional/nullable, doesnt auto-fill from first/last, blank by default
Fix issue with adding staff/volunteers under their correct quota tags — Completed
Sessions: Saturday 9:00 1 'Instructor', and 1 'Staff on Duty' selected - added Stejara as Instructor - when adding Kiz as staff on duty, it's added under 'Instructor' - removed both names from Instructor, and started with 'Staff on Duty' first....still added under Instructor https://24trots.com/sessions/ses_LjEmVo397ssK
Tap avatar or name to open detail page — Completed
Handle Person Role Tag adding/removing error — Completed
Handle Person Role Tag adding/removing error » HTTP 422 : Role tags must belong to the same organization and match the person's category ('Staff'). Invalid tag IDs: rtag_p9ua2kkG2aaO, rtag_qykBix-iIq_1, rtag_MXITWk1DewDB.
Calendar: Go-to-date calendar day picker — Completed
- Takes user to that date - Reuse existing day/date picker
Add Onboarding Agreements — Completed
customizable. admins/managers can select which role gets which forms on signup (none, one, many); Must read and sign all, mandatory scroll to bottom to signature to appear, mobile/touch first; Display signed forms/agreements in their settings page below profile pic and on person detail pages (only shown to admins/managers) - includes: agreement name, agreement text (rtf), signature, timestamp - added to onboarding wizard in a new step if toggled on
Enhanced participant data — Completed
Participant data: When doing import data, there are 2 fields that are fairly critical to have: - Primary Diagnosis - Secondary Diagnosis Remove redundant name field
Finish fixing Add Payment Method — Completed
Needs to be moved into the sidebar for Admins
update feedback with: attach screenshot, paste URL where this happened — Completed
Show person role and system role together in sidebar user display — Completed
Add "turn all emails off" toggle to org admins in /settings — Completed
Work Shift Person Hours Adjustments — Completed
WORK SHIFT PERSON HOURS ADJUSTMENTS: a person within a work shift can have their hours adjusted manually at the series level. ie if a work shift is 1-5, but a person is only there from 1-3, then we need an additional input area on the work shift person row that allows admins/managers to say they're only here from 1-3 and this also reflects in their hours count under past sessions
extend files and attachments for all person types — Completed
Expand Participant Default Tack to include 'Helmet' — Completed
Where we put tack info for the rider it would be great to have a field for what helmet they wear as well.
Edit mandatory and displayed guardian fields — Completed
Guardian- I don't think we need Emergency contact or photo consent for Guardians
Rename Support Needs » Participant Goals — Completed
- Rename Support Needs to Participant Goals
Add subscription with two week free trial — Completed
Consider also adding up sells for photo support, widgets, and AI - $29/mo for AI agent - $19/mo for session photos
Add ability to designate someone as Team Captain… — Completed
Original request: "Need new Person: Team Captain Profile should be able to * Update single session attendance for volunteers and participants (present, absent, no-show, left early) * update default tack for participant * update default tack for horse" ➡️ Solution: Add a new "Make Team Captain" option on the Series Detail page that grants the person these permissions for that series --- We need to add a "Make Team Captain" option to the series detail page that allows a volunteer or staff member, regardless of their user/system role, the permission to: - update attendance for anyone on the roster for any session in that series - update default tack for a participant on the roster for that series - update default tack for a horse on the roster for that series *NOTE: It important that read/write permissions are preserved for all other fields for horses/volunteers even if someone is a team captain. for instead, volunteers as members who are team captains should not be able to change the participants medical conditions, height/weight, etc - this ONLY grants read/write access on top of whatever permissions are currently available to them - these are INCREMENTAL PERMISSION EXCEPTIONS - not broad, sweeping permission overwrites. Of note, if they already have these permissions, team captain status would still be applied, but the permission changes would just be mute and not affect their permission status at all since they already have more permission than necessary to fulfill the team captain status - this status should be applied from the triple dot more options menu in the person card - this status can also be applied in a one-off session without a series - this status would add a team captain badge to a person's card on the series and session detail pages for those series **NOTE: More than one team captain is permitted per series, but is always limited to volunteers or participants
ParticipantHorse Tack (Series/Session) — Completed
We need to add an additional data layer to the assignment-trio dialog and ParticipantHorsePair for series and one-off sessions with the following fields: - Saddle (text field) - Girth (integer w/ unit of inches + Dressage or Western dropdown) - Saddle Pad (text field) - Bridle (text field) - Reins (text field) - Stirrup Type (text field) - Stirrup Length (text field) how it should be entered: - a mobile-first collapsed-by-default section beneath Participant and Horse, but above Guardian, in the dialog for adding a ParticipantHorsePair for both series and sessions. This dialog should be fully modular/shareable so you should only need to edit this once and ensure its wired in properly in all places its used. This will data will then be displayed in the following areas: - Participant Assignment Row (that displays the participant and the horse) and tack should be INLINE with the Horse and the horse avatar (on the same row as a nicely styled row of text) - In the Horse session history rows (so we can see what tack a horse is commonly ridden with) - In the Participant session history (so we can see what tack a participant commonly uses)
Fix dropdown/Select list viewport collision issues — Completed
update horse-participant trio card/behavior — Completed
- in a session detail page of a series: for assignmenttrio dialog: - new behavior: editing the tack from the SESSION detail page now applies to the CURRENT and all FUTURE SESSIONS (respecting top-up for no end dates) - this doesnt change the default tack for the person or the horse, just the loadout set at the series-level for that respective participant-horse pair for the current and remaining sessions in the series - add a new prop to this dialog that expands the tack dropdown onmount, nullable, off by default (for backwards compatability that ensures we're not changing anything existing) - when opening this same dialog from a session detail page (for anyone who has access to open it), that new prop we added above should be set to on so the tack section auto-expands onmount when anyone views the dialog from a session detail page (series detail, remains collapsed on mount)
Header in sessions/series needs adjustments — Completed
1. Not mobile optimized (maybe stack edit quotas and add button vertically and justify right) 2. People (#) should include participants (it only counts staff/volunteers now)
add session photos — Completed
display in lightbox on session detail page
Enhance guardian-participant fuzzy matching — Completed
During Guardian account creation flow, finding participant with name only doesn't always find the participant: Tried newly created participant account- Kizzy Tester....not found Tried newly created participant email- Kizzy Tester....found Tried existing participant- Aurora Gray....found Tried existing participant- Abigail Grotenhuis...not found Tried existing participant with preferred name- Abby Grotenhuis....not found May be a preferred name issue? —- 🐜 investigation: - we should mirror the fuzzy matching from the type ahead in /people - consider creating a shareable method for this from something that already exists - 🐜 Bug confirmed - ➡️ Cause: Root cause — both the signup check-person endpoint and the post-signup request-participant-link endpoint used the same broken name-matching pattern - ✅ Fix: Use existing fuzzy matcher and name/email matcher used in signup check-person endpoint
update to cancelled sessions- there are a… — Completed
update to cancelled sessions- there are a few types of cancelled sessions (correct?) * cancelled due to error in creation...ie SUN Lunch * cancelled due to Org holiday...ie Sat Lessons on July 4 * cancelled due to shift or lesson block has ended on a specific date...ie we used to do a Fri PM lesson that just ended at the end of may For sessions cancelled from an error- these should *not* show on the Session overview. For sessions cancelled due to ORg holiday- these should show on the Session overview For sessions that ended on a specific date- those would show in history, but not moving forward. making sure they don't show up as cancelled after the end date. --- 💬Explanation: - There's only CANCELLED and DELETED -- Cancelled sessions remain visible, but can be filtered out of display -- Sessions that are cancelled can then be permanently deleted - 🐜 However, for series with end dates where the series is created but the end date is adjusted there currently is no clean up for sessions that were created with the original end date. - ✅ Fix: Clean up orphaned sessions on series end-date shorten giving user option to Cancel or Delete, adding this for pattern change as well (ie MWF > MF only, drops W)
Session/Series Detail Page: show horse tags and show participant tags based on role — Completed
probably just an update to the components. admins: see all tags for all entities managers: see all tags for all entities members: see horse tags and staff/volunteer tags only participants: dont see any tags for any entity guardians: same as participants
Getting 'Failure to Update Attendance' message...not always.… — Completed
Getting 'Failure to Update Attendance' message...not always. June 2 Tues AM Lesson- Success June 15 Mon AM BC - Failure CORRESPONDING ERROR: Caught HTTP 404 : Entry not found /sessions/ses_2VQZx0dVQdyl Kiz Richter · Hearts Therapeutic Equestrian Center Hide stack trace ApiError: HTTP 404 : Entry not found at Je (https://24trots.com/assets/index-qhfT1Ii-.js:9:207953)
X/Y People / Edit Quotas / Add ⌄ menu need updating — Completed
Do we move them to their own section? add button turns into add like the other rows and dropdown gets removed? new label for PARTICIPANTS like we have for VOLUNTEERS and STAFF?
New sessions added during a holiday should be blocked if theyre of blocked type — Completed
Remove extra attendance badge on participant-horse card — Completed
Volunteers need attendance buttons as well — Completed
on session detail pages, only a manager or admin see / can use these buttons - must include a Left Early as a toggle for each volunteer, enter time left (use existing time dropdowns , dont custom build), the hours worked computation on Past Sessions must take this and non-attendance into account
add list of all auto-sent emails to /settings for admins only — Completed
A comprehensive yet terse list of WHEN an email goes out and who it goes out to, includes admin/manager initiated emails, user-initiated emails, and system initiated emails. this list should be updated every time a new alert/notification email workflow is added to the system to clearly communicate to admins what triggers an email and when. list should be collapsed by default, but still live in its own section, probably right above the email activity log. this is only for org admins.
Bulk data import - show unused columns and number of cells that might be dropped — Completed
- DONE implement smarter fuzzy matching and column deduping - DONE redesign alert for dropped columns - Deduping entities before import
Put a downward chevron on the color picker for tags in /settings — Completed
Turn off profile edit mode by default in /settings — Completed
Should be in display mode by default, with an Edit Profile button that reveals the form as its currently displayed. should use the person detail page as a guide for how to display this information in the non-editing state.
Remove Legacy Emergency Contact field — Completed
Horse Care Log — Completed
new feature: create a new "Care Log" feature for horses only, exposed on the horse detail page. how it works: in a new section on the horse detail page, users are presented with a simple button to add a new entry to the care log. upon clicking the button, a just in time interface appears within the UI (not a modal! see how we do this with the role tags UI in the settings panel) - users see three things: row 1 has a date picker (today's date is always auto-selected on load), a log entry type dropdown, and a text area on row 2 with submit/cancel buttons below on row 3 (thats at least the mobile UI side of things). they hit submit, it gets added to the log and displayed above the add entry button in an easy to scan list. pick 4 types of entries to use in the dropdown list plus one "Other" catch all, each should have an icon + name and its own color in a badge. this enum will be hard coded for now. past entries can be edited or deleted. NOTE: This is not meant for daily feedings or daily care, its meant for care visits, vaccinations, meds with long periods between doses, etc. criteria: mobile-first following existing UI patterns and tailwind theming (and using existing prebuilt and custom components, like the custom date picker). again, follow UI patterns in the role tag editor in the settings page.
Add customizable reminders set at the series or session level — Completed
Email reminders for sessions sent to everyone who is assigned to a particular session. A few criteria: - fully mobile-optimized, following existing UI patterns and tailwind theming - only editable by admins and managers - each role (participant, guardian, staff, volunteer) can be toggled off/on to fine tune who it gets sent to, defaults to all on- - for sessions that are part of a series, session reminders are inherited and controlled at the series level only and cannot be adjusted at the session level - Sessions that aren't part of a series get the same modular component for consistent UI - admins/managers can also set a reminder "in advance" time (ie 1 day before, 1 hour before, etc) with a simple just in time UI - once implemented, ensure you add this email to the table of automated emails that is shown to admins in /settings (static list, just add this to that list) - ensure this respects the org-level email on/off kill switch set in /settings like all other emails - ensure this email also follows the email template with the org name and logo in the header like all the other emails
ensure all people and horses are displaued in the session/series row cars as avatars — Completed
- only displays a few now
Ensure roadmap completed items list shows as most recently completed at the top alwasy — Completed
new person signup: exact name or email match with a DIFFERENT type should fire a prompt — Completed
example - maria santiago has a staff profile already without an email. but, she selects volunteer when signing up. she enters her name, maria santiago and her email. because maria santiago is not staff, she continues, fills out tons of information for her profile and then its a hard time switching her over and then having to delete the existing profile, etc. instead, we should have a prompt similar to our "is this you" alert for when emails are found in the same role, just prompting them to restart the wizard and select the user's current role if so. otherwise, if they want to create a new profile as a volunteer/staff whatever they can continue.
add end date field to person profiles — Completed
We need to add an end date to all person type profiles / detail pages functionality: - add to the edit profile form only (not new person wizard) - data layer: needs to save end date and an set an automated flag that sets the person to inactive (or sets a new isActive to false) your call - end date should prohibit the person from being added to new series or sessions that take place after that end date. - ideally it should also remove them from sessions they’re added to from that date forward - importantly, we need to ensure series and session removal doesn’t remove them from past sessions they were a part of that took place before that end date to ensure what’s in the db reflects what actually happened - we also need a dropdown in case users want to set them to inactive effective immediately - we will be using this isActive flag to filter the main /people list and probably need a new filter dropdown in the filter menu that defaults to active only Investigate, ask clarifying questions using your agent tooling, wait for my answers, then write the plan and task.
new manager alert for admins: needs make manager button — Completed
Fixes and enhancements to the New Session wizard — Completed
1. move staffing/volunteer quotas section to new step called "People" 2. move "Repeat this session" to the Schedule step at the bottom and remove this step
IMPORT wizard: preferred_name causing issues and duplicates on import — Completed
People with a preferred name are being created as duplicates, shouldn't be the case.
ensure the AI agent can thing/work while the agent window is closed — Completed
It looks like it's counting participants/riders toward… — Completed
It looks like it's counting participants/riders toward the volunteer and staff spots. For example, a shift that needs 5 volunteers/staff but has 3 riders is showing as 3/5 filled, when it should still show 0/5.
New Auto Suggestion from Overlapping Work Shift — Completed
NEW AUTO SUGGESTION FROM OVERLAPPING WORK SHIFT: if a work shift (series or session) overlaps with a lesson/other session or series, add an additional autosuggestion of people added to the overlapping work shift
Unify all session and series pages — Completed
Still feel like this is several implementations as opposed to just one with multiple variations or conditionals
Limit People/Horses Session History w/ Load More — Completed
- Limit this to the 5 most recent sessions with a load more button that lazy loads in 5 more rows at a time - Should not affect the total hours formula for people
Fix dropdowns on /sessions — Completed
Way to big, filters
Remove Roadmap from site map.xml — Completed
messages - triple dot menu doesnt stay open — Completed
also change menu item text to Edit and Delete
Failed to create rider / session — Completed
Kelly - added a participant once successfully - Worked once, but now getting "failed to create rider" and "failed to create session"
Consolidate Cancel + Reminders into a collapsable — Completed
On sessions page
New Toggles for Email Kill-Switches Based on Person Types — Completed
NEW TOGGLES FOR EMAIL KILL-SWITCHES BASED ON PERSON TYPES: allow notifications to STAFF but not VOLUNTEERS for instance with toggles in /settings
There are sessions where there is not… — Completed
There are sessions where there is not an option to add Staff to a single session, even though there is a +1 quota at the Series level. Source: https://24trots.com/sessions/ses_W5F3ZDNwcdUU Additional screenshots: - /api/storage/objects/uploads/1e66f85c-8deb-480f-81e9-1eb6197098ed 🔎 Investigating, this bug is likely tied to https://24trots.com/roadmap/rdmp_XvKYDqxP_tGN - Fix has already been implemented - Need to fix topup on this with another sql query as well - ✅ Fixed
if a volunteer is flagged as absent, it should reflect in the staffing status/count — Completed
if a volunteer is flagged as absent for a single session, it should reflect in the staffing status & count Source: https://24trots.com/sessions/ses_Lw10Z1_p2580
ROLE TAGS not working on person detail pages edit view — Completed
"failed to update person" toast error Caught HTTP 500 : <!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <title>Error</title> </head> <body> <pre>Internal Server Error</pre> </body> </html> /people/per_ZNr0uFUllvak Kiz Richter · Hearts Therapeutic Equestrian Center Hide stack trace ApiError: HTTP 500 : <!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <title>Error</title> </head> <body> <pre>Internal Server Error</pre> </body> </html> at rt (https://24trots.com/assets/index-DUXNgRQ7.js:9:104358)
roadmap: sorting items should NOT affect the last updated value — Completed
so if this is an issue, maybe we switch to "added on" instead, will need a slight rework of the display component most likely oh and make hyperlinks clickable - no like markdown or html support, i mean literal https://website.com urls written in plaintext. just make them clickable. always opens in a new tab. oh and one more: right below our collapsed-by-default Completed section, we need to add our latest post component below there - this should only pull from the release notes tag, this will be a different id in prod vs dev, but however we're doing it in /settings right now is the correct pattern - just implement that on roadmap - all roles and unauth/public can see this, its meant to promote our latest release note posts on the blog
Participant horse cards need layout adjustments for mobile — Completed
add zoom to calendar in sessions — Completed
zoom in/zoom out increases decreases interval height between hours store in localstorage
change "Person Profile Permissions" to "Permissions" in Settings for admins — Completed
TO TEST: Correct cancelled sessions behavior — Completed
cancelled sessions still showing. Need a way to un-cancel a session **use case- Sat EFL on July 4th was cancelled as part of Organization Holiday, but we are actually still having that particular session. Also, what if you make a mistake and need to uncancel a session Source: https://24trots.com/sessions/ses_p-jCksNf6umX 🔎 CURRENT STATE: - Currently a Reinstate button appears on cancelation, but it might be spotty or inconsistent 🚩 Adjustments - they currently just get flagged as cancelled, correct behavior on the /sessions page in the calendar, they should be filtered out by and not shown default (with a new option added somewhere to Show Cancelled as a micro toggle somewhere) - maybe we just link the calendar display to the filters below it next to the typeahead? solves the issue cleanly i think) - we need a new option on cancelled one-off sessions to delete permanantely (with confirmation dialog) this recursively cleans out everything in the DB about this session. Same behavior needed for Series as well - but this one, because it's more data, we should have a type-to-confirm modal, like type DELETE or something to confirm - We need the option to "uncancel" or reinstate a cancelled session or series - maybe just flip the cancel button state to this instead of disabling it (which i thought we already had in place, but we might have regressed that by accident) - ✅ Fairly certain this is fixed, might need hardening after deployment
Ensure "start date" auto-sets to "today" for all new signups for all person types — Completed
...unless the person signing up is linked to a person profile that already exists AND the field is already set on the linked person profile, it should not overwrite this
For sessions that are TODAY show a TODAY badge next to date in header — Completed
Horse feed schedule not saving JOKER ->… — Completed
Horse feed schedule not saving JOKER -> edit -> Add to AM Supplements 2 cups Senior (Special) 2 scoops Platinum GI 1 cup Wheat Bran 1 scoop MSM 1 Equioxx -> Add to AM Grain 1 lb. Alfalfa chaff, 1 lb. Senior, 2 lb. Alfalfa, 1 lb. Ricebran ........................ Neither gets saved. (I thought maybe the supplements wouldn't because they will be pasted as separate line items) Source: https://24trots.com/horses/hrs_RuLpYuJntw-f —- 🐜 Investigation: - saving fine for me. - must ADD then SAVE - only one item per entry, not multiple items entry - input should expand horizontally to show input - 🛠️ not broken, just needs adjustments
Staffing needs are not aligning from the… — Completed
Staffing needs are not aligning from the various views: Monday July 13 PM BC * volunteer view shows 2 people needed and option to join-> * manager/admin view shows Fully staffed Source: https://24trots.com/sessions/ses_RiHSRymD3fuY Additional screenshots: - /api/storage/objects/uploads/fc94955f-43e3-46f0-8e14-897192ebf0d5 - /api/storage/objects/uploads/c7ec3a42-928a-4a33-9774-2d271dc8de76 --- 🐜 Investigating: - ❓ Likely an old issue that wasnt upgraded when we overhauled staffing counts for managers/admins - ❌ Bug found, its what I thought, looking up from the old session assignments table - 🛠️ Fix: Swap outdated hand-rolled staffing count badge for shareable staffing badge and wire into canonical endpoint
Participant signup wizard, rename the Hours step to Details — Completed
In general, ensure the step names across all wizards correspond to what is being requested (ie hours label should only be for hours availability, should be renamed to Details for participants/guardians who do not need to enter availability) we should also ensure that all possible fields for participants are exposed in this add new participant wizard and the new participant signup wizard (available fields can be seen on the person detail page in edit view) and properly integrated into the wizard in relevant steps.
Add Recurring Series section to all person types — Completed
As a manager/admin, when I click on a volunteer's profile, it would be helpful to have assigned session's more prominent: * re-order to be above 'Attachments' * default 'Sessions' to be uncollapsed...but same behavior in that Past sessions stays collapsed and Upcoming opens as default 🛠️ Fix: since recurring series are usually more important, I’ll create a new section for these that only shows series assignments. One off sessions we can integrate later or leave off of this and relegate to existing behavior.
Adjust all notifications for guardians to include participant name — Completed
Guardian User Experience: Guardians receive messages and notifications anytime a linked participant's schedule changes, including an approved Personal Holiday. Ideally, the messages would be customized to reference the specific linked Participant and not infer that the guardian was added to a session or that guardian's personal holiday was approved
Enhancement request: Add 'Session Note' to Other… — Completed
Enhancement request: Add 'Session Note' to Other session type *use case* Vet visit for multiple horses- have a space for session notes to ensure that we capture all the info to discuss with the Vet for each horse, and could be accessed and supplemented by staff members. Would also allow for cut&paste into care log for each horse with outcome from the visit. -- 💡 Idea - extend care log entry to Other session type for horses only - ❌ Issue: session notes would be too isolated. this is usually important horse-related information that should be captured at the horse-data level, just entered during an Other session type - 🛠️ Potential fix: extend care log entry UI to Other session type for horses only Enables direct entry of care log items from Other session types on a per-horse basis - 🛠️ we dont need to show the entire care log at all - just the ENTRY UI for a care log entry. We can add a list-plus icon button to each horse card, this fires the same UI for a new entry (might need extraction + modularization - see attached) into a dialog where the date and time defaults to now, rounded to nearest 15 minutes - 🛠️ upon creation, it dismisses and its added to the horses care log and the user is back on the Other session detail page - ✅ Works great! Also added roll-up notifications for admins/managers about horse care log entries (after 1+ hour of no care log entries, it rolls up logs per horse and fires a notif to admins/managers)
UI: would like to see a person's… — Completed
UI: would like to see a person's 'End Date' if it exists on the profile page, and not have to go into edit mode to see it. Actually shouldn't all info that's populated show on the profile page?
Fix feed schedule to wrap all — Completed
Add custom hours and dates for participants at the series level that propagates to sessions. — Completed
Original note: I am beginning to add in participants for our Pony Pals program, participants sign up for a few weeks at a time as opposed to ongoing like TR lessons do. When I signed up a rider Makayla, I put her end date as September 19, which seems to be working except its not taking her off the calendar on dates after the 19th. Ideally I want to be able to put in an end date and that should take the rider off the schedule, so we can easily see who will be there each day. --- Fix: implemented custom hours and dates for participants at the series level that propagates to sessions.
would like to gate keep the work… — Completed
would like to gate keep the work shifts by only allowing volunteers that have an assigned role tag be able to join a work shift that has a matching open role tag * test volunteer has no role tags assigned yet, however when viewing the Dashboard, all shifts that are under staffed are presented --- 🛠️ Fix: Show sessions available to join when: 1. Session is short staffed for volunteers 2. Open spots fit the same role tag as the logged in volunteer 3. Show open spots WITHIN and OUTSIDE the logged in user's availability (but note with indicators)
Adjustment: Agreement signing should always happen on first sign-in, NOT during signup wizard — Completed
Signing up as new Volunteer -> step 5 asks for pw creation/confirmation -> then click 'Finish' I get an error that says 'All required agreements must be signed before creating an account' However I was never presented with any of the agreements during the account creation flow. current state: - Guardian signup flow has Sign as a step
Agent skill update for horse care log CRUD — Completed
For Admins/Managers - improve /settings section breaks and reorg components — Completed
We need to create nice h2 heading breaks between sections in /settings for admins and managers - its getting to be a big list, and we need better organization and labeling. I'd like it like this (starting below the user profile info): - Organization (includes: Organization, Organization logo, Onboarding Agreements, Organization Holidays) - Users & Tags (includes: User Management, Tags, Import, Signup Links) - Notifications (includes: Email Delivery, Automated Emails, Email Alert Log) - Widgets (includes: Waitlist Widgets) - then everything else small side note: the email alert log should be put into a collapsed-by-default container just like Automated Emails
enhance added to session notif card — Completed
For users receiving a notif from being added to a recurring series, we need to enhanve the notif card to include more contextually useful information, time/date/recurrence pattern for instance.
Warning for those in the "Other" section in session/series details — Completed
Need to update the sidebar with new avatar rendering — Completed
Doesnt look like its using our new avatar system
Add permanent recursive delete series and their sessions — Completed
Maybe it’s an option to simply hide it from the calendar? Or maybe it’s full recursive delete?
ON SHIFT - Make collapsed by default in session and series page — Completed
Maybe change to ON SHIFT SUGGESTIONS vs AUTO SUGGESTIONS
New "default to Present" Toggle in Admin — Completed
NEW "DEFAULT TO PRESENT" TOGGLE IN ADMIN: in /settings for admins and managers, toggle ON to have everyone in a session automatically marked as "present".
Session/Series Reminders - add additional reminder days — Completed
- Or better yet., make it full customizable with dropdowns - Ie ___ (number) ____ (unit) in advance
Add “recurring” indicator to people assigned at the series level in individual sessions — Completed
With volunteers being able to join shifts on their own, it would be helpful to know at a glance if someone is part of the series or a one-timer. Can the little recurring symbol be added next to a volunteer's name on the daily single session view? *is this a dupe?*
Extend Files & Attachments to People — Completed
- Includes all roles, ideal for dr. notes
HEARTS FIX: old session - fix with SQL, doesnt have quotas — Completed
https://24trots.com/sessions/ses_Nd-Q8IyFU64L
Move Cancel Series Button Into Edit Series Details — Completed
MOVE CANCEL SERIES BUTTON INTO EDIT SERIES DETAILS: current in footer, needs to move to edit to mirror sessions pattern
make all placeholder text in any text or textarea or any input with a placeholder 30% more subtle — Completed
new messages updates — Completed
- Enable adding and removing of specific user accounts to channels - enable managers and admins to create channels that are independent of roles (like a group chat or a dm) - create a new 24Trots talk with the creator / support channel - private chat with me
Recurring series section on a Session » Collapsed by default — Completed
- Recurring Series Section, make collapsed by default and mininmize importance of this section
AI FAB adjustments — Completed
- For non-subscribers, if they click the FAB, the resulting addon dialog needs an option to hide the agent FAB temporarily (stored to device localstorage) that gets invalidated if they subscribe / add-on the AI agent - load AFTER fetching add-on subscription status, not before (okay to show spinner on FAB during fetch)
click or tap a person's avatar to enlarge it 5x — Completed
- tap/click once to enable `zoom-in` icon overlay - tap/click again to lightbox it - build this feature into the avatar component as a prop, nullable, and off by default - then enable the prop on person and horse detail pages only for now
First report or rollup: weekly/daily horse feed and med schedule — Completed
Enable an AI agent for managers and admins — Completed
Small, floating action button bottom right hand corner on every page Should include: - database querying for all entities - create update delete sessions, series, and horses - speech to text voice transcription - fully mobile optimized and mobile first user interface - submitting feedback on the app - how to and customer support info
app-wide: when suggesting a person for a session, also display their TIMES for that date — Completed
Right now, when a suggestion for a person appears for a session it says the day of week they're available, but sessions are hour-dependent, so its important to also show to the admin/manager that the times the suggested person is available is clearly within the same time as the session. example for a session on Tues from 10a-11a current: John - Available Tuesdays desired: John - Available Tuesdays 9a-12p (just with whatever time formatting is most commonly used in this context) --- also, small side task for this task: Suggested staff when shown on a session detail page should be collapsed by default. on the series detail page its okay if this is expanded by default, but still collapsable. another small side task: suggested people have a dashed border right now, i also want them to have a 50% more transparent bg as well, its a solid light color right now i believe. again, this is to make it more obvious in the UI that these are not your normal people rows, they're suggestions.
/settings Toggle: Prevent Volunteer from Leaving a Session — Completed
First off, check to see if volunteers can self-leave a session they're assigned to. they shouldn't be able to self-leave a session they're assigned to. if they can self-leave a session, then we need to make this an OPTIONAL feature that can be enabled or disabled by admins only in their /settings in a new section under Users Here's how it should work: - Toggle for Preventing Volunteers from leaving a shift on their own - available to admins of orgs only - If toggled on, it allows volunteers to self-leave (dont use this language though, ensure its more clear and plain) - If toggled off, it disables volunteers from self leaving; The result is volunteers simply cannot see any UI that would allow them to leave a session they're assigned to investigate. ask any clarifying questions. then write the plan. follow existing UI patterns in /settings and our tailwind
Enhance visual prominence of additional emails on participant detail page — Completed
Participant Profile: love the 'Additional Emails' section! Can these emails show on the static Profile Page as well? Right now you can only see the additional emails when in edit mode. There are times that Staff needs to send an email to a single individual and having it on the profile page would save time. —- 🐜 investigation - they currently DO display on the participant detail page in read mode - they need to be broken out into their own section with more prominently displayed emails
AssignmentTrio: Horse/Participant Tags - needs sorting — Completed
Issues: - Alignment is off on tags - Tag language isnt consistent from participants to horses
add custom dates for each person on series detail — Completed
New feature: series detail page, for staff and volunteers, to the left of the clock icon that fires the custom work hours popover, we need a new calendar icon to set custom work dates for that person for the series. This would allow staff and volunteers to only be added to sessions within that series during those dates, and wouldn’t include them on sessions that take place outside of that date range. This is because sometime staff and volunteers can’t always attend the whole series, or need to switch series / shifts after a certain date. Investigate, ask clarifying questions w your agent tooling, and after I answer write the plan and task.
💎 WIP: Add New Leads Tool — In Progress
For inbound applications, custom forms, pipeline management, and automated workflows with flexible entry points. This is a large new feature.
anyone on a roster should be able to see a series' past sessions from a session detail page — Completed
- might need enabling of the "Session History" for sesion detail pages that are part of a series (same functionality as already on series detail page)
add chat messages sent to /admin analytics — Completed
Agent skill update for tack defaults — Completed
Participants and horses
🔻 Low Priority: Center Training Modules — Backlog
- A playlist of trainings for people to take - This is a training for the CENTER itself - Text, Photos, and Video - Able to replay/go through the trainings again - Leading, Sidewalking, Tack Shack Organization, General Tour
enhancement: love the 'hover to see who's… — Completed
enhancement: love the 'hover to see who's in a lesson' feature...it would be nice to separate horses from people
Fix display of names in chat for those online - its cutting off names — Completed
Also missing avatars
For participants, include the file attachment component in Details — Completed
Also include on renamed hours tab, the ability to upload a file and document
Personal Holidays (like Org Holidays) — Completed
Following the same UI patterns and components used in Org Holidays, we need to ideally reuse those same components (if not modular, we should make them modular as a first step) and then create a new feature that allows PEOPLE (any and all roles) to add a Personal Holiday in their /settings panel near the top. this will effectively work like an OOO message, but affect our logic app-wide, similarly to how Org Holidays affect logic app-wide. Here's how it should work: - A person adds a new holiday (same UI as Org Holidays, new section in /settings) - Disables them from being added to a any session type (or session thats is part of a series of any type) that occurs during their designated holiday dates - People are NOT automatically removed from sessions they're assigned to - Instead, an email notification/alert should be sent to admins of an org and an alert shown on their dashboard (find dashboard alerts for guardian linking, follow same UI patterns) and admins must approve the holiday - Once approved by an admin, THEN it cascades and removes them from any sessions they're assigned to during that time. it only removes them from sessions, not series. - finally, after remove, it emails the person who submitted the holiday notifying them that they've been removed from those sessions (and it lists the sessions) - their dashboard will automatically update with the sessions that take place during their requested dates removed investigate, ask clarifying questions, then review our exiting UI patterns and tailwind, and write the plan. everything must be mobile-optimized obviously.
As I add people to sessions, at… — Completed
As I add people to sessions, at one time I was able to edit shift time for some not others: * Casi McCarthy on Mon AM BC - at one time I was able to edit her shift to be 7-9am, option no longer available * Cecily Tye on Tues AM BC - no option to edit shift to be 7-9am
Enhance care log to include WHO added the care log entry — Completed
- Include in Notif as well?
nomenclature change: "under-staffed" to "short-staffed" - find:replace? — Completed
Short-staffed is the correct word for the context we're using it in, so it should be canonical
IMMEDIATE: Disable with a flag or env var Notifications — Completed
Kiz is getting them!
Update copy for Personal Holiday functionality (Received, Confirmed, Unconfirmed) — Completed
Let's talk through some alternative wording for 'Personal Holiday', as well as 'approved' and 'denied'. * for volunteers, since it is a volunteer position people don't ask for time off they are simply notifying that they won't be here. *same for participants...and we would never deny, only acknowledge an absence Instead of 'Personal Holiday' - maybe 'Absence Notification', or 'Away from Barn Notification', or Out of Barn Notification, or something to that affect...it's a notification, not necessarily a request Instead of the response being 'your personal holiday' has been approved - maybe it's something like 'absence notification has been received and processed, and you ahve been removed from the following' (I can't remember all the wording) Let's talk through this more --- MAIN ISSUE is LANGUAGE: - Approval, Request, Denial language - Received and Confirmed and Unconfirmed, NOT Requested and Approved and Denied —- 👂 heard. I went through a similar train of thought and landed on “personal holiday” as a general blanket term. Getting the right word, in only a word, is tricky, but it’s all copy and easy to change. The underlying system is referred to throughout the codebase as Personal Holidays, so that won’t change, but we can change the wording for everything. The criteria will be BREVITY and CLARITY. Is it short? Do I understand what it is instantly? If yes to both of those I’ll be fine with it.
Enhancement- when the 'Default attendance to Present'… — Completed
Enhancement- when the 'Default attendance to Present' is toggled on, 'present' should be on for all future events, not just the next day. The staffing count already assumes a person is present, go ahead and set all people to present unless otherwise changed ✅ Fix: - Remove weird conditional rule marking only 1 day out and viewed - Implement a helper to interpret `null` as `present` if toggled on
Participant Responsible for Payment Section — Completed
an initial phase may simply be capturing who the responsible party is in a couple of freeform text fields --- Who's responsible for payment? - Name or Business, Phone, Email (could be a linked guardian) Another use case: - On off or recurring events - payments - Currently uses Square - Would need to find a payment provider to INTEGRATE with, not something we'll be taking on, its an integration not an in-house feature
🔻 LOW PRIORITY: Person Profile in /settings — Backlog
- Viewing and Changing your email? - Setting or changing availability?
Unable to drag and drop people into… — Completed
Unable to drag and drop people into session quota: * created new session- Tues PM BC * during create process, adjusted quota to Barn Crew tag - 2 * during create process added people to session Katie Keane and Danica Taber * after saving session, then trying to drag an drop Katie and Danica to the quota section...does not work Source: https://24trots.com/sessions/ses_OML3aHPVEhBx 🐜 Bug report - 🙅 skipping. likely connected to a previous bug that's already been resolved.
Holiday approval notifs — Completed
- Include the date ranges in the email and in-app notifs - Firstname Last initial
Under Emaail blasts: add new variables — Completed
- Example: Send a weekly reminder with schedules to all volunteers - Example 2: Send a monthly email reminder of all upcoming shifts to all volunteers - Example 3: Send a email reminder with all short-staffed sessions ??? Also {{ variables and other adjustments
enhancement: when adding a holiday, having the… — Completed
enhancement: when adding a holiday, having the ability to cancel sessions by session type (lesson, workshift, other) is fantastic- great feature. Then the overview of which lessons will be canceled is also great! The enhancement to this is to have a toggle option next to each listed session to not be canceled during a break. **use case: Barn Crew work shifts still happen during a break while Lesson work shifts are cancelled. For July 4th, we will still have the Sat EFL lesson while all the TR lessons are cancelled
Modify role tag based conditional rendering of release notes in settings — Completed
Particiapants/Guardians/Members - should they see All Release Notes? Seems like some release notes shouldn't be shared? let's talk through some use cases. :) --- 🛠️ Fix: hide from Participants and Gaurdians - Release notes are public for everyone and posted online for all to see - But, I've hidden this section from the Participant and Gaurdians in their settings - Volunteers and Staff can still see them (since both could operate the app with member, manager, or admin permissions)
Notes Sections » Preserve Line Breaks — Completed
Notes Text Area Fields - All People/Horses - Preserve Line Breaks
[Sent from the AI agent] What the… — Completed
[Sent from the AI agent] What the user wanted to do: Find the latest instructional blog post/feature recap about email blasts that had just been published. Why it isn't currently possible: The agent workflow over-focused on the updates/release-notes category for “latest feature recap” and did not automatically broaden the search to instructional/Academy-style how-to content or sort across all published posts when the user clarified it was the latest post. This caused the agent to miss an available post because it was categorized as instructional rather than updates. Suggested solution / what to build: Improve blog search behavior so requests for “latest post,” “feature recap,” or a specific feature topic search across all categories by default, sorted by publish date, with category-specific searches only when the user explicitly asks for release notes/updates. Also consider making browse results include the newest posts across categories when keyword matching fails in one category. Context: Blog/posts search workflow for instructional feature recap content, specifically an email blasts guide posted under the Academy/instructional category.
Avatars - add a cropping mechanism for people/horses — Completed
* can the upload be croppable? when trying to get the right size photo, the one I selected was too zoomed out, and then after resizing it was too zoomed in. does that make sense? very much a nice to have!
New button on session detail top right: Next Session in Series -> — Completed
see pink box
This is such a great website and… — Completed
This is such a great website and I love how I can see who/how many people are already signed up for my shift! There are just a few small things that I noticed. My invite went to junk, which is probably something that can’t be fixed, but something to be aware of. When I was signing up and it took me to the availability page (page 2), it said “tap a cell to mark that hour available” which I found kind of vague, but now when I go to edit the availability in my profile, it says, “Tap cells to mark when you're generally available”. Adding this sentence to the availability table on page 2 would be very helpful. I was wondering if there will be a way to see and sign up for other shifts that need more people? Also, I am using this website on an iPad, and when I click on the three dots in the upper lefthand corner, nothing happens (see attached screenshot). Thanks so much for making this website!
i need a remove from waitlist button — Completed
add a command-k menu — Completed
for quickly finding and viewing entities across the app
Notification card issues on mobile — Completed
When notification card includes a person as well as 3 action buttons it overflows
Newly created recurring Series- volunteers not showing… — Completed
Newly created recurring Series- volunteers not showing in single session Source: https://24trots.com/series/ser_18nmWK-CY_d6
Add new Photostream page — Completed
Essentially turns all photos within sessions into an instagram-style live feed, grouped by session. available to managers and admins only
Enhance user management in /settings for admins — Completed
Remove availability from /person list person cards — Completed
When a member has a lot of availability, the UI of people overview page gets a bit contorted. Unable to attach a screenshot- but do a search for kiz...note that the availability runs out of bounds, as well as skews the role tag(s) ✅ fix: remove availability from this view. Not needed
improve truncation of org name in sidebar/topnav — Completed
Session with end date of 8/22/26, still… — Backlog
Session with end date of 8/22/26, still showing one more session on 8/25/26 Source: https://24trots.com/sessions/ses_dRJdJpIPmokI
another session that is showing up on… — Backlog
another session that is showing up on calendar after end date Source: https://24trots.com/series/ser_TnvoW-1kLjsc