Building review reminders

Send a second review request to customers who didn't answer the first, or send every request from your own email platform. Both need a developer, so hand this page to yours.

Meisei sends one review request per order and never chases on its own. A reminder is a small job on your side that asks Meisei who hasn't answered and tells it to ask again. See Collecting reviews for the request itself.

Before you start

  1. Create a secret key under Settings → API keys with surveys read and write. Keep it on your server.
  2. Choose when Meisei asks under Settings → Features → Reviews. Leave the Send review requests automation on for the first pattern below, or switch it off for the second.

Each request shows up under Reviews → Review requests either way, with how many times it has been sent.

Meisei asks first, you send the reminder

Run a job once a day. It finds requests sent once, more than five days ago, with no review back, and sends each one again.

  1. List the requests that need a reminder:

    curl -G https://your-store.meisei.app/api/surveys \
      -H "Authorization: Bearer sk_live_..." \
      --data-urlencode 'filter={"reviews":0,"requestCount":1,"lastRequestedAt":{"$lte":"2026-10-10T00:00:00Z"}}'

    Put the date five days before today. Each request comes back under data, with its id.

  2. Send each one again. To send a different email from the first one, write a reminder under Settings → Email templates as a Review request template, and pass its ID:

    curl -X POST https://your-store.meisei.app/api/surveys/k3Fq9TzB/send \
      -H "Authorization: Bearer sk_live_..." \
      -H "Content-Type: application/json" \
      -d '{ "templateId": "Rm4Tq8Lw" }'

    Leave the body off to send your default Review request email again. The template ID is the last part of the template's address in the dashboard.

Sending raises the request's requestCount to 2, so the filter never picks it up again and each customer gets one reminder at most. One is enough, because a customer who ignored two emails is more likely to unsubscribe than to review.

You send every email yourself

With the Send review requests automation off (or I'll send my own chosen in setup), Meisei opens no requests. Your system opens one per order once the order has reached Meisei (through Shopify or the orders import):

curl -X POST https://your-store.meisei.app/api/surveys \
  -H "Authorization: Bearer sk_live_..." \
  -H "Content-Type: application/json" \
  -d '{ "orderId": "Vb7Lm2Qx" }'

Then pick who sends it:

  • Meisei sends it. Add "send": true beside orderId when you open it, or call /send later, as above. Reminders work as in the first pattern.

  • Your email platform sends it. Every request carries its review links, so read them from the response when you open it, or later with GET /api/surveys/k3Fq9TzB: reviewUrl opens the review page for the whole order, and each product in includedProducts has its own reviewUrl and five ratingUrls, which open the form with one to five stars already chosen.

    Meisei doesn't know when your platform sends, so requestCount stays at 0. Keep track of your own sends, find reminder candidates from those records, and use the reviews count in the filter to see who has answered. Your platform also handles unsubscribes for these emails.

If something isn't working

  • A send answers 404. The template ID doesn't exist or isn't a Review request template.
  • A send with a template answers 409 about Klaviyo. Klaviyo sends your review requests, so choose the email in your Klaviyo flow instead.
  • A send answers 409. The customer has opted out of marketing email, was imported and has never had an email from your store, or your store's sending is paused. Skip that request and carry on.
  • Opening a request answers 409. That order already has one. Send that request again instead.
  • The order isn't found. It hasn't reached Meisei yet. Check Orders.
  • The filter finds nothing. Check the date is in the past and the requests have actually gone out under Reviews → Review requests.

Next steps