If you’ve already connected Klaviyo to Shopify, flows are where most stores see the fastest payback. This article focuses on the core email automations. For setup, see our main guide: Klaviyo Shopify integration. For text messages, see Shopify Klaviyo SMS.
Klaviyo: Email Marketing & SMS
How Shopify Data Triggers Flows
Once your integration is live, Shopify events (like Checkout Started, Placed Order, and Product Viewed) become triggers in Klaviyo. That lets you send emails that match customer intent.
Flow Priority (What to Build First)
| Priority | Flow | Trigger | Why it matters |
|---|---|---|---|
| 1 | Abandoned cart | Checkout Started + no order | Highest purchase intent |
| 2 | Welcome series | Subscribed to list | Converts new subscribers to first order |
| 3 | Post-purchase | Placed Order | Drives retention, reviews, and cross-sell |
| 4 | Win-back | No order in X days | Recovers lapsed customers |
| 5 | Browse abandonment | Viewed product + no checkout | Captures mid-intent shoppers (needs tracking) |
Flow Settings (Set Once)
Before you build 10 versions of the same automation, lock in a few defaults:
- Smart sending / frequency caps: Prevent someone from receiving too many emails in a short window.
- Exit conditions: For cart and browse flows, exit immediately when the customer purchases.
- Timezones: Send based on the recipient’s local timezone if possible (especially for time-sensitive promos).
- UTM tags: Add consistent UTMs so you can compare flows in analytics (source/medium/campaign).
- Holdouts (optional): If you want to measure true incremental lift, keep a small control group for your biggest flows.
A Simple Email Template Structure That Works
Most high-performing flow emails share the same structure:
| Block | Purpose | Notes |
|---|---|---|
| Subject + preview | Get the open | Be specific and benefit-led |
| Hero product / offer | Get attention fast | Keep it above the fold |
| One clear CTA | Drive the click | One primary CTA is enough |
| Trust proof | Reduce anxiety | Reviews, guarantees, shipping/returns |
| Secondary content (optional) | Increase relevance | Alternatives, bundles, FAQs |
If you keep layout consistent across flows, you’ll spend less time designing and more time improving targeting.
Flow Templates (Copy/Paste Starting Point)
1) Welcome Series (3-5 messages)
Subscribed to list
├── Email 1 (Immediate): Welcome + value prop + incentive (optional)
├── Wait 2 days
├── Email 2: Best sellers + social proof
├── Wait 3 days
└── Email 3: Education + brand story + CTA
Keep it simple at first: one offer, one CTA, and consistent branding.
Useful filters (optional):
- Split first-time vs returning customers
- Exclude anyone who purchased in the last 7 days (they can go to post-purchase instead)
What to test:
- Incentive vs no incentive
- Social proof vs founder story
- Best sellers vs category-based recommendations
2) Abandoned Cart (2-3 messages)
Checkout Started + No Order
├── Wait 1-4 hours
├── Email 1: Cart reminder + product(s) + clear CTA
├── Wait 24 hours
└── Email 2: Objection handling (shipping/returns) + reviews
Add a discount only if you need it. Many stores start without a discount and add it later for specific segments (e.g., first-time shoppers).
Common filters to add:
- Exclude “VIP” customers from heavy discounts
- Exclude carts under a low value threshold (optional)
- Stop the flow immediately after purchase
Discount strategy (simple):
- Email 1: no discount, pure reminder + reassurance
- Email 2: add proof (reviews, returns, shipping clarity)
- Email 3 (optional): discount only for non-buyers or first-time shoppers
3) Browse Abandonment (2 messages)
Viewed Product + No Checkout Started
├── Filter: Has email + viewed 2+ products
├── Wait 2 hours
├── Email 1: Viewed product(s) + alternatives
└── Email 2 (next day): Best sellers + category recommendations
Browse abandonment is only worth it if onsite tracking is working reliably.
Make browse email feel personal:
- Show the exact product viewed
- Include 2-4 alternatives (same category, same price band)
- Use a softer CTA (“Continue browsing”) vs “Buy now”
4) Post-Purchase (Retention)
Placed Order
├── Day 3: Product tips / how-to
├── Day delivered + 5 days: Review request
└── Day 14-30: Cross-sell or replenishment
For replenishment, use a longer wait time for products with a normal repeat cycle (e.g., 30-60 days).
Quick wins inside post-purchase:
- Add a how-to / care guide email (reduces returns)
- Ask for a review after delivery (not immediately after purchase)
- Cross-sell based on what they bought (accessories, refills, upgrades)
5) Win-Back (3 messages)
Placed Order + No Order (60-90 days)
├── Email 1: New arrivals since last purchase
├── Wait 7 days
├── Email 2: Best sellers + UGC
└── Email 3: Offer + "last chance" (optional)
Win-back doesn’t have to be a discount:
- Showcase what’s new since their last purchase
- Highlight your guarantee and shipping policies
- Offer a bundle that increases perceived value
Benchmarks (Keep One North Star)
Klaviyo’s published benchmarks highlight a large gap between one-time campaigns and abandoned cart flows on revenue per recipient:
| Message type | Avg revenue per recipient |
|---|---|
| Email campaigns | $0.11 |
| Abandoned cart flows | $3.65 |
Metrics to Watch (So You Know What to Fix)
Use these metrics as a simple diagnostic:
| Metric | If it’s low… | What to try |
|---|---|---|
| Deliverability / delivered rate | Your list quality is low | Tighten targeting to Engaged, reduce frequency |
| Open rate | Subject line or timing problem | Test subjects, send time, preview text |
| Click rate | CTA and content mismatch | One CTA, clearer offer, better product relevance |
| Conversion rate | Landing page or offer problem | Improve product page, shipping clarity, trust proof |
| Unsubscribe / spam rate | Too frequent or irrelevant | Add smart sending, segment better, reduce promos |
Example Result (Shopify Brand)
Brava Fabrics (Shopify) reports 60% of email revenue coming from automated emails (a good reminder that flows and targeting can dominate email revenue once set up correctly).
Common Mistakes (Quick Fixes)
- No exclusions: Always exit a flow after purchase. Otherwise, customers get irrelevant reminders.
- Too many branches early: Start with one clean path, then add splits after you have data.
- Re-using campaign creative in flows: Flows should feel contextual to the trigger (cart, browse, purchase).
- Discounting everyone: Save discounts for segments that need it, or you train customers to wait.
A Simple 30-Day Flow Roadmap
If you’re building from scratch, this pacing keeps things manageable:
- Week 1: Welcome + abandoned cart live (with clean exits after purchase)
- Week 2: Post-purchase education + review request
- Week 3: Win-back for 60-90 day lapsed customers
- Week 4: Browse abandonment (only if onsite tracking is stable) + one optimization test per flow
Once those are stable, you can add more flows (back-in-stock, price drop, replenishment) without overwhelming your list.
Flow QA Checklist (Before You Turn It On)
- The flow status is Live (and you tested with a real email).
- Every path has an exit on purchase where it makes sense.
- Filters match reality (e.g., you are not excluding all customers by accident).
- Emails have one primary CTA, and the CTA matches the trigger intent.
- Smart sending / frequency caps are on (so flows don’t stack on top of campaigns).
- UTMs and naming are consistent (so reporting stays clean).
- You previewed the email on mobile and confirmed links work end-to-end.
If one of these fails, keep the flow in draft and fix it first.
Next Steps
- Launch welcome + abandoned cart flows first
- Add post-purchase and win-back
- Build better segments and personalization: Segmentation & personalization guide
Shopify + Klaviyo implementation checklist (2025)
This section adds practical “make it stable” steps you can use after you install the app/connector. It’s intentionally lightweight: the goal is fewer sync surprises, cleaner reporting, and easier troubleshooting.
1) Quick setup checklist
- Permissions first: grant only the scopes you need (orders/customers/products as required) and document who owns the admin credentials.
- Data mapping: confirm how email, phone, currency, and SKU are mapped between Shopify and Klaviyo.
- Historical import: decide how far back to import orders/customers (avoid importing years of data if you don’t need it).
- Deduplication rules: pick one unique identifier per object (usually email for customers, order ID for orders) to prevent doubles.
- Alerts: set a lightweight alert path (email/Slack) for failed syncs, auth expiry, and API rate limits.
2) Data you should verify after connecting
Most integration issues show up in the first hour if you test the right things. Use the table below as a QA checklist (create a test order if needed).
| Data object | What to check | Why it matters |
|---|---|---|
| Customers | Email/phone format, marketing consent fields, duplicates | Prevents double messaging and broken segmentation |
| Orders | Order total, tax, discount, shipping, currency | Keeps revenue reporting and automation triggers accurate |
| Line items | SKU, variant ID, quantity, refunds/returns behavior | Avoids inventory and attribution mismatches |
| Fulfillment | Status changes + timestamps, tracking numbers, carrier fields | Drives customer notifications and post-purchase flows |
| Catalog | Product titles, handles, images, collections/tags | Ensures personalization and reporting match your storefront |
3) Automation ideas for Marketing
- Welcome series: new subscriber → educational sequence + first-purchase offer in Klaviyo.
- Abandoned cart: cart started but not purchased → reminder email/SMS from Klaviyo (timing based on your AOV).
- Post-purchase: order created → delivery/usage tips + cross-sell for complementary products in Klaviyo.
- Win-back: no purchase in 60–90 days → reactivation campaign using Klaviyo segments.
- VIP: customer hits LTV threshold → move into VIP tier and trigger perks via Klaviyo.
API sanity check (Shopify Admin API)
If your integration UI says “connected” but data isn’t flowing, a quick API call helps confirm whether the store is accessible and returning the objects you expect.
# List the 5 most recent orders (GraphQL)
curl -X POST "https://your-store.myshopify.com/admin/api/2025-01/graphql.json" \
-H "X-Shopify-Access-Token: $SHOPIFY_ADMIN_TOKEN" \
-H "Content-Type: application/json" \
-d "{\"query\":\"{ orders(first: 5, sortKey: CREATED_AT, reverse: true) { edges { node { id name createdAt totalPriceSet { shopMoney { amount currencyCode } } customer { email } } } } }\"}"Tip: keep tokens/keys in environment variables, and test in a staging store/site before rolling changes to production.
4) KPIs to monitor (so you catch problems early)
- Sync freshness: how long it takes for a new order/customer event to appear in Klaviyo.
- Error rate: failed syncs per day (and which object types fail most).
- Duplicates: number of merged/duplicate contacts or orders created by mapping mistakes.
- Revenue parity: weekly spot-check that Shopify totals match downstream reporting (especially after refunds).
- Attribution sanity: confirm that key events (purchase, refund, subscription) are tracked consistently.
5) A simple 30-day optimization plan
- Week 1: connect + map fields, then validate with 5–10 real orders/customers.
- Week 2: enable 1–2 automations and measure baseline KPIs (conversion, AOV, repeat rate).
- Week 3: tighten segmentation/rules (exclude recent buyers, add VIP thresholds, handle edge cases).
- Week 4: document the setup, create an “owner” checklist, and set a recurring monthly audit.