Skip to main content
All Integrations
E-commerce

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.

Shopify
Fulfilled

Order #1042

Amara Okafor · 3 items · $124.00

Fulfilled 2:15 PM
Review request scheduled

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.

1

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.

2

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.

3

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.

When the order is fulfilled schedules the request after shipment. Recommended for physical products.
When the order is paid schedules it at checkout. Suited to digital products and services delivered on the spot.
Cancellations and refunds cancel any pending request
Gateway test orders and zero-total orders are ignored
Timing is anchored to the fulfilment or payment moment recorded by Shopify, so a late webhook delivery never shifts the send
#1042 FulfilledRequest scheduled
#1043 Paid, unfulfilledWaiting
#1039 RefundedCancelled
#1036 FulfilledRequest sent

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.

BYOK

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.

Your Twilio
Your SMTP

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.

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.