BACK TO BLOG
USE CASESOctober 26, 20269 min read

Clean an Email List Before a Send With an AI Agent

JH

By Joris van Huët

Enterprise Interim CMO & Marketing Leader · 15+ years · 50+ orgs

Published

2026-10-26

The short answer: if a big send is booked for this week and nobody has looked at the list in six months, verify only the slice most likely to bounce, let an agent sort the rest into keep, hold and remove with a reason for each, and let a person approve every removal before anything changes. MailerCheck charges $10 for its minimum 1,000 credits, one credit per address (pricing, checked on 26 October 2026). For example, checking the 3,000 addresses added since your last clean costs 3,000 x $0.01 = $30, where a 20,000-contact list in full would cost $200. Nothing in the workflow can delete a contact for good; that stays a separate, human process.

Disclosure: I may earn a commission through some links on this site. It does not change what this page says.

A neglected list costs you twice. Complaints count against you at Gmail, which publishes a spam-rate ceiling, and on some platforms the dead weight is billed every month. Cleaning is routine work with one dangerous step, the removal, which is exactly the shape of a job to give an agent with a person at the gate.

Before you touch the list:

  1. What cleaning saves, and when. Mailchimp counts subscribed, unsubscribed and non-subscribed contacts toward your limit, and not cleaned, pending or archived ones (contact statuses). For example, 2,620 contacts with 300 unsubscribed sit in the 2,501 to 5,000 tier, where Standard is $100 a month; archiving the 300 leaves 2,320, inside 1,501 to 2,500 at $60 (Mailchimp pricing, checked on 26 October 2026). MailerLite bills active subscribers only, but any address active at some point in the billing cycle counts even if you delete it later (pricing FAQ), so there a clean pays from the next cycle.
  2. The data you already hold. MailerLite's API returns each subscriber's status, emails sent, opens, clicks and signup date (subscribers API); Mailchimp's member records carry status, a 1 to 5 star rating and average open and click rates (members API). Most of the sorting needs nothing more.
  3. Keys and one approver. An API key for your platform, a MailerCheck API token, and one named person who approves removals.
  4. The baseline. Bounces and unsubscribes on your last three sends, and the spam rate in Google's Postmaster Tools. Google asks senders to stay below 0.10% and never to reach 0.30% (Gmail sender guidelines).

What the agent may never do

Removal comes in two strengths, and only the mild one belongs in an automated workflow. Mailchimp's permanent delete erases a contact's details, anonymises their report data and means the address can never be imported again; Mailchimp reserves it for GDPR requests and recommends archiving otherwise (delete contacts). Archiving is reversible and keeps the history (archive contacts). MailerLite's API draws the same line: Delete removes a subscriber but keeps their information, Forget erases everything within 30 days, and a subscriber set to unsubscribed, bounced or junk cannot be reactivated through the API (subscribers API). So the workflow below archives or unsubscribes after approval, and never calls permanent delete or Forget. Those belong to your erasure-request process.

The workflow in n8n

  1. Trigger two days before the send. A Schedule Trigger on the day that leaves the approver time to read, one execution per run (executions docs).
  2. Pull the audience. The MailerLite node has Get all subscribers; the Mailchimp node has Get all members on list.
  3. Rules before any model. Filter nodes pull out three groups: addresses added since the last clean, addresses with no click after many sends and a signup older than a year, and shared inboxes such as info@ or sales@. Everyone else goes straight through as keep. Use clicks, not opens: Apple's Mail Privacy Protection fetches remote content in the background on arrival and hides when and how often a message is viewed (Apple), so a recorded open proves little.
  4. Verify only the flagged groups. An HTTP Request node posts each flagged address to MailerCheck's single-check endpoint, https://app.mailercheck.com/api/check/single, with your token as a Bearer header. The answer falls in three groups: send to (valid), risky (catch_all, mailbox_full, role, unknown) and do not send to (syntax_error, typo, mailbox_not_found, disposable, blocked) (MailerCheck API).
  5. The agent sorts and explains. An AI Agent reads each flagged record, its MailerCheck status and your written rules, and decides: keep, hold from this send, or propose removal. Its one tool is the Google Sheets node's Append Row, so its output is a review sheet with one row per address, the proposed action and a one-line reason ("valid, but no click in 31 sends since March 2025"), plus a summary of counts. A typo result is always hold, never a correction: the corrected address can belong to someone else, and they never signed up.
  6. The person approves. A Send and Wait message in Gmail or Slack carries the counts and the sheet link. The reviewer deletes any row they disagree with, then answers. In Gmail, switch the approval type from its default, Approve Only, to Approve and Disapprove, so the reviewer can say no (Gmail operations). In Slack, fill Restrict Who Can Approve, because an empty list lets anyone who sees the message respond (Slack approvals).
  7. Apply the approved rows, nothing else. Read the sheet back with Get Row(s). In Mailchimp, archive each approved removal with DELETE /lists/{list_id}/members/{subscriber_hash}, which Mailchimp's API documents as archive, not delete (archive endpoint), and tag the holds through the node's Member Tag operation so you can leave that tag out of the send. In MailerLite, set approved removals to unsubscribed through the subscribers API's create-or-update call, and move holds out of the campaign's group into a Hold group with the unassign and assign endpoints (groups API).

The sheet stays as the record of who left and why. Article 5(2) of the GDPR asks you to be able to demonstrate how you handle personal data, and a dated list of approved changes does that. Per-tool detail is in how to use n8n, how to use MailerLite and how to use Mailchimp; the products are in the n8n, MailerLite and Mailchimp entries.

The free version first

Both platforms have the job built in. MailerLite's Clean up inactive tab, under Subscribers, lists people inactive for 6, 12 or 24 months, or who never opened, filtered by how many emails they received, and lets you unsubscribe them, save them as a segment or export and delete (clean up inactive). In Mailchimp, a segment of contacts who were sent a campaign and have not opened it, added before a cut-off date, or rated below 2 stars, can be selected and archived by typing ARCHIVE (inactive contacts). Both help articles suggest a re-engagement email before you remove anyone. MailerCheck gives 10 free credits to test the verifier. For a list of a few thousand, that is enough.

What the agent adds is the reason on every row, verification spent only where it is needed, and a record you can show.

What it costs

ToolWithout payingOn a paid plan
MailerCheck10 free credits$10 per 1,000 credits, one per address, 1,000 minimum, credits do not expire
n8nSelf-hosted Community EditionStarter: 2,500 executions for $24, billed monthly
MailerLiteClean up inactive, in the appComfort $12 or Power $25 a month at 500 subscribers; unsubscribed and bounced addresses are not billed
MailchimpArchiving costs nothingStandard $60 a month at 1,501 to 2,500 contacts, $100 at 2,501 to 5,000

Every figure in the table comes from the vendor's own pricing page, checked on 26 October 2026: MailerCheck, n8n, MailerLite, Mailchimp.

How to know it worked

  • Bounces on this send against the last three, from the platform's report.
  • Spam rate in Postmaster Tools, against Google's 0.10% line (Gmail sender guidelines).
  • Clicks in total, not per delivered email. Remove 3,000 addresses that never clicked and the click rate rises by arithmetic alone. Judge the content by total clicks against the last three sends.
  • A small holdout for the risky group. Keep a random tenth of the catch_all addresses in the send. If they bounce no more often than the valid ones, catch-all alone is not a reason to hold them next time.
  • Reversals. Count approved removals who come back and subscribe again. A rising count means the rules are too strict.

The default that keeps lists large

An email platform's price follows the size of your audience, and its defaults keep that audience large: Mailchimp goes on counting unsubscribed contacts toward your plan until you archive them, so step 7 is a billing decision as much as a hygiene one. Neither platform hides this; both document it. It still takes someone to act on it before the next invoice, and with MailerLite's cumulative count, before the cycle starts.

FAQ

Should I delete or archive contacts who never engage?

Archive in Mailchimp, where the step can be undone. In MailerLite, unsubscribe, knowing the API cannot reactivate that status, so approve those rows with more care. Both stop the billing. Permanent deletion is for erasure requests under the GDPR, which Mailchimp gives you 30 days to complete across every audience (delete contacts).

Can the agent fix an address with a typo?

It should flag it, not fix it. MailerCheck's advice is to correct the address and check it again (statuses), and the correction has to come from the person, through a form or a reply, because a guessed address can reach a stranger.

How often should I run it?

My rule of thumb: before any send to a list that has not been mailed in three months, and once a quarter otherwise. The run costs one execution and a few credits, which is little next to a send that bounces.

TAGS
List HygieneAI Agentsn8nMailerLiteMailchimpDeliverability

ABOUT THE AUTHOR

I am Joris van Huët, an enterprise interim CMO. 15+ years, 50+ organizations, including ING, P&G, Nestlé, BNP Paribas, WeTransfer and Vinted. I take on innovation projects (venture building, design sprints), agentic marketing (setting up and running AI agents) and hands-on multi-channel work. See the track record.

I wrote and published this with AI assistance, and I answer for it. Claims about my own experience are limited to the track record above, and a statistic links to its source or is labelled as an example. I sell interim and fractional CMO work, which is why this site exists. How this site is written.

Agentic marketing, built for your team

The agents in this article, built into your workflows and handed over to your team: the first one within two weeks.