Weekly
Get a weekly list of suppressed addresses
Every Monday you see which addresses SES stopped sending to last week, and why.
- Runs
- Weekly
- Apps
- Amazon SES
- AI
- Not needed
- Access
- ses:ListSuppressedDestinations
Send this to your assistant
Create a ClickRuntime automation: every Monday at 9am, email me the addresses added to my Amazon SES suppression list in the last 7 days, with the reason for each.
First time? Adding ClickRuntime to your assistant takes about two minutes.
Why use it
Why teams use this automation
Amazon SES automatically adds an address to the account suppression list after a hard bounce or a spam complaint, and from then on it silently refuses to send to that person. This is protective, but it means that a customer who mistyped their email at sign-up, or whose mailbox was full for a day, stops receiving receipts and reset links without anyone being told. A sales team may keep mailing a lead who was suppressed weeks ago and wonders why nobody replies.
Each week, the automation asks SES for the suppressed destinations added since a start date and emails you the list, with the reason (bounce or complaint) and the date each address was added. You see who stopped receiving mail and why.
Support teams, developers and email marketers who need to know which customers can no longer be reached will find it practical.
What you get out of it
Customers who cannot be reached are identified
A list of newly suppressed addresses tells you which accounts are not getting your emails. Support can contact them another way and correct the address. Support can then reach out by phone or another channel, and fix the address in your database.
Typos at sign-up can be fixed
Many hard bounces come from a misspelled domain. Seeing them in a weekly list lets you correct gmial.com to gmail.com and have a verified address on file. A verified address means the next receipt actually arrives.
Complaints are visible to the business
An address added after a complaint tells you somebody did not want a message. Reviewing these shows which emails annoy readers, and helps you adjust content or frequency. That feedback is hard to get any other way.
List hygiene becomes a routine
A short weekly review stops the list from decaying. Removing dead addresses from your own database keeps your bounce rate low and your reputation healthy. Cleaner lists also lower your cost per delivered message.
Sales and support avoid wasted effort
Reps stop writing to contacts that will never receive the message, and support knows when a customer's missing email has a technical cause. The weekly list closes that gap and saves awkward conversations.
How it works
What happens, step by step
Every Monday, ClickRuntime pulls the addresses Amazon SES stopped sending to.
It keeps the ones added in the last week.
You get one email listing each address, whether it was a bounce or a complaint, and the date.
Before it runs live
- Connect Amazon SES
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 Amazon SES steps into one automation
Under the hood
The code that runs this automation
from datetime import datetime, timedelta, timezone
from requests_aws4auth import AWS4Auth
from clickruntime import on_trigger, credentials, http, notify
REGION = "us-east-1"
@on_trigger
def run(event):
auth = AWS4Auth(credentials.secret("AWS_ACCESS_KEY_ID"), credentials.secret("AWS_SECRET_ACCESS_KEY"), REGION, "ses")
end = datetime.now(timezone.utc)
params = {"StartDate": (end - timedelta(days=7)).isoformat(), "EndDate": end.isoformat(), "PageSize": 1000}
rows = []
while True:
page = http.get(f"https://email.{REGION}.amazonaws.com/v2/email/suppression/addresses",
auth=auth, params=params).json()
rows += page.get("SuppressedDestinationSummaries", [])
if not page.get("NextToken"):
break
params["NextToken"] = page["NextToken"]
lines = [f"{r['EmailAddress']} {r['Reason']} {str(r['LastUpdateTime'])[:10]}" for r in rows]
notify.email_me(f"{len(rows)} addresses added to the SES suppression list", "\n".join(lines) or "None this week.")
return {"added": len(rows)}FAQ
Common questions
Does an address stay suppressed forever?
What is the difference between a bounce and a complaint here?
Can I remove addresses automatically?
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 warned before SES pauses your sending
You hear once when bounces or complaints pass your limits, while there's still time to act.
See how it worksGet your SES quota and volume each morning
Each day you see how much of your quota you used and whether the account is still in the sandbox.
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 a weekly list of suppressed addresses” from your assistant
Copy the prompt above, or connect your assistant first. Free plan, no credit card.