Most stores do not have an email problem. They have a sequencing problem: they send a newsletter when someone remembers to, they never built the automations that run while they sleep, and they cannot tell which of the two made money last month.
This guide walks through building an ecommerce email programme in the order that actually works — sending infrastructure first, then consent, then the handful of automations that carry most of the revenue, then personalization and measurement. Every section is meant to be actionable on a store you are running today, not a theoretical one with a data team behind it.
Campaigns and flows are two different products
Almost every mistake in ecommerce email traces back to blurring these two things together.
- A campaign is a one-time send. You pick a segment, write a message, and schedule it — Black Friday, a product drop, a restock announcement. Campaigns create spikes.
- A flow is always-on. It has no send date and no audience list. It reacts to an event, like a cart abandonment or a first order, and enrolls whoever triggers it. Flows create a baseline.
They also fail for different reasons. A campaign fails because the offer or the segment was wrong, and you find out within a day. A flow fails quietly — it keeps firing at people who already bought, or it never enrolls anyone because the events reaching it carry no email address. Diagnosing one with the other's playbook wastes weeks.
Build both, but build the flows first. They compound.
Set up sending before you write a word
Decide where your mail physically comes from
Your marketing platform handles campaign logic; a sending provider handles the actual SMTP or API delivery. Sometimes they are the same company, often not. What matters is what you are optimizing for:
- Dedicated sending providers such as SendGrid or Resend — built for volume, with bounce and complaint handling, suppression lists, and delivery webhooks. This is what a real store should send marketing from.
- Gmail or Google Workspace SMTP — fine for your first few hundred sends while you validate an offer. It has hard daily limits and no bulk reputation tooling, so plan to move off it.
The switch is far easier before you have a list. Do it early.
Authenticate your domain
Four DNS records decide whether mailbox providers trust you at all:
- SPF — declares which servers may send on behalf of your domain.
- DKIM — cryptographically signs each message so tampering is detectable.
- DMARC — tells mailbox providers what to do when SPF or DKIM fails, and where to send reports. Google, Yahoo, and Microsoft all require a DMARC record from bulk senders.
- BIMI — optional, and only works once DMARC is enforcing. It puts your logo beside your messages in supporting clients.
Get these wrong and nothing else in this guide matters. The email deliverability guide covers the full setup, including the bulk-sender rules Gmail and Yahoo enforce and how to warm a new sending domain without burning it.
Collect consent you can prove
Every subscriber should be traceable to a moment where they agreed to hear from you, with a timestamp and a source. That is a legal requirement in most markets and a deliverability requirement everywhere — bought and scraped lists generate exactly the complaints and spam-trap hits that end sending programmes.
The practical version: an opt-in at checkout, a signup form that states what you will send and roughly how often, and an unsubscribe link that works on the first click. Never pre-tick the box.
The five flows that carry the revenue
These cover the large majority of what a store needs. Build them in this order.
1. Welcome series
Triggered when someone subscribes. This is the moment of maximum intent — they just raised their hand. Three to five emails across the first week: who you are, what you sell and why it is different, evidence that other people buy it, and a reason to place a first order.
2. Abandoned cart and abandoned checkout
Triggered when a shopper adds to cart or starts checkout and does not finish. Usually the single highest-revenue automation in an ecommerce account. Two or three messages: a low-key reminder within a few hours, a follow-up that answers the real objection (shipping cost, sizing, returns policy), and optionally a final nudge.
The non-negotiable part is an exit condition on purchase. A flow that keeps chasing someone who already checked out is worse than no flow at all — it reads as incompetence, and it costs you the complaint.
3. Browse abandonment
Triggered when an identified shopper views a product repeatedly without adding it to cart. Lower intent than a cart, so keep it to one message and make it useful rather than pushy.
One constraint worth planning around: browse flows can only reach shoppers you can identify. An anonymous visitor with no email or phone on file never enrolls, however many pages they view. If your browse flow reaches almost nobody, that is usually the reason.
4. Post-purchase
Triggered on order placement. Order confirmation, shipping updates, a how-to-use-it email timed to arrival, then a review request. This is the cheapest loyalty you will ever buy, and it deflects a meaningful share of "where is my order" support tickets.
5. Win-back
Triggered when a customer crosses your definition of lapsed — and that definition should come from your own purchase cycle, not a default setting. If people reorder every six weeks, 90 days of silence is already late. If you sell furniture, 90 days is nothing.
Personalization past "Hi {{first_name}}"
Merge variables are table stakes. Real personalization changes what the email is about, not just who it greets.
Three levels, in increasing order of effort
- Merge fields — name, order number, coupon code, the product they left behind. Cheap, and it makes a message feel addressed rather than broadcast.
- Segment-level relevance — a different send to first-time buyers than to repeat customers. No dynamic content needed; you simply send two campaigns instead of one.
- Catalog-driven content — product blocks pulled from your live catalog, so names, prices, and links are current at send time rather than whatever they were when you built the template.
Most stores jump straight to level three and never do level two properly. Level two is where the easy lift is. Our guide to email personalization goes deeper on each level.
One rule that saves you
Every merge variable needs a fallback. "Hi ," is the classic failure — it happens the moment a contact has no first name, which means it goes out to precisely the people you know least about. Decide what an empty field renders as before you send, not after.
A worked example: a welcome series for a Shopify store
Say you sell skincare and your average order is around $60. A workable first version looks like this:
- Immediately — "Here is your 10% off code." Confirm the discount, state what you send and how often, link to a bestsellers collection.
- Day 2 — "How to pick the right routine." Educational, no hard sell. It solves the actual blocker for skincare, which is not knowing what to buy.
- Day 4 — Social proof. Reviews of two or three specific products, ideally the ones with the strongest repeat rate.
- Day 6 — "Your code expires tomorrow." One clear deadline, one call to action.
Four emails, each with a job. Then look at revenue per recipient step by step. If email three earns a fraction of the others, rewrite it or remove it — do not add a fifth just because the template gallery had five.
Measure the metrics that survive contact with reality
Rank them roughly like this:
- Revenue per recipient — the number that tells you whether the send was worth sending, and the one that stays comparable across list sizes when total revenue does not.
- Conversion rate — orders attributed to the send, divided by recipients.
- Click-through rate — whether the content and the call to action landed.
- Unsubscribe and complaint rate — your early warning system. A rising complaint rate is a deliverability emergency, not a content note.
- Open rate — useful mainly for comparing two subject lines against each other. Apple Mail Privacy Protection pre-fetches images and registers opens that never happened, so treat the absolute number as noise.
One more distinction that catches people out: "sent" is not "delivered". A sending provider accepting your message means it has taken responsibility for it, not that it reached an inbox. Judge campaigns on delivered counts and what happens after. The campaign analytics guide covers attribution and reporting cadence in detail.
Common mistakes worth avoiding
- Sending to everyone, every time. Mailing unengaged contacts to hit a volume number damages the reputation that gets you into your engaged subscribers' inboxes.
- No exit conditions on flows. Being nagged about something you already bought is the fastest route to an unsubscribe.
- Discounting reflexively. If every email carries a code, you have trained your list to wait for one. Save discounts for the steps where the data shows they change the outcome.
- Never cleaning the list. Suppress hard bounces immediately, and sunset contacts who have not engaged in six to twelve months. A smaller list that lands in inboxes beats a big one that does not.
- Treating email as a silo. Someone who ignored two emails may well answer a WhatsApp message. Sequencing across channels beats sending more email into the same inbox.
Where CampGain fits
CampGain is built for the multi-channel version of this. You connect your sending provider — SendGrid, Resend, or Gmail SMTP — alongside Twilio for SMS and RCS and your WhatsApp Business account, then build a campaign once as a sequence of steps with waits in between. Each step targets whichever channel suits that moment in the journey.
In practice that means:
- Segments that combine sources — your own contact rules plus Shopify conditions in a single audience, with duplicate people collapsed by email or phone before anything sends.
- A synced catalog — products pull from your live Shopify data, so merge variables resolve to current names, prices, and links.
- Per-step and per-contact delivery data — sent, delivered, opened, clicked, and the specific failure reason on anything that did not make it, so you fix the template instead of guessing.
- Test sends before launch — fire the whole workflow at a handful of contacts and confirm it renders and delivers before it reaches the full segment.
See how the campaign builder works if you want the specifics.
Where to start
If you do nothing else this month: authenticate your domain, build the welcome and abandoned-cart flows with a purchase exit condition, and start reporting revenue per recipient instead of open rate. That is the shortest path from "we send a newsletter sometimes" to an email programme that produces revenue on a schedule nobody has to keep manually.
Everything after that — browse abandonment, replenishment timing, cross-channel sequencing — is an optimization on a foundation that is already earning.