Calendar, contacts, group messages — three quiet improvements
What shipped last week, told as problem and solution
The small things you don't notice are often the expensive ones. A message that never arrives. A price nudged by twenty-five percent when you toggle a switch. A calendar where a 15-minute job takes up less space than a lunch break. That's the kind of silence we've been chasing these last three days.
Three concrete improvements, all shipped between last Wednesday and today. None of them are big new modules. All three fix something that was annoying someone — a customer or ourselves. That's how it should be.
Flow view — when the calendar should look like a route
Eight stops are harder to read than eight blocks of different sizes. We heard it most from window cleaners and cleaning firms coming over from Previsto: their day is a route, not a timeline. A 15-minute stop and a 3-hour install are still one stop each — but in a standard calendar they take up wildly different space.
There's now a flow view sitting next to the standard one. Toggle it on and every order becomes an equally sized chip, the drive time between becomes its own chip, and the time axis disappears. It reads like a Previsto route sheet, with Clientflow's planner behind it.
The detail that made it useful: you can drag a stop up or down within the day, or move it to a different day or a different worker. Drive time recalculates immediately. And when you rearrange a whole day, every order updates in a single transaction instead of fifteen separate ones — so nothing jumps around while you're looking at it.
Notifications tuned to each customer
Some customers want every notification. Others want none. And some want exactly one — the on-the-way SMS, but not the reminder the day before. Until last week you could set your defaults at the company level, but not per contact. Either everyone got the same thing, or you switched the whole branch off for everyone.
It's now per contact. Open a contact, go to the notifications tab, and you'll see three cards — visit (presence), visit (no presence), and on the way. Deselect both channels on a branch and it goes silent for that customer. Leave them untouched and the company default is inherited.
There's a fallback we're quietly pleased with: if your default says send SMS but the customer has no phone number on file, the system tries email instead — and the other way around. Messages should get through, not fail on a technicality.
Group messages that speak up before you press send
The worst kind of error is the one that doesn't fail loudly. Send a group message to a hundred contacts over both SMS and email, with a daily cap of sixty-five per channel? The SMS half was properly rejected — but the email half was queued and then failed silently at send time. No retry, no second attempt. Just gone.
We fixed it in two places. The compose window now checks before you press send: if either channel would exceed today's balance, you get a dialog showing exactly how many you have left per channel plus an Upgrade button. No half-batches, no surprises.
And if something slipped past the client check, there's a server-side gate behind it: the whole batch is rejected if either channel can't fit. Either every message goes out, or none do. There's no third option where half your emails vanish.
Why the small things get the airtime
None of these three are the shiny new modules people scan a changelog for. They're the details that keep annoying you when you use a tool every day. A calendar that doesn't match how you think about the day. A customer record that can't be finely tuned. A group-send that quietly drops messages.
We build with a deliberate split: a fair share of time goes to the visible stuff, the rest goes to sanding the edges you feel in daily use. Real route optimization isn't just VROOM finding the shortest path — it's also whether the chips in your calendar tell you what you need to know.
Got a detail you'd have fixed? Send it our way. That's roughly how we find all the good ones.