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-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.
coupons:read coupon-codes:read coupon-codes:write
Find it in Klaviyo under Settings → API keys → Create Private API Key. Private keys start with pk_.
Free. Every coupon, with how many unassigned codes remain. Healthy pools stop counting at 1,000+ to keep the scan fast.
Download the pool-health CSV, or top a pool up with freshly generated codes (PREFIX-XXXXXXXX, unambiguous characters, no I/L/O/0/1).
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.
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.
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.
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.