Daily
Get a recap two days after each campaign
Two days after each send, you see how the campaign compares with your average and a note on what worked.
- Runs
- Daily
- Apps
- Mailchimp
- AI
- Yes, uses the built-in AI allowance
- Access
- read
Send this to your assistant
Create a ClickRuntime automation: 48 hours after each Mailchimp campaign is sent, email me its open and click rates compared with my average, plus a short note on what worked and what didn't.
First time? Adding ClickRuntime to your assistant takes about two minutes.
Why use it
Why teams use this automation
A newsletter goes out on Tuesday, and by Thursday most of the opens and clicks that will ever arrive are already in. Yet a small marketing team is usually busy building the next campaign, so nobody opens the Mailchimp report, compares it to previous sends and writes down what the numbers say. Weeks later the open rate has slipped and no one can say which subject line style started it.
Two days after each campaign is sent, this pulls its report and click details from Mailchimp, compares open rate, click rate and unsubscribes with the averages it has stored from earlier sends, and has ClickRuntime's built-in AI write a short plain-language note on what stood out. The note is emailed to you, and the stored averages are updated.
It suits solo marketers, founders who run their own newsletter and agencies that report to several clients.
What you get out of it
Results read while they still matter
By day two the bulk of engagement is in, so the note reaches you while the next draft is still open. You can change a subject line or send time before repeating a mistake, instead of discovering it a month later.
Every send judged against your own baseline
A 24 percent open rate means nothing alone. Comparing it with your stored averages shows whether the campaign beat your usual result, which is the question a client or boss actually asks.
Click details explain the number
The note draws on which links were clicked, not just totals. You see that the pricing link got the traffic while the blog link was ignored, which tells you what to put first next time.
No report skipped during busy weeks
Because the recap is triggered by the send date, a launch week or a vacation does not leave a gap. Every campaign gets looked at, so trends are never based on only the ones you remembered.
A running record of what worked
Each recap lands in your inbox with the date and campaign name. Searching it later gives you a history of results to justify a change in strategy or to brief a new hire.
How it works
What happens, step by step
Every day, ClickRuntime looks for Mailchimp campaigns that were sent two days ago.
It fetches each one's opens and clicks, including which links were clicked, and compares them with your usual averages.
AI writes a short note on what worked and what did not.
You get an email with the numbers, your averages and the note.
Before it runs live
- Connect Mailchimp
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
- Change what the AI looks for, or how it writes the result
- Add another app, for example also send it to Slack
- Combine it with other Mailchimp steps into one automation
Under the hood
The code that runs this automation
from datetime import datetime, timedelta, timezone
from clickruntime import on_trigger, http, credentials, ai, notify, state
def mailchimp(method, path, **kw):
key = credentials.secret("MAILCHIMP_API_KEY")
r = http.request(method, f"https://{key.split('-')[-1]}.api.mailchimp.com/3.0{path}", auth=("clickruntime", key), **kw)
r.raise_for_status()
return r.json() if r.content else None
@on_trigger
def run(event):
now = datetime.now(timezone.utc)
done = set(state.get("recapped") or [])
sent = mailchimp("GET", "/campaigns", params={"status": "sent", "count": 50, "sort_field": "send_time", "sort_dir": "DESC"})["campaigns"]
reports = {c["id"]: mailchimp("GET", f"/reports/{c['id']}") for c in sent}
avg_open = sum(r["opens"]["open_rate"] for r in reports.values()) / max(len(reports), 1)
avg_click = sum(r["clicks"]["click_rate"] for r in reports.values()) / max(len(reports), 1)
for c in sent:
age = now - datetime.fromisoformat(c["send_time"].replace("Z", "+00:00"))
if c["id"] in done or age < timedelta(hours=48):
continue
r = reports[c["id"]]
links = mailchimp("GET", f"/reports/{c['id']}/click-details", params={"count": 5})["urls_clicked"]
facts = (f"Subject: {c['settings']['subject_line']}\nOpen {r['opens']['open_rate']:.1%} (avg {avg_open:.1%}), "
f"click {r['clicks']['click_rate']:.1%} (avg {avg_click:.1%})\nTop links: {[l['url'] for l in links]}")
note = ai.generate(f"In 3 sentences, what worked and what didn't:\n{facts}", max_output_tokens=200).text
notify.email_me(f"Recap: {c['settings']['subject_line']}", f"{facts}\n\n{note}")
done.add(c["id"])
state.set("recapped", list(done)[-200:])
return {"recapped": len(done)}FAQ
Common questions
What does the recap say about a campaign with very few recipients?
Does it only look at campaigns sent exactly 48 hours ago?
Do I need a paid Mailchimp plan to use this?
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
Get a weekly Mailchimp campaign report
Each Monday you see open rate, click rate and unsubscribes for every campaign sent the week before.
See how it worksGet a morning list of new subscribers
Each morning you see who joined your list in the last day, with names and sign-up source.
See how it worksPost your daily audience numbers to Slack
Each morning Slack shows your audience size and how many people joined and left since yesterday.
See how it worksKeep exploring
Set up “Get a recap two days after each campaign” from your assistant
Copy the prompt above, or connect your assistant first. Free plan, no credit card.