Dev Log

Weekly (ish) updates from the AllSet development team.

Fixed billing dates, credit expiry, and a smoother checkout

This week we shipped a cluster of improvements that have been quietly building for a while — and together they make subscriptions and checkout feel considerably more solid. The biggest one is that fixed billing dates are now fully live. If you run a subscription package, you can now set a specific day of the month that all subscribers get billed on — say, the 1st — regardless of when they actually signed up. That means predictable cash flow and no more staggered billing dates to keep track of. You'll find it in the Billing Settings section when creating or editing a subscription package. Credit expiry is also there now: you can set how many days credits last before they reset, which pairs naturally with a fixed billing cycle. Credits that have expired now stay expired We also fixed a gap where credits past their expiry date could still be used to make a booking. That's now properly enforced — the booking will be declined with a clear message if the credit has expired. It's a small change, but an important one for businesses where credit validity matters. Activation messages now mention bonus sessions When a new subscriber signs up and receives complimentary sessions as part of their package, the welcome notification they receive now says how many bonus sessions they got — so there's no confusion about what's been added to their account. Series bookings and date overrides We fixed an issue where series booking flows were sometimes showing time slots at the wrong intervals, ignoring the session spacing you'd configured. Slots now respect your timetable settings correctly. On top of that, when you add a date override (a closure or availability change), you can now choose to apply it to all your active services at once instead of one at a time — a straightforward time-saver for anyone with more than one service. We're also working on some improvements to the chatbot conversation flow, more on that soon.

Robin

Message your clients, date overrides, and email receipts

A lot landed this fortnight that directly changes what you can do in AllSet — from a brand-new way to reach out to clients, to smarter scheduling control, to automatic payment receipts. Message your clients directly via WhatsApp You can now send a WhatsApp message to one or more of your clients straight from your admin panel. Pick the clients you want to reach, write your message, preview it as it'll look in WhatsApp, and send. The system handles the delivery — clients receive a prompt first and, when they tap to confirm, your message lands in their chat. It's designed to be personal, not spammy. This is particularly useful when you want to re-engage clients who've gone quiet. AllSet can now also flag dormant clients for you and drop a pre-filled message suggestion right into the composer, so reaching out takes a few seconds rather than a few minutes. Date-specific availability overrides You can now set different hours for a service on a specific date — or block it out entirely — without touching your regular schedule. Say you're closing early on a bank holiday, or running a special session with different start times. Just add a date override and AllSet will show clients the right slots for that day. Your normal timetable is untouched for every other day. Payment receipts sent automatically When a client pays through AllSet, they'll now receive an email receipt automatically. No extra steps on your end. A couple of important fixes When rescheduling a booking, the client's current slot was sometimes showing as unavailable — which made it look like they couldn't move to the same time, even when it was free. That's fixed. And we've resolved a stability issue that was occasionally causing unexpected errors for businesses with multiple tenants under the same account. The help chatbot in your dashboard also got a quiet but meaningful upgrade: it was sometimes cutting off its own responses mid-sentence. That's been fixed, and it's now running on a better model too. We're also working on some improvements to the billing and subscription area, more on that soon.

Mike

Smarter booking conversations and new learning guides

This week we focused on making the booking chatbot more reliable and consistent for everyone — both your customers and your business. A handful of fixes landed that smooth out some of the rougher edges in the booking flow, and we also added new guides to the dashboard so the WhatsApp coaching links actually take people somewhere useful. The chatbot understands your customers better A few frustrating edge cases in the booking flow are now fixed. If a customer messaged in saying "Can I change my booking?" without specifying a new time, the bot was incorrectly telling them their current slot wasn't available — which made no sense. That's sorted. We also fixed a case where searching for a booking with a client name and a specific date would return the wrong result, and improved the fallback suggestions so customers see up to 10 upcoming appointments (sorted chronologically) rather than a seemingly arbitrary five. On top of that, the bot now properly understands when customers say things like "I'm here" or "I'm downstairs" — those arrival messages were previously being misread as something else. And if someone asks the bot to send a message on their behalf, it now clearly explains that isn't something it can do, rather than doing something unexpected. New guides for packages and subscriptions We added two new pages to the dashboard: one explaining how to sell packages, and one covering subscriptions. These were missing, which meant the coaching nudges we send via WhatsApp were pointing to pages that didn't exist. That's fixed — the links now land somewhere genuinely useful. A gentle nudge for new package buyers When a customer buys a package for the first time, AllSet now sends them a friendly reminder to book in if they haven't done so within a couple of days. It's a small thing, but it means fewer packages sitting unused and more value for your clients. We're also working on some improvements to the billing and subscription experience, more on that soon.

Robin

Smarter chatbot, cleaner admin panel

This week was mostly about the details — the rough edges that erode trust over time. A few of the fixes are the kind you only notice when they go wrong, and we'd rather you never did. The most disruptive issue we resolved was a timing bug where the chatbot would tell a customer their booking was confirmed before payment had actually gone through. For package purchases this was genuinely confusing — the conversation looked done, but the transaction wasn't. That's now fixed, and the bot waits until everything is properly settled before saying so. We also hardened how the chatbot handles requests it simply can't fulfil. It was occasionally treating questions about product orders or merchandise as if they might be valid — especially for businesses like gyms where those things aren't on offer at all. The bot now has a clear sense of what it can and can't do, and will say so plainly rather than going in circles. Service descriptions in conversation If you've added descriptions to your services in the admin panel, customers will now see those descriptions when they ask about a service via WhatsApp. It's a small change but it gives you a way to add context — a note about what to bring, who the service is for, or anything else that helps someone decide to book. A few more things we tidied up We fixed a bug where rescheduling to a past date wasn't being rejected properly. We also fixed an issue where a trailing space in a customer's name was causing WhatsApp booking notifications to fail silently. Credit history entries now include the date and time of the booked session, so it's easier to match a credit deduction to a specific appointment. On the admin side, time-off entries with no description were disappearing from the blocked times list — that's fixed. We also resolved a problem where switching a service from group back to individual wasn't sticking, and cleaned up a layout issue where the phone field was overflowing the client dialog on wider screens. We're also working on some improvements to how the chatbot handles availability conversations, more on that soon.

Mike

Booking rules, smarter availability, and a wave of reliability fixes

This fortnight we shipped two new booking controls for service providers, fixed a run of chatbot reliability issues, and made availability responses noticeably more accurate. Here's what that means in practice. Set a minimum notice period and a per-client booking cap You can now configure two new rules on each of your services. The first is a minimum notice period: if a service requires at least 24 hours' advance booking, the chatbot will no longer offer same-day or next-morning slots to customers. The second is a per-client booking limit: if a service should only be booked once (or twice, or any number you choose) per customer, AllSet will now enforce that automatically. Both controls are available in your admin panel under the service settings. These were among the most-requested pieces of flexibility from service providers, and we're glad they're in. The chatbot no longer invents availability We fixed a significant reliability issue where the chatbot was occasionally suggesting times that weren't actually available, particularly when real availability was empty. It was drawing on timetable information or old chat history to fill in the gap rather than telling the customer it hadn't found anything. The chatbot now presents only real, confirmed availability and, when nothing is found in the near term, it encourages the customer to try dates further out rather than guessing. Cancellation and reschedule flows are more reliable We fixed a bug where switching which booking to cancel mid-conversation could result in the wrong booking being removed. We also fixed the task confirmer showing incorrect end times by computing them from the service duration rather than inferring them from the chat. And when a user asks to reschedule to "next Sunday" or "my Monday booking", the chatbot now always resolves that to a future date, not a past one. Accurate cancellation policy in chat When customers asked about cancellations, the chatbot was giving a vague placeholder response. It now explains the real policy: cancellations result in a service credit for a free rebooking, and rescheduling is free. Duplicate notifications and past-date bookings fixed We also fixed two quieter reliability issues. Customers were occasionally receiving duplicate booking notifications for sessions that don't require payment. And customers could previously check availability for dates in the past. Both are resolved. We're also working on some improvements to the follow-up coaching experience for newly onboarded businesses, more on that soon.

Robin

Smarter confirmations, credit deductions, and booking reliability fixes

A busy fortnight of fixes and improvements. The biggest change is one you will feel straight away: when confirming a reschedule or cancellation through the chatbot, the confirmation message no longer shows a price. Reschedules and cancellations don't cost anything, and the chatbot now knows that. Deduct manually granted credits from your dashboard You can now deduct credits from manually granted allowances directly in your admin panel, not just from package purchases. The credit history view shows the remaining balance on each grant, and a Deduct button appears whenever credits remain. A small note confirms that totals can take up to 30 seconds to update after a change. A fix that matters: the chatbot cancelled the right booking We fixed a bug where, if a customer said they did not want to cancel a booking, the chatbot could get confused and eventually cancel the wrong one. The system now correctly recognises refusal as a signal to abandon the task, not continue it. We also fixed a related issue where switching between bookings during a cancellation flow left the task summary out of sync with the actual booking selected. Availability was too generous near bookings with buffer times Some services have a buffer period before or after them — preparation or clean-up time. We found that these buffers were being respected when generating available slots, but not when checking conflicts with existing bookings. That meant slots that should have been blocked were showing up as available. This is now fixed. Reliability: long conversations no longer cause errors Very long conversations were occasionally causing a payload error when saving the conversation state. The system now keeps only the most recent 50 messages, which is more than enough context for the chatbot while keeping things stable. Business reschedule notifications sent the wrong message When a business owner rescheduled a booking on behalf of a customer, the notification they received was the customer-facing version of the message — including the wrong field names. Tenants now receive the correct business-to-business notification. We're also working on some improvements to billing and the follow-up experience, more on that soon.

Mike

Subscription packages, booking extensions, and a smarter dashboard

This fortnight we shipped a big one: subscription packages are now live. Your clients can now purchase recurring packages — ones that renew automatically — and the whole flow is handled for them via WhatsApp. From the moment a subscription activates, they'll receive a confirmation message, and when it renews, they'll hear about that too. It makes ongoing client relationships a lot easier to manage without any manual chasing. Extending a booking series We also added the ability to extend an existing booking series. If a client wants to keep going with their sessions after their original block ends, you can now do that in just a few steps from the dashboard. The system picks up where the series left off, handles payment, and sends the client confirmation. No need to create a whole new series from scratch. Duplicate a service A small but handy one: you can now duplicate an existing service rather than building a new one from the ground up. If you offer variations of the same session — different durations, prices, or locations — this saves a lot of repetitive setup work. Calendar and dashboard polish We fixed an issue where external calendar events would sometimes overflow their day slot on the bookings view, making the calendar hard to read. We also tidied up the layout across several pages, including navigation, booking cards and the packages view. And if you ever saw a blank screen after entering wrong login credentials, that's now fixed — errors show up where you'd expect them. We're also working on some improvements to billing anchor dates and follow-up visibility in the dashboard, more on that soon.

Robin

Smarter availability, fewer confused conversations

The biggest change this fortnight is in how the chatbot handles availability. Instead of listing every single time slot (which could run to dozens of lines), it now summarises the pattern — something like "available 09:00–17:00, every 30 minutes". It is much easier to read, and it means customers can see the shape of a day at a glance. Related to that, if a customer asks "are you free on Thursday?" the chatbot now correctly checks just Thursday, rather than treating it as an open-ended date range starting from Thursday. That was causing confusing responses, and it is fixed. Fewer mid-conversation mix-ups We also fixed a problem where the chatbot was asking about availability even when a customer had already said they wanted to book. It would interrupt the booking flow with availability questions that had already been answered — that no longer happens. Separately, when a customer mentioned more than one thing at once (say, asking about two services in the same message), the system would sometimes advance all open threads even when only one was being discussed. We have tightened this up so only the relevant thread moves forward. The chatbot also now looks at the specific message that triggered each intent, rather than treating the whole conversation as one blob of context. This means it picks up names, times and services more accurately when starting a task. Stale conversations cleared automatically If a conversation had been sitting half-finished for a long time, those old tasks would persist and occasionally surface in confusing ways. The system now prunes expired tasks automatically, so each conversation stays clean. Coach messages with an easy off switch Every success coach message now includes a "Stop coach messages" button. If a tenant finds the nudges unhelpful or just wants to switch them off, one tap does it — no need to navigate anywhere or contact support. Deep-link into the chatbot You can now open the admin panel with a pre-filled chat message by adding a parameter to the URL. This is useful for support links, onboarding emails, or any scenario where you want someone to land on a specific topic straight away. We are also working on some improvements to billing visibility and follow-up conversations, more on that soon.

Mike
1 of 4