One morning message, two different jobs

The daily brief now texts each staff member their own version of the day: owners get the whole schedule and the balances, groomers get their own stops with no money on them.

Flat illustration of a mobile grooming van at sunrise beside a phone-style card showing abstract schedule bars with one empty slot, no text

Every morning a mobile grooming shop runs two different days at once. The owner needs the shape of the whole day: how many stops, which vans, how much is owed, what is about to go wrong. The groomer driving the van needs a different thing entirely: their own stops, in order, with an address and the dog that bites.

Until last week Slickerbook sent the owner a daily brief but left the groomer scrolling the calendar. Two features shipped on the same day fixed that, and they are really one idea applied twice.

The owner’s brief learns who it is for

The daily brief started as a company-wide report with one setting and one recipient list: every active admin, on one channel the shop picked. Migration 070 changed the model. Each staff member now carries their own mobile number, their own opt-in, and their own channel choice: email, text, or both.

The opt-in is off by default. Nobody gets subscribed to a daily text without asking for it. The shop still decides whether the brief runs at all and at what hour, on the shop’s own clock. Each person decides whether they get it and where.

The plumbing matters more than it sounds. Texting a staff member is not the same operation as texting a customer. A customer text writes into that customer’s message history and binds the next inbound reply to them. Staff have no customer record, so the brief needed its own send path: a real SMS that keeps the rules that belong to the phone, the number formatting, the STOP suppression when someone replies STOP, the segment counting that meters what a text costs, while never pretending the recipient is a client.

The groomer gets a sheet with no money on it

A groomer who wants the day is asking for something else. Owners and managers kept the company brief: the schedule, the unconfirmed count, the balances due. A groomer’s version reads only their own appointments. Time on the shop’s clock, customer, pets, the address when it is a mobile stop, whether the booking is still unconfirmed, and any pet alert, like a note that a dog bites when touched near the back feet.

What it leaves out is the point. No revenue, no balances, nothing about anyone else’s day. A test in the suite asserts the rendered text contains no money at all. A run sheet is a work list. The balances belong to the office.

Mobile stops carry the address because the groomer is about to drive there. Salon stops carry no address, because the groomer is already in the building. Pet alerts print under the stop they belong to. The whole day arrives in one email or one text before the first stop, so nobody opens the calendar while parked.

Setup, both in one place

Both briefs are configured on the same pages. Settings, Reminders has the shop-level card: toggle, the hour it sends, the preview button that renders today’s brief without sending it. The Team page holds the per-person half. Each user has a mobile number field, a checkbox that reads “Send this person the daily brief” for owners and managers or “Send this groomer their own day each morning” for groomers, and the email, text, or both choice.

A groomer login with no linked groomer record has no schedule to send, so the task skips them rather than mailing an empty sheet. Nobody gets subscribed by accident. Nothing goes out from a shop that has paused outbound messages.

Why two versions of the same message

A shop is not one audience. The owner’s brief answers “is today under control.” The groomer’s sheet answers “what happens next.” Both arrive on the same beat schedule, through the same opt-in and channel settings, over the same SMS rules. The difference is what each person is about to do at 7 in the morning: plan the day, or drive it.

Filed under Product , ,