← all tools / klaviyo

Dormant profiles don't bounce. Klaviyo keeps billing you.

Hard bounces and unsubscribes drop off your bill automatically. Dormant profiles never do: they sit there, valid but silent, holding you in a higher active-profile tier every single month. That's recurring waste. The audit is free: pick your unengaged segment and see exactly how many you're paying for and the tier boundary you'd drop below. Then back everyone up and suppress in one run. Suppression, not deletion: history kept, reversible, and it's the thing that actually cuts the bill.

⚷ your API key is used in-memory for this run and never reaches our servers · save it in Settings to skip re-entering
1

Connect Klaviyo

Paste a private API key. It's used only for this run and never stored on our servers. Save it in Settings if you would rather not re-enter it every run. Save it in Settings if you would rather not re-enter it every run.

This button only needs
segments:read profiles:read profiles:write subscriptions:write
It cannot touch your campaigns, templates, flows, or billing settings. Create a key with exactly these scopes (opens Klaviyo with them pre-filled), copy it, paste it here.

Find it in Klaviyo under Settings → API keys → Create Private API Key. Private keys start with pk_.

2

Pick your unengaged segment & audit

Choose the segment that defines who you no longer want to pay for. No segment yet? The recipe below takes two minutes in Klaviyo.

Timing matters. Klaviyo counts active profiles at your billing date. Suppress before that date or you pay for them one more cycle. Tier boundaries shown here are approximate; the exact price is on your Klaviyo billing page. Also: Klaviyo blocks re-suppressing anyone who was unsuppressed in the last 90 days; those show up as failed and that's Klaviyo's rule, not a glitch.
No unengaged segment yet? The 2-minute recipe

In Klaviyo: Audience → Lists & segments → Create segment. Conditions (AND): Opened Email zero times in the last 180 days, AND Clicked Email zero times in the last 180 days, AND was added to your main list more than 180 days ago. Adjust 180 to taste (90 aggressive, 365 conservative). Save, let it populate, come back and pick it here.

3

Back up first (recommended)

A CSV of everyone about to be suppressed. Suppression is reversible in Klaviyo, but a list in hand beats an apology.

4

Suppress

Type SUPPRESS to confirm. They stop receiving email and stop counting as active. History kept; reversible from Klaviyo's Manage Suppressions.

0 processed

Suppression only: nothing is deleted, no consent record is changed, and Klaviyo keeps all history. Reversible. Not affiliated with Klaviyo.

What this actually does

Hard bounces and unsubscribes auto-drop from your bill. Dormant profiles don't: valid but silent, they hold you in a higher tier every month. The audit is FREE: see how many you're paying for and the tier boundary you'd drop below. Then back everyone up to CSV and suppress the whole segment in one run. Suppression, not deletion: history kept, reversible, and it's the thing that actually cuts the bill.

It runs on your own Klaviyo data, in your browser session, against Klaviyo's official API. There is no middle layer holding your records and there is no migration to anywhere. You run it, you get the result, you carry on with your day.

Where the file goes next

It is a CSV, which is the point. Klaviyo will happily show you the numbers on a screen you cannot do anything with. This gives you the file, and the file goes wherever you need it.

The column names stay the same run to run, so if you build a Power BI report or a Sheets formula on top of it, re-running next month will not break what you built.

What it will not do

It will not touch anything you did not ask it to. It does not store your API key, it does not keep a copy of your data, and where an action cannot be reversed you get told that before you press the button, not after.

Questions people actually ask

Does this store my Klaviyo API key?

No. The key is held in memory for the length of the run and is gone when the tab closes. It is never written to our database and never appears in a log. You can revoke it in Klaviyo the moment you are done and nothing here breaks.

What can I do with the file afterwards?

It is a plain CSV, so anything that reads a CSV will read it. Open it in Excel or Google Sheets, pull it into Power BI or Looker Studio, or load it into a warehouse table. The headers are clean and they do not change between runs, so a scheduled refresh will not break on you.

How big a job can it handle?

It streams the results as they arrive rather than holding everything in memory, and it respects Klaviyo's rate limits instead of hammering the API. Large accounts take longer, but they finish.

Can I see what it will do before it does it?

Yes, and you should. Every run starts with a preview of the exact records involved, and a CSV backup you can keep. Nothing is written until you say so.

Is it reversible?

Read the tool's own note above, because it differs by action. Where a change cannot be undone we say so plainly on the button itself rather than in the small print.

Why is this not just a feature in Klaviyo?

That is the whole question, and we do not have a good answer either. It is a gap that has been open for years, it is on the forums, and it never gets shipped. So we shipped it.

Related: billing, cost, savings, suppress, unengaged, active profiles, tier, klaviyo.

K All Klaviyo guides8 guides · setup, steps, gotchas