Skip to main content
Happy customers usually don’t leave reviews unless you ask. This recipe automatically sends a friendly ask a few days after delivery — enough time to actually use the product, not so long that they’ve forgotten.
Before you start: your orders table needs a status column plus a delivery or fulfillment timestamp, and you need a configured email service.

The Flow at a Glance

Delivery

Order marked ‘delivered’

3 days

Let them actually use it

Ask

One clear review request

Step 1: Create the Workflow

1

Open Workflows

Go to Workflows > New Workflow. Name it Review Request.
2

Add a Database trigger

Click Add Trigger > Database. Listen for row updated on the orders table, filtered to runs where status changed to delivered (or completed).
Triggering on update-to-delivered is better than a schedule — it fires once per order, naturally, and handles backorders and delayed shipments correctly.

Step 2: Wait for the Product to Land

1

Add a Delay action

Click + Add Action > Delay. Set to 3 days.Why three days: long enough that they’ve unboxed and tried it, short enough that it’s still top-of-mind.
2

Re-check the order status

Add a Condition step:
{{trigger.status}} == 'delivered' OR {{trigger.status}} == 'completed'
If the order was returned or canceled in those 3 days, skip the rest.

Step 3: Send the Review Request

1

Add a Send Email action

  • To: {{trigger.customer_email}}
  • Subject: How's your {{trigger.product_name}}?
  • Body: Friendly and short. One clear ask.
2

Write the body

Hey {{trigger.customer_name}},

Hope you're enjoying your {{trigger.product_name}}. If you have 30 seconds, 
we'd love to hear what you think:

[ Leave a review ] → https://yoursite.com/reviews/new?order={{trigger.id}}

Honest feedback is how we get better. Thanks!

— The Acme team
3

Mark the request as sent

Add a Database Update:
UPDATE orders SET review_request_sent_at = now() WHERE id = '{{trigger.id}}'
Prevents duplicates if the trigger fires twice.

Step 4: Optional 7-Day Nudge

If they didn’t leave a review, a single gentle follow-up often doubles response rates. Add a second Delay (7 days), then a Condition to check no review was submitted yet:
SELECT COUNT(*) FROM reviews WHERE order_id = '{{trigger.id}}'
If count is 0, send a short nudge: “Still enjoying it?” with a single-click star rating. Don’t send a third email — at that point they’ve decided.

Integrating with Your Reviews Page

The review link can go to several places:
  • Your own reviews page/reviews/new?order={{trigger.id}} prefills the product
  • Google Business Profile — direct link to your public review form
  • Trustpilot / Yotpo — pass the order ID as a URL parameter
  • Embedded form in email — simplest for customers, but limited formatting
Start with your own page (so you control what happens with a bad review), then syndicate the good ones to Google.

Incentivizing Responses — Carefully

Small thank-yous help response rates:
  • 10% off the next purchase
  • Early access to new products
  • Entry into a monthly drawing
Never offer an incentive contingent on a positive review. That violates Google, Yelp, Amazon, and Trustpilot guidelines and can get your listings removed. Always frame the ask as “honest feedback welcome.”

Deduping Across Customers

If a customer buys frequently, you don’t want weekly review requests. Dedupe by customer, not order:
-- Before sending, check the customer's last request
SELECT MAX(review_request_sent_at) AS last_sent
FROM orders
WHERE customer_id = '{{trigger.customer_id}}'
If last_sent is within 30 days, skip.

Verify It Worked

  1. Mark a test order as delivered in the database
  2. Temporarily shorten the delay from 3 days to 5 minutes for testing
  3. Check that the email arrives at the test customer address
  4. Click the review link — it should open your review form with the order prefilled
  5. Confirm review_request_sent_at is populated
Restore the 3-day delay before enabling for production.

Troubleshooting

Check the trigger — is the orders table actually updating to delivered, or is your fulfillment flow using a different status? Open Workflows > Runs and look for trigger events. If none are firing, the status transition isn’t happening, or you’ve filtered too tightly.
review_request_sent_at isn’t being set, or you’re not filtering on it. Add a condition at the top of the workflow:
{{trigger.review_request_sent_at}} IS NULL
You’re deduping by order, not by customer. A frequent buyer gets one email per order — which adds up. Switch to per-customer deduping with a 30-day minimum gap.
The workflow is queued up behind other runs. Go to Workflows > Runs and check for backed-up executions. If your workflow runner is overloaded, split high-volume workflows to separate runners or move scheduling to a dedicated queue.

What’s Next?

Customer Testimonials

Display your new reviews on the site as social proof

Workflows Basics

How triggers, actions, and runs fit together