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-enteringPaste 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.
segments:read profiles:read profiles:write subscriptions:write
Find it in Klaviyo under Settings → API keys → Create Private API Key. Private keys start with pk_.
Choose the segment that defines who you no longer want to pay for. No segment yet? The recipe below takes two minutes in Klaviyo.
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.
A CSV of everyone about to be suppressed. Suppression is reversible in Klaviyo, but a list in hand beats an apology.
Type SUPPRESS to confirm. They stop receiving email and stop counting as active. History kept; reversible from Klaviyo's Manage Suppressions.
Suppression only: nothing is deleted, no consent record is changed, and Klaviyo keeps all history. Reversible. Not affiliated with Klaviyo.
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.
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.
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.
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.
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.
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.
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.
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.
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.