Weekly
Get last week's Campaign Monitor results every Monday
One email each Monday with opens, clicks and unsubscribes for every campaign sent the week before.
- Runs
- Weekly
- Apps
- Campaign Monitor
- AI
- Not needed
- Access
- API key
Send this to your assistant
Create a ClickRuntime automation: every Monday at 9am, email me a table of opens, clicks and unsubscribes for each Campaign Monitor campaign sent last week.
First time? Adding ClickRuntime to your assistant takes about two minutes.
Why use it
Why teams use this automation
A marketing manager who sends campaigns through Campaign Monitor is asked on Monday how the week's emails performed. The numbers are in the dashboard, spread across individual campaign reports, so assembling a summary means opening each one and copying opens, clicks and unsubscribes by hand. It takes half an hour, and under pressure the report is skipped, so a weak subject line is repeated for another month.
Once a week, ClickRuntime lists the campaigns sent for your client account, picks those whose send date falls in the last seven days, fetches the summary statistics for each and emails them together. All the week's campaigns appear in one message, which makes comparisons between them easy.
It is aimed at in-house marketers and agencies that report on email performance to a boss or a client.
What you get out of it
Weak subject lines get noticed quickly
Seeing every campaign's open rate side by side shows which subject lines worked. The team can learn from the weakest one while its wording is still fresh in everybody's mind.
Reports stop eating Monday mornings
The summary arrives without anyone opening campaign pages one by one. That half hour moves to planning the next send, which is a better use of marketing time. Marketers can spend the freed time on testing a new subject line instead of building a report.
Clients receive consistent updates
Agencies can forward the same format each week. Regular, predictable reporting builds trust and answers the question of how the emails did before the client asks it. A campaign that frustrated readers deserves a second look before the next one goes out to everyone.
Unsubscribe spikes are not missed
Unsubscribes sit next to the opens and clicks, so an unusually high figure is easy to see. A campaign that annoyed readers gets a second look before the next one goes out.
A running record of campaign history
Each weekly email is a dated snapshot of what was sent and how it did. Months later, finding the numbers for a seasonal campaign takes one search of your mailbox.
How it works
What happens, step by step
Once a week, ClickRuntime gets the Campaign Monitor campaigns sent in the last 7 days.
For each campaign it fetches the unique opens, clicks and unsubscribes.
You get one email with a table of the results, one row per campaign. If nothing was sent, the email says so.
Before it runs live
- Connect Campaign Monitor
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 Campaign Monitor steps into one automation
Under the hood
The code that runs this automation
from datetime import date, timedelta
from clickruntime import on_trigger, credentials, notify, http
API = "https://api.createsend.com/api/v3.3"
CLIENT_ID = "your-client-id"
@on_trigger
def run(event):
auth = (credentials.secret("CAMPAIGN_MONITOR_API_KEY"), "x")
since = (date.today() - timedelta(days=7)).isoformat()
sent = http.get(f"{API}/clients/{CLIENT_ID}/campaigns.json", auth=auth,
params={"sentFromDate": since, "pageSize": 100}).json()["Results"]
lines = [f"{'Campaign':<34}{'Opens':>7}{'Clicks':>8}{'Unsubs':>8}"]
for c in sent:
s = http.get(f"{API}/campaigns/{c['CampaignID']}/summary.json", auth=auth).json()
lines.append(f"{c['Name'][:33]:<34}{s['UniqueOpened']:>7}{s['Clicks']:>8}{s['Unsubscribed']:>8}")
notify.email_me("Campaign Monitor results, last week",
"\n".join(lines) if sent else "No campaigns sent last week.")
return {"campaigns": len(sent)}FAQ
Common questions
Which campaigns are included?
What statistics does the email contain?
Does it work for more than one client account?
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 yesterday's bounced addresses by email
Each morning you get the addresses that bounced the day before, ready to remove.
See how it worksPost list sign-ups and unsubscribes to Slack
Your team sees each person who joins or leaves your list in Slack as it happens.
See how it worksKnow the moment your website goes down
Your team hears in Slack when the site stops responding or slows down, and again when it's back.
See how it worksKeep exploring
Set up “Get last week's Campaign Monitor results every Monday” from your assistant
Copy the prompt above, or connect your assistant first. Free plan, no credit card.