The 7 mistakes brands make when scaling Klaviyo beyond 100k profiles

Scaling Klaviyo email marketing past 100k profiles? Avoid 7 mistakes that inflate profile costs, hurt deliverability and bury your team in flow sprawl.

The 7 mistakes brands make when scaling Klaviyo beyond 100k profiles
Share:

Somewhere around 100,000 profiles, a Klaviyo account changes character. Nothing breaks on the day you cross the line. But habits that were fine at 20k start costing real money, and the account gets a little harder to reason about every month.

I see the same pattern in a lot of Klaviyo email marketing programs at this stage. The team is busy, email revenue looks healthy, and underneath there's a growing pile of dead profiles, overlapping flows, and segments nobody fully trusts.

None of the seven mistakes below is exotic. That's the problem. Each one looks harmless on its own, so nobody stops to fix it.

1. Treating every profile as an asset

At small scale, a bigger list feels like progress. Past 100k, it's also a bill.

Klaviyo prices on active profiles, meaning any profile that can be emailed, whether it opted in or just left an address at checkout. Suppressed profiles don't count. Klaviyo's billing docs are explicit about this, and about the other half: if your active count is over your plan at the end of the billing cycle, you get moved up a tier automatically.

So every profile that hasn't opened, clicked, browsed, or bought in a very long time is something you pay for each month. It also drags your engagement rates down, which matters for mistake two.

Decide what "dead" means for your brand and review that segment monthly. Klaviyo's prebuilt Sunset (Email) segment starts with profiles that can receive email marketing, were created at least 180 days ago, and received at least five emails in the last 72 weeks. They must have no recorded opens, clicks, site activity, product views, checkout starts, or orders over all time. Adjust the criteria to your purchase cycle and check that tracking is working.

Hypothetical example: an account has 120,000 active profiles. After checking tracking and purchase history, the team identifies 20,000 for suppression under its agreed inactivity policy. Suppressing those profiles leaves 100,000 active, assuming no other changes. That may qualify the account for a lower plan, but the team must check billing and select an eligible tier; suppression alone does not guarantee a cheaper bill.

2. Sunsetting too late, or never

Mistake one is about cost. This one is about reputation.

Most brands at this size have some kind of engaged segment. Far fewer have a working sunset process. Unengaged profiles keep getting the occasional "send to everyone" blast before a big sale, and each of those sends tells inbox providers that your mail isn't wanted.

A setup that holds up has two parts. First, engagement tiers you actually choose between, something like 30, 60, 90, and 180-day engaged, with the wider tiers used on purpose rather than by default. Second, a sunset flow triggered by your inactivity segment: one to three last-chance emails, then suppression for anyone who stays silent.

Klaviyo's sunset flow guide walks through the build. Two details catch people out. A flow can't suppress profiles by itself, so you need a tagging step plus a recurring "suppress current members" routine on the resulting segment. And segment-triggered flows only fire for people who join the segment after the flow is live, so the first time you'll need to add past profiles manually.

Don't over-correct, though. Suppress too early and you lose people who would have bought again. Set the windows from how often your customers actually reorder, not from a blog post (including this one).

The takeaway: a sunset flow is a deliverability tool first and a win-back tool second.

3. Leaving deliverability on autopilot

Bulk-sender rules depend on sending volume, not the number of profiles stored in Klaviyo. Google uses roughly 5,000 messages to personal Gmail accounts in a day as its threshold. A smaller list can qualify; 100k stored profiles alone proves nothing. Check each provider's requirements, including Yahoo's, and meet the applicable authentication, one-click unsubscribe, and spam complaint standards.

The first thing I check is the branded sending domain, also called a dedicated sending domain. It gives you control over your sending-domain identity, but it is not a dedicated IP: you can still send through shared IPs. Klaviyo supports separate branded domains for marketing, transactional, and service email. The setup guide covers the DNS steps. Separating traffic helps reduce the risk that a poor marketing campaign affects order confirmations or support replies.

After that, read deliverability by inbox provider instead of trusting account-wide averages. A decent overall open rate can hide a Gmail problem for weeks.

What this means: at this size, deliverability is a weekly check, not a one-time setup task.

4. Letting flows multiply

Flow sprawl happens quietly. A second welcome flow for a pop-up test. An abandoned cart rebuilt by a new agency while the old one kept running. A seasonal browse flow nobody switched off in January. Each one made sense when it was built.

At 100k+ the result is profiles entering several flows from one action, Smart Sending skipping messages you assumed were going out, and nobody being sure which post-purchase flow is the real one.

Once a quarter, list every live flow with its trigger, flow filters, last edit date, and revenue per recipient. Look for shared triggers and missing exclusions, like recent buyers still getting browse abandonment or new customers stuck in a prospect welcome series. Switch off what doesn't earn its place. If you're not sure, set it to draft or manual rather than deleting it.

My test: if nobody can explain why two live flows share a trigger, one of them should go back to draft.

5. Building segments without a system

At 20k profiles, one person builds most segments and remembers what each one does. At 100k+, there are more people, more markets, and often an agency or two. Segments called "VIP new", "VIP FINAL" and "test do not use" start showing up in campaign audiences.

Two habits help most. The first is a naming convention that tells you the audience type, the logic, and the market at a glance, for example ENG | 90d engaged | FR or CUST | 2+ orders | 365d. Add the owner in the description if your team is large. The second is a short list of core segments that campaigns are allowed to target, reviewed whenever the product mix or traffic sources change. Everything else gets archived or clearly marked as temporary.

If you want a backbone for value-based segments, RFM works well in Klaviyo and gives everyone the same vocabulary.

Put simply: if nobody can explain a segment, nobody should send to it.

6. Reporting on attributed revenue and little else

Klaviyo email marketing revenue is the number everyone watches, and at scale it becomes the number everyone argues about. Attribution window, conversion metric, whether opens should count at all now that Apple Mail Privacy Protection inflates them: each choice moves the figure, and different people quietly use different settings.

Two things go wrong from there. Leadership compares Klaviyo's figure with Shopify or Google Analytics, sees a gap, and stops trusting email reporting. And the team keeps chasing attributed revenue from big sends to wide audiences, which makes mistakes one to three worse.

Fix the definitions first. Pick one attribution setting, write it down, and use it in every report. I went through reconciling the numbers in why your Klaviyo revenue doesn't match Google Analytics. Then add a few health metrics next to revenue: revenue per recipient, list growth net of suppressions, spam complaints, and flow entry volume.

The rule: a revenue number you can't reconcile shouldn't drive decisions.

7. Running the account from memory

This last one ties the others together. Past 100k profiles, the account is too big for one person's head, but it's often still run as if it weren't. Changes go live without a log. Nobody clearly owns deliverability. The quarterly cleanup happens "when there's time", and there's never time in Q4.

What works is unglamorous: one named owner per area (flows, segments, deliverability, reporting), a simple change log, and a fixed weekly review that ends with decisions rather than nods. I wrote about this in more depth in why every serious Klaviyo account needs an audit layer. The short version is that problems at this size rarely arrive as one big failure. They pile up over weeks while the dashboard still looks fine.

In short: scale needs a routine, not heroics.

Where to start this week

You don't need to fix all seven at once. With one week and a few hours, I'd do this:

  1. Compare your active profile count with your plan limit, and build a dead-profile segment.
  2. Check that your branded sending domain is live, and whether transactional email has its own.
  3. List every live flow and flag the shared triggers.
  4. Write down the one attribution setting everyone should report with.

That's not much work, and it usually shows you where the biggest leak is.

If you want a quicker first pass, this is the kind of review SPARKCRM's Audit Score runs: 30 checks across flows, deliverability, data, campaigns, audience, forms, and content, each with the evidence behind it and a next step. It connects to Klaviyo read-only, and the free plan covers one account. Run it before your Q4 sends go out. You still make the calls; it just makes it easier to see which one to make first.

Found this article helpful? Share it with others!

Share:

About the Author

Olivier Alcouffe

Olivier Alcouffe

Founder of SPARK CRM. Olivier has managed CRM for dozens of e-commerce brands and builds tools for the freelancers and agencies who run Klaviyo.