Clean risky addresses from your Mailchimp list before each campaign

By General Input

Every Monday at 7am, new subscribers get checked for spam traps, throwaway inboxes and dead addresses, so your campaign only goes to people who can receive it.

Integrations

  • IPQualityScore
  • Mailchimp
  • Slack Bot

Type

Agentic Task

Categories

  • Marketing
  • Operations

Every Monday at 7am, before my weekly campaign goes out, sweep my Mailchimp audience for risky addresses using IPQualityScore, act on what you find, and report what you did in Slack.

Start by pulling subscribers with the Mailchimp "List Members" operation, but only those added or updated since the last run, using the date filters that operation supports, and page through the results. Do not pull the whole audience. Every IPQualityScore lookup consumes account credits, so never re-check anyone already carrying the verified tag from a previous run. If there is no previous run to compare against, use the last seven days as the window.

Run each address through the IPQualityScore "Email Validation" operation and capture deliverability, disposable or temporary detection, spam trap risk, catch-all status, and the 0-100 fraud score.

IPQualityScore returns HTTP 200 even when a lookup fails, with success set to false and a message explaining why, usually an invalid key or exhausted credits. Branch on the success field rather than the HTTP status. Never treat a failed lookup as a clean address: leave that member untouched in Mailchimp, count them as "could not check", and call them out in the Slack summary. If credits run out, stop making further lookups and report how far you got.

Decide per address rather than applying one blanket rule, weighing the signals against each other. There are three outcomes.

Suppress: confirmed spam traps, disposable or temporary addresses, and undeliverable addresses. Use the Mailchimp "Update Member" operation to change their status so they stop receiving campaigns.

Tag for review: catch-all addresses and borderline ones, meaning a fraud score of roughly 75 and above but still deliverable. Use the Mailchimp "Add or Remove Member Tags" operation to tag them for review and leave them subscribed.

Clean: everything else gets a verified tag through "Add or Remove Member Tags" so the next run skips them and no credits are wasted re-checking.

Suppressing a real subscriber by mistake is costly, so when the signals conflict, for example deliverable but catch-all, or valid but carrying a high fraud score, prefer the review tag over suppression. Only suppress when the evidence is unambiguous.

If the batch of members to update is large, use the Mailchimp "Batch Subscribe or Unsubscribe" operation, which handles up to 500 members per call, instead of a separate update call for every address.

Finish with a Slack "Send a Message" summary to my marketing channel containing the counts in each bucket (suppressed, tagged for review, verified clean, and could not check), the specific addresses that were suppressed with the reason for each, and a one-line note on whether the list looks healthy enough to send this week.

Related prompts

Explore more prompts
A brand asset library your marketing team actually searchesTurn Mailjet email clicks into ranked HubSpot follow-upsClean out the Looker dashboards and Looks nobody opensLiveKit live operations console for room moderationWake up dormant Keap leads with a researched reasonLiveChat coverage board for planning next week's shiftsPhone routing control panel for LiveKit voice agentsLinkedIn Ads budget pacing dashboard for every client accountGive your team Looker numbers without buying more seatsPause marketing emails to escalated customers, then restore them