← all tools / klaviyo

Your coupon pool ran dry and nobody told you

When a coupon runs out of unique codes, Klaviyo flows silently skip the coupon email and nobody tells you; customers do. This scans every coupon, counts how many unassigned codes are actually left, flags pools running low or empty, and refills a pool with freshly generated codes in one run.

⚷ 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
coupons:read coupon-codes:read coupon-codes:write
It cannot touch your profiles, lists, campaigns, or billing. 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

Scan your pools

Free. Every coupon, with how many unassigned codes remain. Healthy pools stop counting at 1,000+ to keep the scan fast.

3

Export or refill

Download the pool-health CSV, or top a pool up with freshly generated codes (PREFIX-XXXXXXXX, unambiguous characters, no I/L/O/0/1).

0 submitted

The scan is read-only. Refill only ever ADDS codes to the coupon you pick; it never edits, expires, or deletes existing codes. Klaviyo processes code-creation jobs in the background (up to a few minutes for big refills). Not affiliated with Klaviyo.

What this actually does

When a coupon runs out of unique codes, Klaviyo flows silently skip the coupon email; customers find out before you do. This scans every coupon, counts how many unassigned codes are really left, flags pools running low or empty, and refills a pool with freshly generated codes in one run.

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.

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.

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: coupons, codes, pool, refill, flows, discount, klaviyo.

K All Klaviyo guides8 guides · setup, steps, gotchas