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.
| Campaign | Flow | |
|---|---|---|
| What starts it | You do, on a schedule | A shopper's action |
| Audience | A segment, fixed at launch | Nobody up front — people enroll individually |
| Typical use | Black Friday, a product drop, a restock | Cart abandonment, welcome, post-purchase |
| What it produces | A spike | A baseline |
| How it fails | Wrong offer or wrong segment — visible within a day | Quietly: it chases people who already bought, or enrolls nobody because events carry no email |
| Build order | Second | First — flows compound |
Because they fail differently, they need different debugging. Diagnosing a flow with a campaign's playbook — rewriting the subject line when the real problem is that no event carries an email address — wastes weeks.
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:
| Route | Good for | What you give up |
|---|---|---|
| Dedicated provider SendGrid, Resend |
Real volume — bounce and complaint handling, suppression lists, delivery webhooks | Nothing that matters. This is where a store should send marketing from. |
| Gmail / Workspace SMTP | Your first few hundred sends, while you validate an offer | Hard daily limits and no bulk reputation tooling — 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:
| Record | What it does | Needed? |
|---|---|---|
| SPF | Declares which servers may send on behalf of your domain | Required |
| DKIM | Signs each message cryptographically, so tampering is detectable | Required |
| DMARC | Tells mailbox providers what to do when SPF or DKIM fails, and where to send reports | Required of bulk senders by Google, Yahoo, and Microsoft |
| BIMI | Puts your logo beside your messages in supporting clients | Optional — and only works once DMARC is enforcing |
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.
| Flow | Trigger | Messages | Must exit on |
|---|---|---|---|
| 1. Welcome series | Subscribed | 3-5 over week one | First purchase (or branch to post-purchase) |
| 2. Abandoned cart / checkout | Cart or checkout started, not finished | 2-3 over three days | Purchase - non-negotiable |
| 3. Browse abandonment | Product viewed repeatedly, no cart add | 1 | Cart add or purchase |
| 4. Post-purchase | Order placed | 3-4 across delivery | Cancellation or refund |
| 5. Win-back | Days since last order crosses your lapsed threshold | 2-3 over a few weeks | Any 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
| Level | What it is | Effort | Payoff |
|---|---|---|---|
| 1. Merge fields | Name, order number, coupon code, the product they left behind | Low | Feels addressed rather than broadcast |
| 2. Segment-level relevance | A different send to first-time buyers than to repeat customers — two campaigns, no dynamic content | Low–medium | Highest return for the effort |
| 3. Catalog-driven content | Product blocks pulled live, so names, prices, and links are current at send time | Medium–high | Accuracy, and cart-contents recovery |
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:
| When | The email | The job it does |
|---|---|---|
| Immediately | "Here is your 10% off code" | Confirm the discount, state what you send and how often, link to bestsellers |
| Day 2 | "How to pick the right routine" | Educational, no hard sell — it solves the actual blocker, which is not knowing what to buy |
| Day 4 | Social proof | Reviews of two or three 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:
| Metric | What it answers | How far to trust it |
|---|---|---|
| Revenue per recipient | Was this send worth sending? | Your headline number — stays comparable across list sizes when total revenue does not |
| Conversion rate | Attributed orders ÷ delivered | Fully |
| Click-through rate | Did the content and the call to action land? | Fully |
| Unsubscribe & complaint rate | What is this frequency costing you? | Fully — a rising complaint rate is a deliverability emergency, not a content note |
| Open rate | Which subject line won, within one send? | Only for that. Apple Mail Privacy Protection pre-fetches images, so the absolute number is noise |
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.