Most review-request texts fail for a boring reason: they go out at the wrong minute. Not the wrong day, not with the wrong copy — the wrong minute. The customer is still standing at the counter, or buckling into their car, or handing over a card. Their phone buzzes. They glance, see a link, and ignore it because the experience hasn't finished happening to them yet.

Full disclosure: I work for ReadySMS, and we help local businesses automate exactly these sends. But this post is about timing, not us — the timing math holds no matter what platform you're on.

Why the checkout-minute text underperforms

There's a temptation to fire the review request the second the transaction closes. It feels efficient. The customer is right there, the interaction is fresh, why wait?

Because "fresh" isn't the same as "reflective." At the moment of checkout, the customer is in transaction mode — paying, gathering their stuff, thinking about the next thing on their day. A request to stop and write a public review lands as friction. They dismiss it, and once dismissed, they almost never come back to it.

The other problem: the checkout text arrives before the customer has actually experienced the outcome. If you're an HVAC tech, the AC hasn't been running long enough to feel cold. If you're a restaurant, they haven't digested the meal or gotten home to tell their partner it was good. You're asking for a verdict before the evidence is in.

The 3-hour post-service window

Wait a few hours and the picture flips. The service has settled. The room is cooler, the haircut has survived a windy walk to the car, the meal was as good as it seemed. Now the ask isn't friction — it's an invitation to do something the customer already feels like doing.

Roughly speaking — and I'll frame this as an approximation, not a lab result — response rates on review requests tend to run meaningfully higher a few hours after service than at the checkout minute. We've seen local accounts roughly double their tap-through by moving the send from same-minute to a delayed window. We wrote up the fuller timing curve in the 3-hours-after-checkout breakdown — the short version is that the sweet spot for most local service businesses sits somewhere in the 2-to-4-hour range after the job wraps.

Why not next day? Because next-day is the other failure mode. By tomorrow, the emotional peak has faded. The customer isn't upset with you — they've just moved on. You want the send while the good feeling is still warm but the transaction friction is gone.

Match the delay to your service type

Three hours is a default, not a law. Calibrate to how long it takes your specific outcome to register:

Business typeWhen the outcome "lands"Suggested delay
Restaurant (dine-in)After they've left, told someone2–3 hours
Haircut / salonOnce they've seen it in their own mirror3–4 hours
HVAC / plumbingAfter the fix has clearly held3–5 hours
Auto repairOnce they've driven it a bitSame day, 3–4 hours
Med spa / dentalAfter any soreness settlesNext morning

The pattern: send when the customer can honestly answer "was it good?" — not before, not so late they've stopped caring.

The quiet-hours edge case that ruins the delay

Here's where a naive "+3 hours" automation quietly hurts you. Say you close a job at 8:40 PM. Add three hours and your text fires at 11:40 PM. Now you've buzzed someone's phone near midnight to ask for a favor. Best case, they ignore it. Worse case, they opt out — or in a bad week, they complain, and a complaint is a TCPA exposure event that can run into four figures per text.

Federal telemarketing rules put the safe window at 8 AM–9 PM in the recipient's local time, and plenty of states are stricter. A review request isn't pure marketing, but you do not want to be arguing that distinction at 11:40 PM.

The fix is to hold the send, not fire it blindly. On ReadySMS, quiet-hours enforcement holds anything scheduled outside permitted local hours and releases it when the window opens. So the 8:40 PM job doesn't text at 11:40 PM — it queues and goes out around 8 AM the next morning, which for a late-evening service is actually the better slot anyway. You get the delayed-window benefit without the near-midnight risk.

If you build this yourself on raw carrier APIs, quiet-hours logic is your problem to write and maintain. That's fine if you have the engineering time. If you don't, having it enforced at the platform level is one less thing to get wrong at 11:40 PM.

Wiring it up as an automation

You don't want someone manually sending these. The whole point is that it fires reliably off a trigger — job marked complete, invoice paid, appointment status changed. A workable setup:

  1. Trigger: service marked complete (or invoice paid) in your CRM.
  2. Delay: wait 3 hours (adjust per the table above).
  3. Quiet-hours gate: if the resulting time falls outside 8 AM–9 PM local, hold until the window opens.
  4. Send: short text, one link, a name.
  5. Suppress: never re-send to a contact who already got one this visit, and honor STOP automatically.

For GoHighLevel users, ReadySMS syncs inbound and outbound two-way per sub-account, so the review request and any reply land in the same conversation thread your team already watches. STOP handling propagates across campaigns automatically — if someone opts out of your review texts, they're suppressed everywhere, which is exactly what you want for a list you plan to keep clean.

Keep the message itself short

Timing does most of the work, but a bloated message can undo it. Keep it to one segment where you can — 160 GSM-7 characters. Something like:

Hi Dana, thanks for coming in today! If you've got 20 seconds, a quick Google review really helps our small shop: [link] — Sam @ Riverside Auto

That's about 135 characters, one segment. Add an emoji and you drop the per-segment limit to 70 characters, which turns that same message into two or three unicode segments — so a happy-face costs you double or triple on the send. At ReadySMS Standard pricing that's $0.02/segment plus the $0.0045 carrier pass-through, so a one-segment text is $0.0245 all-in. Cheap, but if you're sending review requests to hundreds of customers a month, one-vs-three segments is real money for a smiley. Skip it.

If you want the deeper how-to on the copy and staying off carrier filters, the Google-reviews-over-SMS guide covers the message side in more detail.

The practical takeaway

  • The checkout-minute text loses because the customer is in transaction mode and hasn't experienced the outcome yet.
  • A 2-to-4-hour delay catches the emotional peak after friction has cleared — often roughly doubling response.
  • Match the exact delay to how long your outcome takes to register.
  • Build the delay as an automation, and gate it behind quiet-hours so a late-evening job doesn't text near midnight.
  • Keep the message to one segment; skip the emoji tax.

If you're already sending review requests the second checkout closes, the single highest-leverage change you can make is adding a few hours of delay with a quiet-hours guard behind it — no new copy, no new list, just a better minute. You can wire that up on ReadySMS with the 2,500 free credits we start every account on, no card required. Pricing's here if you want to run your own volume math first.