Skip to content

Daily

Get a daily list of Iterable unsubscribes and bounces

Each morning you get the users who opted out or bounced the day before, in one list.

Runs
Daily
Apps
Iterable
AI
Not needed
Access
server-side key (read)

Send this to your assistant

Create a ClickRuntime automation: every day at 7am, email me a list of users who unsubscribed or had an email bounce in Iterable yesterday, with their email and the event type.

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

A lifecycle marketer sends to a list of 80,000 addresses in Iterable. After a big send, some people unsubscribe and others bounce, and both groups need to be handled: unsubscribes must be kept out of other systems such as the CRM and ad audiences, and hard bounces damage sender reputation if they stay on a list. Iterable handles its own suppression, but nothing tells the rest of the stack, so the sales team keeps emailing people who opted out last week.

Each day, ClickRuntime exports the emailUnSubscribe and emailBounce events from Iterable for the previous day and emails you the list of addresses with the event type and time. You have a plain daily record of who left and who could not be reached.

It is aimed at marketing operations and lifecycle teams that keep audiences in more than one system.

What you get out of it

  • Opt-outs are respected everywhere

    Someone who unsubscribes from marketing email in Iterable should not hear from sales or appear in a retargeting audience. A daily list gives you what you need to update those other tools promptly.

  • Compliance risk goes down

    Rules such as CAN-SPAM and GDPR expect opt-outs to be honored quickly. A dated record of unsubscribes, delivered every day, shows that you had a routine for acting on them and when it ran.

  • Bounce problems are caught early

    A sudden jump in bounces after a send usually means a bad list or a data problem. Seeing the daily count and the addresses lets you investigate the same week, before mailbox providers lower your reputation.

  • Cleaner lists save money

    Email platforms often charge by contact or by send volume. Removing addresses that bounce or opted out reduces what you pay and improves engagement rates because you are sending only to reachable, willing people.

  • A paper trail for support questions

    When someone says they never opted out, or insists they did, the daily exports show the date of the event. Support can answer with evidence instead of guessing. That keeps a disagreement with a subscriber short and factual.

How it works

What happens, step by step

  1. Once a day, ClickRuntime asks Iterable for everyone who unsubscribed or whose email bounced yesterday.

  2. It puts them into one list, with each email address marked as unsubscribed or bounced.

  3. You get the list by email in a format you can paste into a spreadsheet. If there were none, the email says so.

Before it runs live

  • Connect Iterable

What you get

RunsDaily
Get a daily list of Iterable unsubscribes and bouncestoday, 9:00Succeeded
Email · Unsubscribes and bouncesemail,event jo@acme.com,unsubscribed old@northwind.com,bounced

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 Iterable 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_bounce_export.pyexample
import json
from clickruntime import on_trigger, credentials, notify, http

TYPES = {"emailUnSubscribe": "unsubscribed", "emailBounce": "bounced"}

@on_trigger
def run(event):
    headers = {"Api-Key": credentials.secret("ITERABLE_API_KEY")}
    lines = []
    for data_type, label in TYPES.items():
        resp = http.get("https://api.iterable.com/api/export/data.json", headers=headers,
                        params={"dataTypeName": data_type, "range": "Yesterday", "onlyFields": "email"})
        resp.raise_for_status()
        lines += [f"{json.loads(row)['email']},{label}" for row in resp.text.splitlines() if row.strip()]
    notify.email_me(f"Iterable: {len(lines)} unsubscribes and bounces yesterday",
                    "email,event\n" + "\n".join(lines) if lines else "None yesterday.")
    return {"rows": len(lines)}

FAQ

Common questions

Should unsubscribes and bounces be handled the same way?
An unsubscribe means the recipient chose to stop receiving your messages. A bounce means the message could not be delivered, for example because the address does not exist or the mailbox is full. They need different handling, so the export lists them separately.
Does the export include the reason for a bounce?
It includes what Iterable records on the bounce event, which usually covers the type, such as hard or soft, and any status message from the receiving server. That helps you tell permanent failures from temporary ones like a full mailbox.
Can I limit the export to one project or campaign?
Yes. If you use several Iterable projects or want to see only events from a certain campaign, ask for the export to be filtered that way. Projects each have their own API key, so say which project you mean.
What permissions does it need?
server-side key (read). 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 “Get a daily list of Iterable unsubscribes and bounces” from your assistant

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