Weekly MailerLite list cleanup with NeverBounce

Every Monday morning, your full MailerLite list is bulk-verified, risky addresses are removed, and your marketing-ops channel gets a clean health summary in Slack.

Agentic Task
MailerLiteNeverBounceSlackMarketingOperationsData SyncAI Reports

Build me an agent workflow that runs on a weekly cron, every Monday at 7am Eastern, and does a full list-hygiene sweep on my MailerLite account using NeverBounce bulk verification.

Step 1: page through MailerLite List All Subscribers to collect every active subscriber. Keep each subscriber's id, email, and sign-up source fields (groups, form id, or whatever opt-in metadata is present) so the agent can attribute bad addresses back to a source later.

Step 2: hand the resulting email list to NeverBounce Create Bulk Verification Job with input_location set to supplied, auto_parse enabled, and auto_start enabled. Give the job a filename that includes the date so it is easy to find in NeverBounce later.

Step 3: poll NeverBounce Get Bulk Job Status until the job status is complete. Use a reasonable backoff (start around 30 seconds, grow to a few minutes for larger lists). If the job lands in under_review or any error state, stop the workflow and post a short note in the Slack channel explaining what happened so a human can take a look.

Step 4: page through NeverBounce Retrieve Bulk Job Results to pull every row. Match each result back to the MailerLite subscriber by email.

Step 5: act on each result. For invalid addresses, call MailerLite Delete Subscriber. For disposable addresses, call MailerLite Update Subscriber to set status to unsubscribed. For catchall and unknown results, do not touch the subscriber but include them in the report. Leave valid subscribers alone.

Step 6: post a Slack Send a Message summary to a marketing-ops channel I will specify when I set this up. The summary should include: total subscribers checked, counts by result type (valid, invalid, disposable, catchall, unknown), the number of subscribers unsubscribed vs deleted, the approximate credit spend for the run (one credit per non-duplicate address is a fine estimate, but use the actual tally from NeverBounce where you can), the worst-offending sign-up sources if any pattern is discernible from the MailerLite metadata, and a short two or three sentence paragraph the marketer can paste straight into their next list-health review.

Treat the unsubscribe-versus-delete threshold and the summary writing as places where the agent should use judgement. Keep the prompt structured so I can later swap the channel, tweak which result codes get cleaned up, or change the cron schedule without rewriting the whole thing.

Additional information

What does this prompt do?
  • Pulls every active subscriber from MailerLite and runs the entire list through a NeverBounce bulk verification job.
  • Quietly unsubscribes risky addresses and removes confirmed bad ones, so future campaigns only reach real inboxes.
  • Posts a Monday morning health summary to Slack with counts by result type, the credit spend, and a short paragraph you can paste into your next list review.
  • Leaves grey-area results like catchalls and unknowns in place, but surfaces them in the summary so nothing gets cleaned up by surprise.
What do I need to use this?
  • A MailerLite account with an API token.
  • A NeverBounce account with enough credits to verify your full list (roughly one credit per subscriber).
  • A Slack workspace and the channel where the weekly summary should land.
How can I customize it?
  • Change the day or time the cleanup runs. The default is every Monday at 7am Eastern.
  • Choose whether disposable and invalid addresses get unsubscribed or fully deleted from your account.
  • Pick a different Slack channel for the summary, or have it sent as a direct message instead.
  • Tighten or loosen which result types get cleaned up. For example, you can opt to leave disposables alone, or include catchalls in the cleanup.

Frequently asked questions

Will this delete subscribers I might want back later?
By default it unsubscribes risky addresses rather than hard-deleting them, so they stay in your MailerLite account history. You can switch the prompt to a permanent delete if you prefer a smaller list footprint.
How much does the verification cost each week?
NeverBounce charges roughly one credit per email checked. The Slack summary always includes the exact credit spend for that run, so you know what each cleanup cost without logging into NeverBounce.
What happens to catchall and unknown results?
Those subscribers are left untouched. They show up in the Slack summary with counts so you can decide whether to review them by hand or re-check them later.
Can I run this less often than weekly?
Yes. Monthly or quarterly is a common cadence for smaller lists. When you set the workflow up you can pick any schedule that fits your sending volume.
Will this interfere with my MailerLite campaigns or hit rate limits?
No. The cleanup only reads and updates subscribers, it never sends a campaign. The traffic stays well inside MailerLite's standard rate limits, even for lists with tens of thousands of addresses.

Stop sending to dead addresses.

Connect MailerLite, NeverBounce, and Slack once, and Geni runs your list cleanup every Monday morning before you sit down with coffee.