Automate Review Requests from Shopify Orders
When a Shopify order is fulfilled, or paid if you prefer, EmbedMyReviews adds the customer to a review campaign and sends the request by SMS or email at the time you choose. Cancelled and refunded orders are skipped automatically.
No public app to install. The connection runs through a custom app you create in your own Shopify Dev Dashboard, and the webhooks are created for you during setup.
Sends 3 days after fulfilment. "Hi Amara, thanks for your order. Would you share a quick review?"
How It Works
Three steps in the setup wizard. The webhooks are created on the store for you.
Connect your store
Create a custom app in the Shopify Dev Dashboard with the read_orders and read_customers scopes, then paste the .myshopify.com domain, client ID and client secret. Credentials are validated on the spot and stored encrypted.
Choose campaign, trigger moment and timing
Pick the review campaign, decide whether fulfilment or payment is the moment that counts, then send immediately, up to 7 days later, or the next morning at a set time.
Create the webhooks and activate
EmbedMyReviews mints the access token and registers the order and refund webhooks on the store. Orders start flowing into the campaign straight away.
What triggers a request, and what never does
You choose the moment that counts. The integration listens to paid, fulfilled, cancelled and refund events and acts only on the ones that matter for the trigger you picked.
Built for Stores That Ship, and Stores That Don't
Fulfilment-triggered requests land after delivery. Payment-triggered requests land while the checkout is fresh. Pick the one that matches what the store sells.
Physical products with a shipping window
Trigger on fulfilment and add a few days of delay so the request arrives once the parcel has.
Digital downloads and services
Nothing ships, so trigger on payment. The customer has what they bought the moment the order is paid.
Shopify POS retail
Point-of-sale orders arrive as normal Shopify orders and trigger the same way, so in-store customers are covered alongside web orders.
Made-to-order and pre-order stores
Payment and fulfilment can be weeks apart. Anchoring to fulfilment means the request follows the product, not the checkout.
Repeat-purchase and subscription stores
Campaign-level duplicate rules stop regular buyers from being asked on every order.
Agencies managing Shopify clients
Each client store connects with its own custom app under its own account. Nothing is shared between clients.
Integration Features
Built to keep running on real stores, where Shopify removes webhooks that fail and plans limit what a custom app can see.
Fulfilled or paid, your choice
Choose the order moment that counts per store. Fulfilment for goods that ship, payment for goods and services delivered at checkout.
Timing up to 7 days
Immediately, 15 minutes to 7 days after the order moment, or the next morning at a chosen time in the store's timezone.
Refund and cancellation aware
The integration always subscribes to cancellation and refund events. Either one cancels a request that has not been sent yet.
Self-healing webhooks
Shopify deletes a webhook subscription after 8 failed retries over 4 hours. Every 6 hours EmbedMyReviews re-creates any missing subscription and back-fills orders updated in the last 72 hours.
Order details become contacts
Email, name and phone are read from the order, so requests can go out by SMS, email, or both. POS orders carry the same details when the customer is attached.
Order log and counters
Every order received, skipped, cancelled, or sent is listed with its reason, alongside totals for orders received and requests sent.
What you need before connecting
EmbedMyReviews connects to Shopify through a custom app you create in your own Dev Dashboard, not a public app store listing. The setup wizard checks the credentials before anything is saved.
- A store owner login, or a staff account with permission to develop apps, to create the custom app in the Dev Dashboard.
- A custom app created under Settings, Apps, Develop apps. Grant the read_orders and read_customers scopes, release it, install it on the store, then copy the Client ID and Client secret.
- The store's .myshopify.com domain, even if the storefront runs on a custom domain.
- A review campaign with SMS or email configured through your own provider.
Basic and Starter plans
Shopify limits the customer contact details it shares with custom apps on the Basic and Starter plans. Some orders arrive without an email and are logged as skipped. A store on the Grow plan or higher gets full coverage.
There is no test event
Shopify has no test-event API for webhooks. The store accepting the webhook subscriptions during setup is the verification, and the first real order confirms delivery in the order log.
Your providers. Wholesale rates.
Review requests triggered by Shopify orders are sent through your own Twilio (SMS) or SMTP (email) accounts. You pay wholesale rates directly, with no EmbedMyReviews markup on messaging.
Common questions
Do I need a public Shopify app?
No. EmbedMyReviews connects to Shopify through a custom app you create in your own Shopify Dev Dashboard under Settings, Apps, Develop apps. There is no app store listing and nothing is installed from the marketplace. You grant the read_orders and read_customers scopes, install the app on the store, and paste the client ID and client secret into the setup wizard. The app can be uninstalled from Shopify at any time.
Fulfilled or paid, which should I pick?
Pick "when the order is fulfilled" for physical products, so the request follows the shipment rather than the checkout. Pick "when the order is paid" for digital products and services that are delivered the moment payment clears. Fulfilled is the default. Whichever you choose, the delay is measured from that moment as recorded by Shopify, not from when the webhook arrived.
What happens with refunds and cancellations?
The integration always subscribes to cancellation and refund events regardless of the trigger you chose. A cancellation or refund that arrives before the request is sent cancels it, and the order is listed in the log with the reason. Gateway test orders and orders with a zero total are never queued in the first place.
Does it work with Shopify POS?
Yes. Orders placed through Shopify POS arrive as normal Shopify orders and trigger the same way as web orders. A POS order needs a customer with an email or phone attached for a request to go out, so orders rung up without a customer record are logged as skipped.
Why are some orders skipped on Basic or Starter plans?
Shopify limits the customer contact details it shares with custom apps on the Basic and Starter plans, so some orders arrive without an email address and there is nothing to send to. Those orders appear in the log as skipped. Stores on the Grow plan or higher receive full contact details and get full coverage.
Can an agency connect multiple client stores?
Yes. Automations are set up from the agency account for each client. Every store connects with its own custom app credentials under its own client account, and requests go out through that client's campaign and messaging providers. Nothing is shared between client stores.
Related integrations
WooCommerce
The same order-driven flow for WordPress stores, triggered on completed orders.
Stripe
Trigger on successful charges when checkout runs outside Shopify.
Square
Trigger on completed payments for stores that sell through Square instead of Shopify POS.
All Integrations
CRMs, calendars, payments, and automation platforms.
Connect Shopify and let fulfilled orders ask for the review.
Included in the flat $99/month plan for unlimited clients and stores. No per-connection fees.
No credit card required. Explore the platform for 14 days.