Segmentation and personalization are the easiest ways to make your Klaviyo emails feel “1:1” without sending more campaigns. This guide assumes your integration is already connected. If not, start here: Klaviyo Shopify integration setup. For flow templates, see: Klaviyo Shopify email flows.
Klaviyo: Email Marketing & SMS
What Data You Can Segment On
With Shopify connected, you can segment by:
- Purchase behavior (order count, AOV, product/category purchased)
- Engagement (opened/clicked in last X days)
- Intent (viewed product, added to cart) if onsite tracking is enabled
Core Segments to Create (Simple First)
| Segment | Definition (starting point) | Use for |
|---|---|---|
| Engaged | Opened or clicked in last 90 days | Main campaigns |
| VIP | 3+ orders or high LTV | Early access, bundles |
| At-risk | Engaged before, inactive 60-90 days | Win-back |
| New customers | First order in last 30 days | Onboarding, education |
Tip: Keep segments broad until you have enough volume to test (otherwise reporting gets noisy).
More Segment Ideas (Once the Basics Work)
These are common Shopify segments that are easy to build and usually useful:
| Segment | Starting definition | Good for |
|---|---|---|
| Repeat customers | Placed Order count >= 2 | Loyalty, bundles, referrals |
| High AOV | Average order value above your store average | Premium drops, upsells |
| Discount shoppers | Used a discount code in last 180 days | Promo targeting (careful with margins) |
| Category affinity | Purchased (or viewed) from a key category | Category campaigns, product education |
| Recent purchasers | Placed Order in last 7-14 days | Exclusions (avoid blasting new buyers) |
| Win-back eligible | No order in 60-90 days (was engaged before) | Win-back flows and surveys |
You do not need 20 segments to start. A handful of well-sized segments beats a long list of tiny segments that never get enough data.
How to Build a Segment (Practical Steps)
When you create a segment in Klaviyo, your goal is to define who and when:
- Start with one core condition (e.g., “Placed Order at least once”).
- Add a timeframe when it matters (e.g., last 30/60/90 days).
- Add one exclusion to keep targeting clean (e.g., exclude recent purchasers from promos).
- Check segment size before you ship a campaign (if it’s too small, results are noisy).
- Name it clearly so future you understands it (“Engaged 90d - Email”).
If you’re unsure which timeframe to use, default to 90 days for engagement segments and 60-90 days for at-risk segments, then adjust after you see your purchase cycle.
Intent Segments (Browse/Cart) for Faster Wins
If onsite tracking is enabled, intent segments can make campaigns feel dramatically more relevant:
| Intent segment | Starting definition | Example use |
|---|---|---|
| Browsers | Viewed Product in last 7 days, no checkout started | “Continue where you left off” + alternatives |
| Carted | Added to Cart in last 3 days, no order | Cart reminder campaign (if flow isn’t enough) |
| Checkout starters | Checkout Started in last 2 days, no order | Support/FAQ message (shipping, returns, sizing) |
| Category interest | Viewed products in Category X 2+ times | Category drop, new arrivals in that category |
Treat intent segments as “high signal” audiences. Keep frequency low and messaging highly contextual.
Predictive / High-Intent Segments (When You’re Ready)
Klaviyo includes predictive properties for some accounts. Here are practical examples you can model:
High churn risk:
- Predicted churn risk: High
- Has placed order
Action: Win-back series with a strong reason to return
High CLV potential:
- Predicted CLV: High
- Order count: 1-2
Action: VIP-style education + curated recommendations
Segmentation That Improves Deliverability (Not Just Revenue)
Segmentation isn’t only about conversions. It also protects your sender reputation:
- Send most campaigns to Engaged subscribers (opened or clicked recently).
- Gradually re-introduce less engaged subscribers via a re-engagement series.
- Suppress people who never engage to reduce spam complaints and bounces.
This is one of the easiest ways to keep open rates stable as your list grows.
RFM-Lite (A Simple Customer Value Framework)
You don’t need a complicated model to do RFM-style targeting. Start with three simple signals:
- Recency: How recently they purchased (0-30, 31-90, 90+ days)
- Frequency: How many orders they have (1, 2-3, 4+)
- Monetary: How much they spend (above/below your store average)
From those, you can create practical segments:
| Segment | Simple rule | Message angle |
|---|---|---|
| New buyers | First order in last 30 days | Onboarding, tips, second-purchase offer |
| Loyal | 3+ orders | Bundles, early access, referrals |
| Big spenders | LTV above average | Premium drops, concierge tone |
| At-risk | No order in 60-90 days | “What’s new” + social proof |
Even this lightweight approach usually outperforms “send the same newsletter to everyone.”
Personalization Building Blocks
Dynamic product recommendations (template block)
{% catalog product_feed %}
{% for product in products %}
<a href="{{ product.url }}">
<img src="{{ product.image }}" />
{{ product.title }} - {{ product.price }}
</a>
{% endfor %}
{% endcatalog %}
Use this for: recently viewed, best sellers, and related items.
Conditional content (VIP vs first-time)
{% if person.Placed Order|count > 3 %}
VIP early access: new drops, limited bundles, concierge support
{% else %}
Start here: best sellers, reviews, and first-order incentive (optional)
{% endif %}
Personalization Map (Segment -> Message)
Use this table as a quick playbook:
| Segment | What they care about | Personalization to use | CTA |
|---|---|---|---|
| New customers | Confidence and clarity | Best sellers + reviews + guarantee | “Shop best sellers” |
| VIP | Exclusivity | Early access + limited bundles | “Get early access” |
| At-risk | Reason to return | New arrivals + UGC + light incentive | “See what’s new” |
| High AOV | Premium value | Higher-end collections + bundles | “Explore premium” |
| Discount shoppers | Deals | Promo-only campaigns (limit frequency) | “Redeem offer” |
Safe Personalization (Avoid Broken Emails)
Two rules prevent most personalization mistakes:
- Always include a fallback (if you don’t have first name, show a generic greeting).
- Don’t over-personalize early (use broad relevance like category affinity before deep predictions).
Example fallback greeting:
{% if person.first_name %}
Hi {{ person.first_name }},
{% else %}
Hi there,
{% endif %}
Measuring Segment Performance
When you look at results, compare segments on the same campaign type:
- Open rate: subject line + deliverability signal
- Click rate: relevance and offer signal
- Conversion / revenue: landing page + offer + audience fit
- Unsubscribes: frequency and mismatch signal
If a segment has strong clicks but weak conversion, the email is doing its job and your product page or offer likely needs work.
Common Mistakes (Quick Fixes)
- Micro-segments too early: If a segment has only a few dozen people, results swing wildly. Broaden it until you have volume.
- No exclusions: Exclude recent purchasers from promos and exclude unengaged subscribers from most campaigns.
- Personalization without fallbacks: Always add default text and backup product blocks so emails don’t look broken.
- Mixing intent levels: Don’t send the same message to browsers and purchasers. Match the CTA to the intent.
- Changing definitions constantly: Keep segment definitions stable for a few weeks so you can compare performance.
If you’re unsure where to start, build Engaged + VIP first, then iterate. This keeps reporting simple and improvements easy to measure.
Quick QA Checklist
- Segments have enough people to test (avoid micro-segments early)
- Browse-based segments only run if onsite tracking is verified
- Exclusions are in place (recent purchasers, unengaged, etc.)
- Every email has one primary CTA and matches the segment intent
- Dynamic blocks have fallbacks (no broken greetings or empty product blocks)
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.