Email marketing for Shopify differs from email marketing anywhere else because the store already emits every signal a program needs: product viewed, checkout started, order placed, order delivered, days since the last order. That stream is the real calendar. The job is choosing who reads it and acts: a person building flows, or an agent deciding per shopper.
We build the agent, so read this as informed but interested. The tools are described in their own words, the order of operations below works on any of them, and the argument about the calendar is ours.
Before any app is installed, a Shopify store records the events that email marketing runs on: a visitor viewing a product, starting a checkout, placing an order, receiving it, and then either coming back or not. Every email platform for Shopify is, at bottom, a way of reading that stream and turning parts of it into messages.
Shopify’s own tool reads it natively. Shopify Email, now sold as Shopify Messaging, in Shopify’s words lets a store “Create email and SMS campaigns with ready-made templates, edit emails quickly with Sidekick, and get insights all in one place with pricing that scales with your sends,” and it will “automatically pull branding, products, and prices directly from your store.” It offers “ready-to-use automations like welcome, winback, and upsell emails,” and custom workflows built from a “trigger and conditions, then add any conditional logic or wait steps.” The pricing is per email: “every month, you can send up to 10,000 manual or automated emails for free,” then “$1 USD per 1,000 additional emails sent.” SMS is charged separately and, per Shopify, “is now available in select countries.”
That is the floor. Everything else in the category is a different answer to the same question: given this stream, who decides what each shopper receives?
Most guides to email marketing for Shopify start with the tool. Start with the sequence instead; it is the same on every tool, and it is where most programs go wrong.
A sign-up form on the store, a checkout opt-in, and an SMS opt-in that shows the compliant language. Nothing downstream works without a list that agreed to hear from you, and SMS in particular is a channel where the opt-in is the asset. Do this first, and do it before the launch campaign, not after.
The behavior-triggered emails run on the store’s stream, so they earn revenue on days nobody sent anything. In rough order of value for a Shopify store:
Launches, sales, seasonal sends. On a Shopify store these are the emails people picture when they say email marketing, and they are the last thing to build, because they are the only kind that requires someone to decide, every week, what to say to everyone at once.
Open rates have been unreliable since mail clients began pre-fetching images. The number that survives is revenue attributed to email, divided by the people who received it, read alongside the unsubscribe rate. It tells you whether a message earned its send. It is also the number that exposes the calendar problem below.
The Pareto principle applied to a mailbox: most of the revenue comes from a minority of the emails. On a Shopify store that minority is almost always the automations in step 2, the behavior-triggered messages that fire because a specific shopper did a specific thing, while the majority of sends are calendar campaigns to everyone. The practical reading is not a ratio to hit. It is a sequencing rule: build the small set of emails that respond to the stream before building the large set that ignores it.
Here is the tension that every Shopify email program eventually runs into. The store’s stream is per-shopper and continuous. A campaign calendar is per-list and weekly. The calendar exists because a person cannot read the stream for ten thousand shoppers at once, so the team compresses it: segments stand in for people, flows stand in for decisions, and a send date stands in for the moment a shopper was actually ready.
Flows narrow the gap, and they are still compressions. A flow is a rule a person wrote about a segment, months ago, for the store as it was then. The arithmetic for what the compression costs: a $20M brand wastes roughly $2M a year sending the wrong message to the wrong customer, from about 10–12% of GMV being email-attributable and roughly 80% of that potential wasted by one-to-many sends (Bloomreach and Mailchimp benchmarks, 2024–2025).
The alternative is not a better calendar. It is letting the stream be the calendar: something reads each shopper’s signals as they happen and decides, for that shopper, whether a message is warranted, and if so which one, on which channel, now. That is a decision per person per moment, which is a job for an agent, not a builder.
Three questions cover it, and each has its own article.
Relvino runs Observe → Decide → Act on the store’s owned channels. It reads the same Shopify events described above, live, and for each shopper decides in under 80 milliseconds whether a message is warranted and, if so, the offer, channel and moment, then executes across email, SMS and on-site. There is no flow to build for abandoned checkout, welcome, post-purchase or win-back; those are situations the agent recognizes, not sequences someone drew. Guardrails are set once, and inside them 100% of flows run without a human in the loop.
The priors come from a Large Retail Model trained on 7M+ data points across 10K+ retailers and 1.78M shoppers, so the agent knows what works in a category before it has seen a store. Brands replacing an incumbent see 2–6× ROI in 30 days and up to 10× revenue uplift year over year. Two examples: Terra Kaffe, 2X the revenue of standard flows, and Sulina Shop, 4X ROI. Migration from Klaviyo takes about 30 minutes, and the honest proof is a 14-day pilot run beside the incumbent. Pricing is on the pricing page.
It is the Pareto principle applied to a mailbox: a minority of emails produce most of the revenue. On a Shopify store that minority is almost always the behavior-triggered automations (abandoned checkout, welcome, post-purchase, win-back), while most sends are calendar campaigns to the whole list. Read it as a sequencing rule rather than a target: build the emails that respond to the store's event stream before building the ones that ignore it.
It depends on who will read the store's event stream. If the program is the ready-made automations plus an occasional campaign, Shopify Email is built in and priced per send. If a team will design and maintain flows, the candidates are flow apps such as Klaviyo, Omnisend and Mailchimp; our ranking by monthly operating burden is in the best email marketing for Shopify guide. If nobody wants to maintain flows at all, Relvino decides per shopper inside guardrails you set once.
Judged by Shopify's own description, it is a sending tool: ready-made templates, automations such as welcome, winback and upsell that a person turns on, and workflows built from triggers, conditions and wait steps. Its pricing per email is a strength. What it does not claim is a decision per shopper about whether to send at all, and SMS is described as available in select countries. Stores that outgrow templated automations usually add an app, and the trade is more capability for more maintenance.
Shopify Email lives inside the Shopify admin, pulls products and prices from the store automatically, and charges per email after 10,000 free sends a month. Mailchimp is a separate platform with its own pricing, which this article does not compare. For a store whose program is templated automations and a monthly campaign, the built-in tool is simpler. Our comparison of what replaces both, and the cheaper options, is in cheaper alternatives to Mailchimp and Klaviyo vs Mailchimp for Shopify.
About 30 minutes for the technical cutover: install the Shopify app, point the sending domain, connect SMS, and shopper data ingests automatically. Nothing is rebuilt because there are no flows in Relvino; abandoned checkout, welcome, post-purchase and win-back are situations the agent recognizes rather than sequences a person designs. Revenue is proven in a 14-day pilot run beside Klaviyo, and pricing is on the pricing page.