Ask for reviews when the work still feels finished.
Trigger from verified completion, time the send to the service type, and cap the follow-up.

Two customers had the same haircut on the same Friday. One gets the request at 5pm that day. The other gets it at 9am Wednesday. The same-day send has a better shot, because the visit is still a recent memory, but the only way to know for your shop is to measure it.
This guide covers the mechanics: what event to fire on, how long to wait by service type, who is eligible, and how to cap the nudge.
Trigger
Trigger on verified completion
Not a nightly batch. Not a next-day cron. The moment your booking tool marks the appointment as completed, a short delay starts and the request sends at the end of it.
Verified completion means the event your system can prove: the appointment marked complete, the job closed, or the technician's visit signed off. Payment is not proof of completion, because payment can happen at booking.
Confirm whether your booking tool exposes that event. If it does not, that is the seam to close before anything else in the review flow, because everything downstream depends on it firing at the right moment.
Timing matrix
Timing matrix by service type
Start with the row that matches your service, then compare the send window against your own response and opt-out data.
| Service type | Completion event | First request | Follow-up |
|---|---|---|---|
| Short in-person visit (cut, detail, treatment) | Appointment marked complete | 2 to 6 hours after completion, same day | One nudge after 3 days |
| Multi-hour or same-day job (repair, install) | Job closed by the technician | Same evening or next morning | One nudge after 3 to 4 days |
| Multi-day project | Final walkthrough or sign-off | Within 24 hours of sign-off | One nudge after 5 days |
| Recurring or maintenance visit | Visit marked complete | After the second completed visit, then quarterly at most | None |
| Consult with no service performed | Not a completed service | Do not request | None |
Eligibility
Eligibility and exclusion rules
Write one eligibility rule and apply it to every completed customer. Eligibility depends on whether the appointment completed and whether a recent request already went out. It never depends on predicted satisfaction.
- 01No-shows and same-day cancels. Not a completed appointment, so no request.
- 02Customers who already received a request inside your defined window.
- 03Customers who opted out of that channel.
- 04Everyone else who completed a visit gets the same request, including customers who raised an issue.
Scripts
SMS and email examples
Name the service, thank the customer, one link, no pre-filled text. The wording is deliberately plain.
- 01SMS: “Thanks for coming in today, [name]. If you have 30 seconds, a short review helps other locals find us: [link]”
- 02SMS follow-up: “No pressure at all, [name]. Leaving the link here in case it is easier today: [link]”
- 03Email subject: “How did your [service] go?”
- 04Email body: “Thanks again for your [service] on [date]. If it went well, a short review helps a lot. If anything was off, reply to this email and it comes straight to me.”
Automation
Automation event map
This is the whole workflow. If any row cannot be built in your current tools, that row is the seam.
| Trigger | Condition | Action |
|---|---|---|
| appointment.completed | Customer eligible and no request in the window | Start the delay for that service type |
| delay ends | Still eligible and not opted out | Send the request on the channel the customer booked with |
| payment.succeeded within 15 minutes of the send | Payment message already sent | Space the review request so the two do not collide |
| no review after the follow-up window | Only one request sent so far | Send one shorter nudge on the same channel, then stop |
| customer replies with an issue | Any | Route to the private recovery path |
Measurement
What to measure
Record the baseline before you change anything, then read four numbers monthly: requests sent, reviews posted, replies that were complaints, and opt-outs. Change one variable at a time so you can attribute the difference.
Frequently asked questions
Confirm which part of the review path is missing.
The Loop Audit reviews your records and a test booking, then names the seam and what to change first.
