The text that follows the visit

One tracking link texted at Start drive shows the van on a map, hands over the groom details on arrival, and opens the customer portal when the groom is done.

Flat illustration of a mobile grooming van driving toward a house along a dashed route line, beside a phone-shaped card with abstract progress bars and one empty outlined slot, no text

A mobile groomer starts the day with a list of stops and a stack of “where are you” texts waiting in the queue. The customer watched for a van, the shop fielded calls about timing, and the answer, an hour out, was already stale by the time it was sent.

Slickerbook has had a Start drive button for a while. The groomer taps it, the phone measures the ETA from where they are, turns-by-turn open in their maps app, and Slickerbook offers to text the customer an on-the-way message with that estimate. A groomer who answers “Not now” skips the text. One reading, one text, and then silence until arrival. That was the part that left customers guessing: the van is twenty minutes out at 1:00, and the 1:20 caller hears “should be close.”

Two additions went live on September 25. One keeps the estimate honest while the van moves. The other turns the texted link into a page that follows the whole visit.

Live ETAs while the van moves

Start drive now opens a drive record, and the groomer’s phone reports its position to it. This is the piece that needed a native app: a browser tab stops reading GPS when the screen turns off or Google Maps takes the foreground. The Android app (version 0.2.0) runs a foreground location service with a visible notification, batches GPS fixes, and posts them every ten seconds with the groomer’s sign-in, so the updates do not depend on the app’s screen staying awake.

The server owns the decisions. Each batch refreshes the ETA from the routing engine, at most once a minute unless the van moves 200 meters. Two automatic texts go out when they should: one “running about N minutes behind” if the new ETA slips ten minutes past the arrival the first text promised, and one “about 5 minutes away” near the door. Both go only to customers who got the on-the-way text, so a groomer’s “Not now” is respected rather than second-guessed. Arrival is detected on its own: within 120 meters of the door at low speed ends the drive, as does moving the appointment on the board or a three-hour ceiling. The groomer sees a live line in the appointment dialog (“about 12 min away, position 20s ago”), then “Arrived 2:14 PM.”

The privacy policy gained a “Location while driving (Android app)” section before this went up. That policy is effective September 26, with the boundary stated in the policy: no location collected at any other time, and the web version of the app reads the phone’s position only at the tap.

One link, three pages

The on-the-way text now ends with a tracking link. The page behind it is public, needs no sign-in, and changes with the visit:

  • Driving: the van on a map with the customer’s home, the road between, the current ETA, and the pet and services for the visit, polled every 15 seconds while the van moves.
  • Arrived or in progress: the board stage and when it was set, the pets, services, and groomer.
  • Done: the page hands the customer into their portal, the same account a phone sign-in would use.

The link is a signed token that expires in 14 days. It carries the appointment id and nothing stored about the customer; stale links and forged ones return 404. The route drawn on the map is stored at each ETA refresh rather than fetched per poll, so 15-second polling by ten customers costs the routing engine nothing.

The password at the end

The first version of the done screen signed the customer straight into their portal, since the link had arrived on the number the portal signs in with. The review call changed it: the customer now chooses a password on that screen if they do not have one, or types the existing one to continue. The password rule is the staff policy, eight characters with upper, lower, and a digit. Wrong guesses are capped per visit as well as per address, and a portal password cannot open the staff app; the staff sign-in rejects a customer account every time. The portal sign-in page itself gained an optional password field; leave it blank and the sign-in link still arrives by text or email.

Why these two went together

The tracking page needs an ETA that stays true after the first text, and the live ETA needs somewhere useful to be seen. A groomer taps Start drive once. The customer gets a text with the van’s position on a map, a corrected estimate if traffic stretches it, an arrived notice at the door, and a portal that opens with a password they chose, on the same link. The shop’s phone gets through the middle third of the morning without ringing, the window when “just checking on the ETA” calls used to land.

Filed under Product , ,