Apple’s MPP Is Breaking Your Klaviyo Sunset Flow

May 4, 2026
by Cherry Rose

Apple commands 49-58% of email opens (Litmus, 2025) — and on those devices, every email gets an “open” on delivery whether the recipient reads it or not. That means your Klaviyo sunset flow — the one supposed to remove dead-weight subscribers every quarter — is keeping iPhone users alive forever. Your win-back flow is firing for people who haven’t actually looked at an email in months. Both run on a signal that hasn’t meant “someone opened your email” since iOS 15 launched in September 2021. Your list hygiene programme is silently broken, and your deliverability is paying for it.

Why Win-Back Triggers Fire for People Who Never Opened Your Emails

Apple Mail Privacy Protection (MPP) does one specific thing, and the entire problem flows from it.

When an email lands in an Apple Mail inbox on iOS 15 or later — and on macOS Mail since Monterey — Apple pre-fetches every image in that email through its proxy servers, regardless of whether the recipient ever opens the message. Klaviyo’s tracking pixel is just an image. Apple’s proxy fetches it, Klaviyo records the fetch as an open, and the engagement signal is generated by Apple’s infrastructure, not by your subscriber.

The scale is no longer a niche concern. Apple Mail accounts for roughly 58% of all email opens globally by early 2025 (Litmus via DataInnovation, 2025), and MPP inflates open rates by 15-35% depending on list composition (DataInnovation, 2025). Klaviyo confirms its own network-wide open rates rose roughly 15% since MPP launched in September 2021 (Klaviyo, 2025). Roughly half your “engaged” subscribers may have never actually opened a single email.

From November 20, 2021 onward, Klaviyo started attaching an Apple Privacy Open property — True or False — to every Opened Email event. That flag is useful for diagnostics. It is not a fix. It just identifies the opens Klaviyo can confidently classify as machine-generated; the rest of your degraded signal stays in the data unflagged.

What This Does to Your Sunset and Win-Back Flows

Sunset flows are designed around a simple rule: if a subscriber doesn’t open or click for some window — usually 60, 90, or 180 days — they get suppressed. The whole point is to remove deadweight before it kills your sender reputation.

With MPP, that rule fails for half your list. Apple Mail users effectively “open” every email on delivery, so the sunset trigger condition never trips. Your suppression list barely grows. Your active list silently fills with subscribers who haven’t read anything in a year, and Gmail’s reputation system notices long before you do.

Win-back flows have the opposite failure mode. They trigger when an “inactive” subscriber suddenly engages again — usually defined as an open after a long quiet period. With MPP, every Apple Mail subscriber reactivates by accident every send. Your win-back flow fires on people who haven’t actually re-engaged at all, then your reporting tells you the win-back is working when it isn’t.

Sunset flows that should be removing 30-50% of inactive subscribers are removing almost nobody on iPhone. Win-back flows that should fire on real reactivations are firing on Apple’s proxy servers. Same broken signal, opposite consequences.

Replenishment, VIP, and re-engagement flows all share the same fault line. Anything that uses Opened Email as a trigger is running on a corrupted input. Klaviyo’s default email attribution window is 5 days for clicks and includes opens (Klaviyo Help Center, 2025) — meaning every ghost MPP open extends revenue attribution to subscribers who didn’t actually engage, which then makes the engagement metrics look healthy on the dashboard.

You may be interested in: Klaviyo vs WooCommerce Revenue: Why They Don’t Match — the attribution side of the same MPP problem.

Why Filtering MPP in Segments Is a Band-Aid

The obvious workaround is to filter Apple Privacy Open opens out of your segment definitions. Klaviyo’s documentation walks you through it. It will not fix your sunset flow.

Two reasons. First, the Apple Privacy Open flag only catches opens Klaviyo can identify as machine-generated — typically Apple Mail on iOS and macOS. Other Apple clients, plus a growing list of mail apps that pre-fetch images for caching or preview, can produce degraded opens that arrive without the flag. You filter what’s labelled, and the unlabelled noise stays in.

Second, even when filtering works perfectly, it doesn’t replace the signal — it just removes it. A subscriber who quietly read every email on their iPhone and now gets all their opens stripped from your data looks identical to a subscriber who hasn’t looked at an email in a year. The sunset flow now treats both the same way: suppress them. Aggressive filtering on a polluted signal turns into mass-removal of perfectly good subscribers.

Stack on top of this that 31.5% of global users run ad blockers (Statista, 2024), which also block Klaviyo’s browser-side tracking pixels — so the click signals you’d hope to fall back on are degraded at the same time MPP is inflating opens. You can’t fix flow logic by filtering one bad signal when the alternative signal is also broken.

The Real Fix: True Engagement Signals from the Store, Not the Inbox

The architectural answer is to stop relying on opens for flow logic at all. Instead, build sunset and win-back flows around real on-site behaviour — page views from email links, product views, add-to-carts, and purchases — and feed those events into Klaviyo as Track API events from your WooCommerce server.

That changes the question from “did the recipient open the email” — which Apple no longer lets you answer — to “did the recipient visit your site, look at a product, or buy something”. Those are events you can measure on your own server, regardless of what happens in their inbox.

A true-engagement sunset flow looks like this: If a subscriber has not visited the store, viewed a product, or made a purchase in 90 days, suppress them. No opens in the equation at all. A Mac Mail user who genuinely browsed your store last week stays active. An iPhone subscriber whose only “opens” came from Apple’s proxy gets removed. The cohort actually matches reality.

Win-back becomes the same shape in reverse: If a previously inactive subscriber returns to the site or views a product, fire the win-back flow. Now the trigger represents a real human action.

Your subscriber didn’t visit your site for 90 days. That’s signal. An “open” from Apple’s server is not.

You may be interested in: Klaviyo Track API for WooCommerce: Custom Events the Plugin Can’t Send — the technical mechanism for feeding Klaviyo true engagement events.

How To Actually Send True Engagement Events to Klaviyo

Transmute Engine™ is a first-party Node.js server that runs on your subdomain (e.g., data.yourstore.com) and subscribes to WooCommerce hooks server-side — page views with email-link UTMs, product views, add-to-carts, purchases — then sends each one as a Track API event to Klaviyo with the matching profile identifier. Because the events fire from your server, not a browser pixel or an inbox image, they’re immune to both MPP pre-fetching and the ad-blockers that strip Klaviyo’s browser pixel. Your sunset and win-back flows get a clean engagement signal Klaviyo’s own help docs recommend but stop short of telling you how to actually generate.

Key Takeaways

  • Apple Mail generates the open, not your subscriber. 49-58% of opens are now Apple’s proxy pre-fetching the tracking pixel on delivery — read or not.
  • Sunset flows quietly stop working on iPhone. The trigger condition (no opens) can’t be met when Apple opens every email automatically; deadweight subscribers stay on your list.
  • Win-back flows fire on ghosts. A “reactivation” that’s really just Apple’s server pre-fetching looks identical to a real one in your data.
  • Filtering Apple Privacy Open is diagnostic, not a fix. It removes some MPP noise but leaves you with no engagement signal for those subscribers, which over-suppresses your real readers.
  • Use server-side click and purchase events instead. Real on-site behaviour sent to Klaviyo’s Track API is immune to MPP and ad-blockers, and it’s the only signal sunset/win-back logic can be safely rebuilt on.

Frequently Asked Questions

Why isn’t my Klaviyo sunset flow removing inactive iPhone subscribers?

Because Apple Mail Privacy Protection generates an “open” event for every email delivered to an Apple Mail user, whether they read it or not. Your sunset flow’s trigger condition (no opens or clicks in X days) is never met for these subscribers — Apple’s servers keep generating opens on their behalf, so the flow keeps them on your list indefinitely.

Is my Klaviyo win-back flow firing on ghost opens from MPP?

Almost certainly, if your win-back trigger relies on Opened Email. MPP pre-fetches images on email delivery, which fires Klaviyo’s tracking pixel as an open. Subscribers who haven’t actually engaged in months can still appear “engaged” to Klaviyo, then quietly trip a win-back trigger or sit just outside one — neither outcome reflects real behaviour.

Can I just filter the Apple Privacy Open property in my Klaviyo segments?

It helps but doesn’t fix the underlying problem. The Apple Privacy Open flag only catches opens Klaviyo can identify as MPP — Mac Mail and other Apple clients can produce degraded but unflagged opens. Filtering removes a polluted signal but leaves you with no engagement data at all for that subscriber, which is why segments built on it tend to over-suppress.

Should I be triggering Klaviyo flows on opens at all in 2026?

Not as a primary signal. Use clicks and on-site behaviour (page views, product views, add-to-carts, purchases) as your engagement spine, and treat opens as a soft secondary signal at best. Server-side events sent to Klaviyo’s Track API are immune to MPP and ad-blockers, which makes them the only reliable input for sunset, win-back, and replenishment flows.

Audit your Klaviyo flows this week: list every flow with Opened Email as a trigger or filter, then check what fraction of your list uses Apple Mail. That fraction is the size of your broken-signal problem — and the gap your sunset flow is quietly leaving on the table. See how Seresa rebuilds Klaviyo engagement on real store behaviour.

Share this post
Related posts