Weekly
Get a weekly flow performance report
Each Monday your flows are ranked by revenue, with recipients and clicks.
- Runs
- Weekly
- Apps
- Klaviyo
- AI
- Not needed
- Access
- read (flows)
Send this to your assistant
Create a ClickRuntime automation: every Monday at 8am, email me each Klaviyo flow's recipients, clicks and revenue for last week, sorted by revenue.
First time? Adding ClickRuntime to your assistant takes about two minutes.
Why use it
Why teams use this automation
Klaviyo flows such as welcome series, abandoned cart and post-purchase run quietly in the background and often account for the biggest share of email revenue. Because they never get a send date or a launch moment, they also get ignored. A cart flow with a broken discount code can underperform for a month before anyone opens the reporting screen, and by then the loss is real money.
Each week, ClickRuntime calls Klaviyo's flow values report, sorts the flows by revenue and emails you a short table showing how each one performed, including revenue and conversion. The same layout arrives every week, so the one flow that fell off is easy to spot.
It suits ecommerce marketers who own retention and want a standing view of their automated programs. The sorted table also keeps meetings focused on what matters.
What you get out of it
A failing flow is caught within a week
If the abandoned cart flow earned $3,000 two weeks ago and $400 last week, the table makes that drop obvious. You can inspect the flow for a broken link or a paused email while the damage is small.
Effort goes to the flows that earn
Sorting by revenue puts your best performers at the top. That tells a small team where an hour of testing a subject line will pay off and where it will not.
Old flows get a reality check
Flows built two years ago may still be sending but earning almost nothing. Seeing their low conversion beside the leaders is the push needed to rewrite or retire them. That conversation is hard to have without numbers in front of you.
Leadership gets a steady summary
Founders and finance partners ask what the automated emails contribute. A weekly email you can forward answers that without anyone pulling a custom report. Nobody has to assemble that answer by hand again.
Seasonal swings are put in context
Black Friday and summer lulls change flow revenue for reasons that have nothing to do with the emails. A weekly series shows the pattern, so you do not blame a flow for something the calendar caused.
How it works
What happens, step by step
Every Monday ClickRuntime asks Klaviyo for last week's results for each of your flows.
It adds up the recipients, clicks and order revenue across every email in each flow.
It ranks the flows by revenue, highest first.
You get one email with a line per flow, such as your abandoned cart flow.
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 clickruntime import on_trigger, credentials, http, notify
API = "https://a.klaviyo.com/api"
PLACED_ORDER_METRIC_ID = "RESQ6t"
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()
body = {"data": {"type": "flow-values-report", "attributes": {
"statistics": ["recipients", "clicks", "conversion_value"],
"timeframe": {"key": "last_week"}, "conversion_metric_id": PLACED_ORDER_METRIC_ID}}}
results = http.post(f"{API}/flow-values-reports", json=body, headers=h).json()["data"]["attributes"]["results"]
totals = {}
for r in results: # results are per flow message; add them up per flow
t = totals.setdefault(r["groupings"]["flow_id"], {"recipients": 0, "clicks": 0, "conversion_value": 0})
for k in t:
t[k] += r["statistics"][k]
lines = []
for flow_id, s in sorted(totals.items(), key=lambda kv: -kv[1]["conversion_value"]):
name = http.get(f"{API}/flows/{flow_id}", headers=h).json()["data"]["attributes"]["name"]
lines.append(f"{name[:30]:<30} {s['recipients']:>6} sent {s['clicks']:>5} clicks ${s['conversion_value']:,.0f}")
notify.email_me("Klaviyo flows last week", "\n".join(lines))
return {"flows": len(lines)}FAQ
Common questions
Which metrics are in the weekly table?
Does it cover flows that are in draft or paused?
Can the email compare this week with the previous 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 warned when your list starts shrinking
You hear about it the day your main list loses profiles or unsubscribes run higher than usual.
See how it worksKeep exploring
Set up “Get a weekly flow performance report” from your assistant
Copy the prompt above, or connect your assistant first. Free plan, no credit card.
