Skip to content

Daily

See who unsubscribed yesterday

Each morning one email lists the contacts who unsubscribed the day before.

Runs
Daily
Apps
Constant Contact
AI
Not needed
Access
contact_data

Send this to your assistant

Create a ClickRuntime automation: every morning at 8am, email me the name and email of everyone who unsubscribed from Constant Contact yesterday.

Paste it into your assistant. It tells you what it will send or change before it runs live.

First time? Adding ClickRuntime to your assistant takes about two minutes.

Why use it

Why teams use this automation

Every email marketer knows the sinking feeling of an unsubscribe spike, but few notice it the day it happens. A newsletter goes out on Tuesday, a hundred people leave on Wednesday, and the list owner only sees the damage when the monthly report shows the list is smaller. By then the next two sends have gone out with the same problem.

Each morning, this asks Constant Contact for the contacts whose status is unsubscribed and who were updated since yesterday, then emails you that list. You know exactly who opted out in the last day, and you can connect the drop to the campaign that preceded it.

Small business owners, nonprofits and marketing coordinators who send regular campaigns use it to keep a close eye on list health without logging in each day. The list comes from the contact records in Constant Contact, so it names real people and their status, and nobody has to export and compare lists by hand every morning.

What you get out of it

  • Link unsubscribes to the campaign that caused them

    A morning list lets you match a spike to yesterday's send. You can see which subject line or offer lost people while the next campaign is still in draft and can be adjusted.

  • Honor opt-outs in your other systems

    If a customer unsubscribes from marketing, your CRM and any other mailing tools should respect it. A daily list gives you the names to update in places Constant Contact cannot reach. If a customer opts out of marketing, your CRM and other tools should respect it, and the daily list gives you names to update.

  • Spot list-health problems early

    A sudden rise in unsubscribes can mean over-mailing or a badly targeted segment. Seeing it within a day lets you pause before reputation and deliverability suffer. A sudden rise in unsubscribes can signal over-mailing, and a one-day lag lets you pause before deliverability suffers.

  • Follow up where it makes sense

    For high-value customers, a polite personal note asking why they left can win them back or give feedback. That only works if you learn of the unsubscribe promptly. A gentle personal note to a high-value customer who left can win them back, but only if you learn of it promptly.

  • Keep a clean record for compliance

    A dated email of opt-outs shows that you tracked them. If a contact later claims they were mailed after leaving, you have evidence of the date they unsubscribed. If anyone later claims they were emailed after leaving, the dated list shows the day they unsubscribed.

How it works

What happens, step by step

  1. Once a day, ClickRuntime asks Constant Contact for contacts who are now unsubscribed.

  2. It keeps only the people whose opt-out date was yesterday.

  3. You get one email listing each person's name and email. If nobody unsubscribed, the email says so.

Before it runs live

  • Connect Constant Contact

What you get

RunsDaily
See who unsubscribed yesterdaytoday, 9:00Succeeded
Email · UnsubscribesConstant Contact unsubscribes on 2026-10-18: 1 Jo Park <jo@acme.com>

Build your own

Need it to work differently?

This template is a starting point. Copy the prompt and change it, or describe a different automation from scratch, with your own conditions, more apps or an AI step. Your assistant writes it, tests it and runs it on ClickRuntime.
  • 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 Constant Contact steps into one automation

Under the hood

The code that runs this automation

This is the Python script that runs each time the automation starts. Your AI assistant writes it for you when you send the prompt, and you allow each step in your assistant. To change how the automation works, describe the change to your assistant and it updates the script for you. For every function it can use, see the script reference.
daily_unsubscribe_report.pyexample
from datetime import date, timedelta
from clickruntime import on_trigger, credentials, notify, http

@on_trigger
def run(event):
    yesterday = date.today() - timedelta(days=1)
    resp = http.get("https://api.cc.email/v3/contacts",
                    headers={"Authorization": f"Bearer {credentials.connection('constant-contact', 'work')}"},
                    params={"status": "unsubscribed", "updated_after": f"{yesterday}T00:00:00Z", "limit": 500})
    resp.raise_for_status()
    gone = [c for c in resp.json()["contacts"]
            if (c["email_address"].get("opt_out_date") or "")[:10] == yesterday.isoformat()]
    lines = [f"{c.get('first_name', '')} {c.get('last_name', '')} <{c['email_address']['address']}>" for c in gone]
    notify.email_me(f"Constant Contact unsubscribes on {yesterday}: {len(gone)}",
                    "\n".join(lines) or "Nobody unsubscribed yesterday.")
    return {"unsubscribed": len(gone)}

FAQ

Common questions

How does it know who unsubscribed yesterday?
It requests contacts with an unsubscribed status that were updated after the start of yesterday. A contact's update time changes when they unsubscribe, so the list reflects recent opt-outs and not older ones. It requests contacts with an unsubscribed status that were updated after yesterday began, so only recent opt-outs are included.
Will I get an email on days with no unsubscribes?
You can choose to skip sending when the list is empty, so quiet days produce no email. Request that behavior and approve the change before it takes effect. Skipping the email on empty days is a small change.
Does the email include the reason for leaving?
Only if Constant Contact stores one for the contact. The report lists the contact details returned by the API, and any reason shown depends on what the unsubscribe page captured. Whether a reason appears depends on what Constant Contact stored for that contact, since the report only lists what the API returns.
What permissions does it need?
contact_data. Nothing else in your accounts is used.
Does it need AI?
No. It runs without AI, so it doesn't use your plan's AI allowance.
How many runs does it use?
One run each time it runs (daily). Checks that find nothing to do and stop right away aren't counted.
Can I change how it works?
Yes. Describe the change to your AI assistant, for example a different schedule, channel or filter. It updates the automation, tests it and tells you what changed.

Set up “See who unsubscribed yesterday” from your assistant

Copy the prompt above, or connect your assistant first. Free plan, no credit card.