Daily
Get warned when your list starts shrinking
You hear about it the day your main list loses profiles or unsubscribes run higher than usual.
- Runs
- Daily
- Apps
- Klaviyo
- AI
- Not needed
- Access
- read (lists, metrics)
Send this to your assistant
Create a ClickRuntime automation: every day at 7am, check my Klaviyo 'Newsletter' list and email me if the profile count dropped or unsubscribes are more than double the usual daily number.
First time? Adding ClickRuntime to your assistant takes about two minutes.
Why use it
Why teams use this automation
A Klaviyo list is an asset that quietly loses value. People unsubscribe, addresses bounce, and a badly timed campaign can lose a hundred subscribers in a day. A marketer who sends to the list most weeks will notice only when open rates have sagged for a month, by which point the causes, a purchased list or an over-aggressive send frequency, are hard to untangle.
Every day, ClickRuntime reads the current profile count for the list, compares it with the number it stored the day before, and looks at how many Unsubscribed events Klaviyo recorded over the same time. If the list has shrunk or unsubscribes pass the threshold you set, you receive an alert; on a normal day it stays quiet.
It is helpful for any brand that sends often and wants an early warning when a campaign does harm.
What you get out of it
A harmful send is spotted the next day
If Thursday's blast cost 400 subscribers, you learn about it on Friday and can pause a follow-up that would have repeated the mistake. Waiting for monthly reports lets the damage compound.
Sender reputation is protected
Spikes in unsubscribes and spam complaints can push your messages toward the spam folder. Catching a spike quickly gives you room to slow down and clean up before inbox providers react.
Shrinking lists stop being a surprise
A list that loses a few profiles a day feels harmless until it adds up. A daily comparison shows the slow leak, so you can address its cause, such as a signup form that stopped working.
Tests have measurable consequences
When you try a new send time or frequency, the alert tells you whether it cost subscribers. That evidence beats a hunch when you decide whether to keep the change.
Silence on normal days saves attention
The alert only fires when something is off, so the team does not learn to ignore it. A message that appears rarely is a message that gets read and acted on.
How it works
What happens, step by step
Every day ClickRuntime checks how many profiles are on your main Klaviyo list, such as your newsletter.
It compares that with yesterday's count, which it saved from the last run.
It also compares yesterday's unsubscribes with your usual daily number over the past month.
If the list shrank or unsubscribes were more than double the usual, you get an email saying exactly what changed.
Before it runs live
- Connect Klaviyo
What you get
Build your own
Need it to work differently?
Your own rules
Conditions, thresholds, filters and exceptions, written the way you'd explain them to a colleague.
Any number of apps
One automation can read from one app and update several others. Over 248 apps are ready, and anything with an API works too.
AI where it helps
Summaries, classification, extraction and drafts use ClickRuntime's built-in AI, with no extra key.
On a schedule or on each event
Runs as often as every 5 minutes, or the moment an app sends an event, and keeps track of what it already handled.
Changes you can ask for
- Run it at a different time, more or less often, or only on weekdays
- Add an AI step, for example to summarize, sort or draft a reply
- Add another app, for example also send it to Slack
- Combine it with other Klaviyo steps into one automation
Under the hood
The code that runs this automation
from datetime import date, timedelta
from clickruntime import on_trigger, credentials, http, state, notify
API = "https://a.klaviyo.com/api"
NEWSLETTER_LIST_ID = "Xy12Ab"
UNSUB_METRIC_ID = "UnS8bz"
def klaviyo():
return {"Authorization": f"Klaviyo-API-Key {credentials.secret('KLAVIYO_API_KEY')}",
"revision": "2024-10-15", "accept": "application/vnd.api+json", "content-type": "application/vnd.api+json"}
@on_trigger
def run(event):
h = klaviyo()
count = http.get(f"{API}/lists/{NEWSLETTER_LIST_ID}", params={"additional-fields[list]": "profile_count"},
headers=h).json()["data"]["attributes"]["profile_count"]
start = date.today() - timedelta(days=29)
body = {"data": {"type": "metric-aggregate", "attributes": {
"metric_id": UNSUB_METRIC_ID, "measurements": ["count"], "interval": "day", "timezone": "UTC",
"filter": [f"greater-or-equal(datetime,{start}T00:00:00)", f"less-than(datetime,{date.today()}T00:00:00)"]}}}
daily = http.post(f"{API}/metric-aggregates", json=body, headers=h).json()["data"]["attributes"]["data"][0]["measurements"]["count"]
usual, yday = sum(daily[:-1]) / max(len(daily) - 1, 1), daily[-1]
previous = state.get("profile_count")
problems = []
if previous and count < previous:
problems.append(f"Profile count dropped from {previous:,} to {count:,}")
if usual and yday > 2 * usual:
problems.append(f"{yday:.0f} unsubscribes yesterday vs about {usual:.0f} a day usually")
if problems:
notify.email_me("Klaviyo Newsletter list needs a look", "\n".join(problems))
state.set("profile_count", count)
return {"profile_count": count, "unsubs": yday}FAQ
Common questions
What threshold should I use for unsubscribes?
How does it detect that the list shrank?
Does it watch all my lists or only one?
What permissions does it need?
Does it need AI?
How many runs does it use?
Can I change how it works?
Related
You might also like
Post yesterday's Klaviyo revenue to Slack
Each morning Slack shows the revenue Klaviyo attributed to campaigns and flows yesterday, compared with the day before.
See how it worksGet a weekly Klaviyo campaign report
Every Monday you see open rate, click rate and revenue for each campaign sent last week.
See how it worksGet a weekly flow performance report
Each Monday your flows are ranked by revenue, with recipients and clicks.
See how it worksKeep exploring
Set up “Get warned when your list starts shrinking” from your assistant
Copy the prompt above, or connect your assistant first. Free plan, no credit card.
