Before you redesign a flow, add SMS, or change your sending schedule, you need to know what you're working with. Most Klaviyo accounts I take over are generating some email revenue, but they're also sitting on a handful of structural problems that are quietly limiting how much is possible.
This is the checklist I run through when I start with a new client. It takes about 90 minutes if you move efficiently. At the end of it, you'll know exactly what needs to be fixed before you do anything else.
1. Sending domain and DMARC setup
Go to Settings → Email → Sending Domains in Klaviyo. You should see a dedicated sending subdomain — something like em.yourbrand.com — not Klaviyo's default shared domain. If you're sending from a shared domain, you're sharing sender reputation with every other brand on it. That's a deliverability liability.
Then check your DMARC policy. Go to your DNS provider and look for a TXT record at _dmarc.yourdomain.com. It should exist and ideally be set to at least p=quarantine. No DMARC record means your domain is vulnerable to spoofing, and some inbox providers (especially Google and Microsoft) will rate you lower for it.
2. List health and suppression rate
Go to Audience → Lists & Segments, select your main list, and check the subscriber count. Then go to Audience → Profiles, filter by Suppressed, and note how many suppressed profiles you have. Calculate the suppression rate: suppressed ÷ (subscribed + suppressed).
A suppression rate above 25% is a signal that something is wrong — either you've never cleaned the list, you had a bad import at some point, or your unsubscribe rate has been high for a while and no one noticed. Either way, it needs addressing before you scale spend on list growth.
Also check your unengaged contacts: profiles who have not opened or clicked a single email in 180+ days. In most accounts I see, this is 20–40% of the list. This group is actively harming deliverability for your engaged subscribers.
3. Deliverability benchmarks
In Analytics → Deliverability, look at the last 90 days across all campaigns. What you're looking for:
- Open rate: below 20% on a reasonably engaged list is a warning. Below 15% needs immediate attention.
- Spam complaint rate: anything above 0.1% will eventually get your account flagged. Google's 2024 sender requirements make this especially important for high-volume senders.
- Bounce rate: soft bounces above 3% or any hard bounces above 0.5% per campaign suggest list quality issues.
If your open rates look fine but your revenue per email sent is low, the issue is usually segmentation or content, not deliverability. If your open rates are declining over time, the issue is almost always the unengaged contacts diluting your sender score.
4. Flow inventory
Go to Flows, sort by revenue over the last 90 days, and note what's running and what's not. Most accounts are missing at least two high-impact flows. The ones that should exist in every DTC account:
- Welcome series (3–5 emails)
- Abandoned cart (3–5 emails)
- Browse abandonment (1–2 emails)
- Post-purchase / onboarding (3 emails minimum)
- Replenishment reminder (if product is consumable)
- Win-back / sunset
Mark each as: Live and healthy, Live but underperforming, or Missing. Underperforming means revenue per recipient is significantly below the account average for that flow type. For reference: a well-built welcome series should generate £8–20 revenue per recipient depending on AOV; abandoned cart should generate £12–35.
5. Flow filters and trigger conditions
Open each live flow and check the trigger filters. The most common problem I find is flows with no filter at all — meaning contacts can enter the flow an unlimited number of times, or suppressed/unsubscribed contacts are entering. Check specifically:
- Does the abandoned cart flow have a filter to exclude contacts who placed an order while in the flow?
- Does the welcome series have a max-entry-per-profile rule?
- Are any flows missing a "is not suppressed" or consent check?
Also check the smart sending setting on each flow email. Smart sending prevents a contact from receiving more than one flow email per 16 hours. In most flows this should be on — but for time-sensitive abandonment emails (the 1-hour cart reminder), it should be off.
6. Campaign history and sending cadence
In Campaigns, filter by the last 12 months and look at the sending frequency. How many campaigns per week on average? To what segment? What was the subject line formula?
The most common problem is no consistent cadence — bursts of campaigns before sales, then silence, then another burst. This trains inbox providers to treat your domain as a bulk sender, which it is during bursts, and deprioritises your mail the rest of the time.
Also check if campaigns were sent to the full list or to segments. If you see campaign after campaign going to "All Subscribers", that's a major segmentation gap. It also means you've likely been sending to unengaged contacts for months, which compounds the deliverability problem.
7. Signup forms and consent collection
Go to Sign-Up Forms, look at all live forms. Check:
- Is there explicit consent language on every form? Post-GDPR this is non-negotiable for UK and EU brands, and for any brand sending to EU recipients regardless of where they're based.
- Are popup forms using exit-intent, time-delay, or scroll-based triggers? (These perform better than immediate popups and annoy visitors less.)
- Is there a "You're subscribed" confirmation page that actually looks branded, or does it default to a Klaviyo generic page?
Also pull the last 90 days of form submissions and look at the submit rate. A well-configured popup with a strong offer should convert 3–6% of traffic. Below 2% usually means the offer is weak, the design is bad, or the timing is off.
8. Integration health
In Settings → Integrations, check that your Shopify or WooCommerce connection shows as Active with no sync errors. Then specifically verify:
- Are orders syncing? Go to Analytics → Metrics and check that "Placed Order" has recent activity.
- Are customer properties passing correctly? Check a recent buyer profile and confirm LTV, order count, and last purchase date are all populated.
- Are product catalogue items syncing? This is required for dynamic product blocks in emails.
Integration failures are silent. There's no alarm when Klaviyo stops receiving events — you just slowly lose flow triggers and personalisation data, and the revenue impact takes weeks to surface.
9. Revenue attribution model
This one is easy to miss. In Settings → Account → Analytics, check what attribution window Klaviyo is using. The default is 5-day click + 1-day open. If it's been changed to 14-day or 30-day, your revenue numbers will look significantly inflated compared to reality — and compared to any other reporting you run against the same period.
There is no universally correct attribution window, but it should be consistent and documented. If you change it, you need to know that all historical data in Klaviyo will not retroactively update.
Once you've run through all nine checks, you'll have a prioritised list of what to fix first. In my experience, the order of priority is almost always: deliverability issues first, missing flows second, segmentation third, content and design last. Fixing content on a broken foundation achieves very little.
If you want a professional second opinion on what's happening in your account, a Klaviyo audit is the cleanest starting point.