Working examplesReview requests
Review requests for a salon
Juniper & Rose Salon is made up for this example. The code is real and open: read it or run it.
The problem
Happy clients mean to leave a review and forget, and asking in person feels awkward.
What it does
- A short thank-you with the Google review link, 2 hours after each visit
- Never at night, never after a no-show or a cancellation
- At most once per person in 180 days, and never again after “stop”
- The same link for everyone: asking only happy clients is against Google’s rules
The messy parts it handles
- ANA LIMA and Ana.Lima@Example.com are recognized as the same person
- “priya at example” isn’t an email, so it isn’t used
- A visit ending at 6:30 p.m. is followed up at 9 a.m. the next day
The week, line by line
Juniper & Rose Salon
- Mon 13:00customerThank-you with the review link to Ana, 2 hours after her visit
- Tue 09:00customerTo Jordan: her visit ended 6:30 p.m., so it waited for morning
- Tue 12:00skippedTom was a no-show: not asked
- Wed 14:00skippedAna again: already asked this year
- Wed 15:00skippedPriya’s email reads “priya at example”: not used
- Wed 16:30customerThank-you with the review link to Sam
npm run demo), word for word.- 6visits
- 3thank-yous
- 3skipped
- 0sent at night
Speed: 5,000 visits checked in 0.08 seconds on a desktop PC (npm run bench). A small business’s whole year fits in under a second.
For your business
Your booking tool’s own review requests are switched on first where it has them; this runs where it doesn’t, from its visit export or webhook.
More examples
- Booking reminders for a dog groomerClients call to book while the groomer’s hands are full, so calls go unanswered, and the ones who do book sometimes forget and don’t show.
- Lead follow-up for a plumberA plumber on a job can’t answer email or the website form. Inquiries sit for hours, and the customer books the next plumber on Google.
- Invoice reminders for a cleaning companyInvoices go out, a few go quiet, and chasing them is awkward and easy to forget. Money sits unpaid for weeks.