Weekly
Back up your Mailchimp audience every week
A CSV copy of your audience is sent to you every week.
- Runs
- Weekly
- Apps
- Mailchimp
- AI
- Not needed
- Access
- read
Send this to your assistant
Create a ClickRuntime automation: every Sunday at 9pm, export my Mailchimp audience to CSV and email it to me.
First time? Adding ClickRuntime to your assistant takes about two minutes.
Why use it
Why teams use this automation
A Mailchimp audience represents years of work: every signup, every purchase, every tag and the engagement history behind them. Yet it lives in a single account, which can be suspended after a complaint, locked by a security issue or damaged by an accidental bulk delete. Many small businesses have no copy of their list at all, so one wrong click can erase the main asset of their marketing.
Every week, ClickRuntime pages through the members of your Mailchimp audience, builds a CSV with their email addresses, status, names and tags, and emails it to you either as an attachment or as a link. You keep a dated copy of your list outside Mailchimp, without needing to remember to export.
Small business owners, nonprofits and newsletter writers are the typical users.
What you get out of it
A suspended account is survivable
If Mailchimp locks your account, you still have your list and can move to another provider. Without a copy, you may lose contact with all your subscribers. That alone justifies a few minutes of setup.
Accidental deletions can be reversed
A bulk archive or a wrong import can remove thousands of contacts in a click. A weekly backup lets you restore most of them and limits the damage to a few days of changes.
Migration is easier
If you decide to switch platforms, you already have a recent file in the right shape. Mailchimp exports can be slow and awkward when you are in a hurry. That makes any move smoother than it otherwise would be.
Compliance requests are simpler
Questions about whether someone is on your list, or when they unsubscribed, can be answered from the files. That helps when handling data requests under privacy law. That makes audits and requests far less stressful.
Peace of mind for no ongoing effort
The backup arrives in your inbox without you thinking about it. A small chore that most people never get around to is handled every week. Reliable protection is worth more than constant attention.
How it works
What happens, step by step
Once a week, ClickRuntime goes through every contact in your Mailchimp audience.
It builds a CSV with each contact's email, status, name and sign-up date.
You get the CSV by email, so you always have a recent copy of your list.
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
- 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 Mailchimp steps into one automation
Under the hood
The code that runs this automation
import csv, io
from clickruntime import on_trigger, http, credentials, notify
LIST_ID = "AUDIENCE_ID"
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):
members, offset = [], 0
while True:
page = mailchimp("GET", f"/lists/{LIST_ID}/members", params={"count": 1000, "offset": offset,
"fields": "members.email_address,members.status,members.merge_fields,members.timestamp_opt,total_items"})
members += page["members"]
offset += 1000
if offset >= page["total_items"]:
break
out = io.StringIO()
w = csv.writer(out)
w.writerow(["email", "status", "first_name", "last_name", "opted_in"])
for m in members:
w.writerow([m["email_address"], m["status"], m["merge_fields"].get("FNAME", ""), m["merge_fields"].get("LNAME", ""), m["timestamp_opt"]])
notify.email_me(f"Mailchimp backup: {len(members)} contacts", out.getvalue())
return {"contacts": len(members)}FAQ
Common questions
What is in the backup file?
Does it include unsubscribed and cleaned contacts?
What if my audience is very large?
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 “Back up your Mailchimp audience every week” from your assistant
Copy the prompt above, or connect your assistant first. Free plan, no credit card.