There's a mistake I see in almost every local-business review workflow, and it's the one that feels most correct: fire the review-request text the second the invoice is marked paid. The logic seems airtight — catch them while the experience is fresh. In practice, that same-minute text is the worst-performing version of the message you can send, and the fix costs you nothing but a delay setting.

Full disclosure: I work for ReadySMS, and yes, we sell the scheduling and quiet-hours tooling that makes this easy to wire. But the timing curve here is platform-agnostic — it's about human behavior, not our software. If you're on another tool that can delay a step, the same numbers apply.

The problem with the same-minute request

When you send a review request the instant checkout completes, you catch the customer mid-transaction. They're standing at the counter fishing out a credit card, or they just watched your tech pull out of the driveway, or they're wrangling kids into a car seat in your parking lot. The job is done, but the experience isn't over in their head yet.

A review is a reflective act. It requires the customer to have formed an opinion, and opinions settle over a little time. Ask someone to rate a haircut while they're still paying for it and you get one of two responses: they ignore the text because they're busy, or they tap through and leave something flat and generic — "good, thanks" — because they haven't actually processed how they feel yet.

There's a second problem. A text that lands within seconds of a card swipe reads as automated, because it obviously is. It feels like the machine talking, not the business. The delay isn't just about timing the ask — it's about the message not looking like a receipt.

The timing curve, roughly

I want to be honest about the evidence here: nobody has a clean, universal dataset on this, and anyone who tells you "send at exactly 2 hours and 47 minutes" is selling certainty they don't have. What I can give you is the shape of the curve that shows up consistently across local-service and retail send data, framed as approximations.

Delay after checkoutWhat's happeningRelative response quality
0–5 minutesCustomer still in-transaction, distractedLow — ignored or flat replies
30–60 minutesLeaving, still task-focusedBelow average
2–4 hoursExperience has settled, day has a lullPeak — highest completion + detail
Same evening (6–9pm)Home, relaxed, on the phone anywayStrong (respect quiet hours)
Next dayFresh but fadingDecent — good fallback
3+ daysMemory decayedPoor — low completion

The sweet spot for most local businesses sits in that 2-to-4-hour window. Long enough that the customer has moved on from the transaction and formed an actual opinion, short enough that the experience is still specific in their memory. Send it at three hours and you're near the top of the curve for most service types.

There are exceptions. A restaurant dinner review lands better the next morning than three hours later, because "three hours later" is midnight. A same-day plumbing repair does great in the afternoon lull. Match the delay to when your customer is likely to be free and reflective, not to a rigid clock.

Why quiet hours aren't optional here

The moment you introduce a delay, you introduce a scheduling risk: a 7pm checkout plus a three-hour delay lands your text at 10pm. That's a quiet-hours violation, and it's exactly the kind of send that generates opt-outs and, worse, TCPA exposure.

This is where the delay logic and quiet-hours enforcement have to work together. On ReadySMS, quiet-hours enforcement holds a send that falls outside permitted local hours based on the recipient's area, then releases it when the window opens. So a 7pm checkout with a three-hour delay doesn't fire at 10pm — it gets held and sent the next morning when texting is allowed. You get the reflective-delay benefit without the late-night landmine.

If you want the fuller reasoning on why late sends cost you subscribers and not just goodwill, I wrote about that in SMS quiet hours: the legal rule, the smart rule, and the one that gets you opt-outs. The short version: the quiet-hours rule that keeps you compliant and the one that keeps people subscribed are almost the same rule.

How to wire the delay in a workflow

Here's the practical setup for a local business, whether you're triggering from a point-of-sale, a scheduling tool, or GoHighLevel:

  1. Trigger on the completion event — invoice paid, appointment marked complete, order fulfilled. Not on the booking, on the completion.
  2. Add a wait step of 3 hours. This is the whole trick. One setting.
  3. Layer quiet-hours enforcement so any send that would land outside allowed local hours is held automatically. This is your safety net for evening checkouts.
  4. Send one message with a direct review link. Not a survey funnel, not a "how did we do 1-5" gate — a single tap to your Google review page.
  5. Optional next-day fallback if you want a second touch, but cap it at one. Two review texts is the ceiling before it reads as nagging.

For GHL users specifically, the wait step lives in the workflow builder and the SMS action fires through the native two-way integration, so any reply the customer sends lands back in your conversations inbox. The GHL SMS setup guide walks through connecting that if you haven't yet.

The message itself matters as much as the timing

A perfectly timed text with a bad body still underperforms. A few things that move the needle:

  • Use the customer's name and something specific. "Hi Dana — thanks for coming in for your color today" beats "Thank you for your business." Specificity signals a human, not a batch job.
  • Ask, don't demand. "Would you mind leaving a quick review? Here's the link:" outperforms "Leave us a review!" by a meaningful margin on completion.
  • One link, one tap. Every extra step between the text and the review form drops completion.
  • Keep it under 160 characters so it's a single GSM-7 segment. A tidy 150-character review text is one segment. Add an emoji and you drop to a 70-character unicode limit, which can push you to two segments — small money, but it adds up across thousands of sends, and the emoji rarely earns its cost on a review ask.

I covered the flag-avoidance and link-formatting side of this in more depth in how to use SMS to get more Google reviews without getting flagged — worth a read if you've ever had a review link get carrier-filtered.

A quick cost sanity check

Say you're a local shop pushing 2,000 completed transactions a month and you text a review request to each. One single-segment message per customer is 2,000 segments. On the Starter tier at $0.0084 per segment plus the $0.0045 carrier pass-through, that's:

2,000 × ($0.0084 + $0.0045) = 2,000 × $0.0129 = $25.80/month

That's the entire cost of your review-generation engine. If it earns you even a handful of additional Google reviews a month — reviews that compound into local search ranking and walk-in trust — the math isn't close. You can run your own numbers on the cost calculator.

The practical takeaway

The instinct to send the review text immediately is the thing working against you. Give the customer a few hours to form an opinion, land the ask during a natural lull, and let quiet-hours enforcement catch any evening sends before they turn into 10pm complaints. A three-hour wait step and one clean message is most of the game.

If you're setting this up from scratch, start with the completion trigger and the delay — that alone will outperform whatever you're doing now. You get 2,500 free credits on ReadySMS to test the flow with no card required, which is enough to run a real cohort of review requests and watch your own timing curve emerge. Your data beats my table every time.