Skip to content
Start with 100 free verification credits
Qualisend
Native connector: live

Keep your Iterable audience clean before it costs you an MAU

Iterable automatically unsubscribes an address the moment it hard-bounces, so it stops mailing a known-bad mailbox after the first failure - but it can't judge a profile it has never messaged. And because Iterable is event-driven, it mints a user the instant your app or SDK fires an identify or track call, so never-messaged invalids from imports, product events, and signup typos pile up unseen - each one a wasted send and a reputation hit on its first campaign. Qualisend closes that gap: connect Iterable to verify the users in any list and save each result as a data field, then suppress or delete the dead ones before your next send. Here's how, plus the export, API, and no-code options.

IterableQualisend
Native connector

Connect Iterable directly, no CSV needed

All you need is an API key

Paste your Iterable API key and pick your region (US or EU). Find it in Iterable under Settings → API Keys.

  • Clean the users in any list
  • Results saved as data fields on each user
  • New users checked in real time via webhook
  • Auto-clean every 7, 14 or 30 days
Connect Iterable

Prefer CSV or the API? Both work too, see below.

Iterable handles

What Iterable cleans for you

Iterable's native hygiene runs on bounce events and subscription state. Every non-delivery is logged as a bounce event on the user profile, and when an address hard-bounces Iterable automatically unsubscribes that user from the campaign's channel and every other marketing email channel in the project, so it stops mailing them after the first permanent failure - and it deliberately keeps these bounce-driven unsubscribes out of the unsubscribe numbers in Campaign Analytics and Messaging Insights, tracking them under bounces instead. Soft bounces are the deliberate exception: Iterable does not auto-unsubscribe a mailbox that only soft-bounces, so pruning a chronically soft-bouncing address is left to you - the documented practice is to build a segment of users who have repeatedly soft-bounced over a 60- to 90-day window and unsubscribe them yourself. On top of the automatic side, campaign-level suppression lists let you attach a saved list of addresses that a given send will skip, and because channels contain message types, unsubscribing someone from a whole channel silences every message type in it. For addresses Iterable has actually messaged and seen hard-fail, that's reliable, automatic hygiene.

The gap it leaves

What it can't catch

The catch is that every one of those mechanisms is reactive - it needs a send and a failure to fire, and the soft-bounce case needs you to go build the segment first. Iterable makes the blind spot sharper than most because it's event-driven: a user profile is created the moment an identify or track call arrives from your app, SDK, or an import, so a typo like jane@gmial.com, an address migrated from a previous tool, a disposable domain, a role address (info@, support@), or a mailbox that has quietly decayed has never bounced because Iterable has never sent to it. Those profiles look perfectly healthy until an event finally triggers their first message - which is exactly when a mailbox provider forms its first impression of your domain. And because journeys and campaigns are event-triggered, a dead address doesn't just fail once: it keeps re-entering flows whenever a matching event fires, so the same bad mailbox gets mailed again and again. An imported or SDK-fed audience is the sharpest case - it arrives with its bounce history stripped, so addresses that were already failing elsewhere look brand new.

Why a clean Iterable list matters

On Iterable the stakes are unusually concrete, because Iterable is an enterprise platform priced on the scale of your audience and your message volume - quote-based and sales-led, negotiated as a contract around your monthly active users (the unique people you actually contact) and how many messages you send. That makes a dead address expensive twice over. Directly: every never-messaged invalid you send to counts as an active user for that month and burns a message from your contracted volume - you are literally paying to deliver into a hard bounce. And structurally: a database bloated with undeliverable profiles inflates the audience size your renewal is negotiated around. The reputation cost is the same signal, sharpened - each bounce, spam trap, or complaint is exactly what Gmail and Yahoo's 2024 sender rules, and Iterable's own deliverability monitoring, judge your sending domain on, and on cross-channel sends that reputation decides whether the customers you earned honestly ever reach the inbox. Cleaning before the send does both jobs: it keeps junk off the count your contract is built on, and it protects the deliverability of the campaigns that actually convert.

Prefer CSV or the API? Here's the manual path

Iterable is an API- and data-pipeline-driven engagement platform. If you'd rather not connect it, or need to clean a segment rather than a list, the manual path is: export your audience - a static list or segment via Save As > Export As > CSV, or the Export API for large audiences - verify it in Qualisend, then suppress the failures by unsubscribing them from a channel, or delete them outright, in bulk.

1

Export your audience from Iterable

Under Audience > Segmentation, build or open a segment (or static list) of the users you want to clean and run the query so you can see the current members, then use Save As > Export As > CSV File, tick the email field (plus any userId you key on), and export. For large or repeatable exports, run the Export API instead (dataTypeName=user, CSV output) - it's job-based, returns a jobId you poll for the files, and Iterable processes up to four export jobs per organization at once, queuing the rest.

2

Verify the file in Qualisend

Upload the CSV to Qualisend bulk cleaning - up to 1,000,000 addresses per job, duplicates charged once - or paste a sample into the free checker first. The free plan's 100 one-time credits, which never expire, cover an initial spot-check before you commit.

3

Read the results

Every address returns deliverable, risky, undeliverable, or unknown with a reason code, a 0-100 score, and sub-flags (catch-all, disposable, role, full mailbox), plus the MX provider and probe detail as evidence. Download the cleaned CSV.

4

Suppress or delete the undeliverables in Iterable

Filter your results to undeliverable. The fastest bulk action in the UI is Audience > Lists > overflow menu > Manage Users > Unsubscribe from Channel, where you paste or upload the bad addresses and unsubscribe them from a channel - a channel unsubscribe stops every message type in that channel, not just one list. Via API you can call POST /api/lists/unsubscribe, or to actually remove a dead profile from your database and your billable count, delete it (DELETE /api/users/{email}) or forget it (POST /api/users/forget, which also blocks future re-collection). Suppression stops the mail; deletion is what takes the address off the marketable count.

Or automate it at signup

Prefer to keep junk out before it ever mints a profile? Verify at the point of capture with the Qualisend REST API (scoped keys, rate limits, webhooks) - call it before your app fires Iterable's identify or track, so a typo or disposable address never becomes a user in the first place - or wire a no-code flow through Zapier, Make, or n8n to check new signups before they reach Iterable. That's the highest-leverage option on an event-driven platform, because it stops the dead profile from ever being created, mailed, and billed.

What Qualisend flags on every address

Native connector status

The native Iterable connector is live. Connect it in Qualisend under Integrations and work with your Iterable list directly, no CSV needed.

What to do with each result

Every address comes back with a verdict and sub-flags. Here's the action that keeps your Iterable list clean without throwing away contacts you can still reach.

deliverableKeep messaging as normal.
deliverable + role flagKeep for transactional and system messages; exclude from engagement-judged journeys.
risky + catch-all flagRoute to a dedicated segment and throttle - the domain accepts everything at the door, so the mailbox behind it can't be confirmed.
risky + disposable flagUnsubscribe from the channel or delete - the inbox was built to expire.
unknownKeep active and re-verify next clean - usually greylisting or rate-limiting, not a verdict on the mailbox.
undeliverableUnsubscribe from the channel to stop the mail, or delete/forget to take it off your marketable count; don't wait for the bounce to prove it.

Iterable verification FAQ

Yes. Connect Iterable in Qualisend under Integrations with an API key and your region (US or EU), then clean the users in any list. Results are saved as data fields on each user, so you can segment on them to unsubscribe or delete the dead ones. New users can be checked in real time once you add a System Webhook in Iterable. The export loop (for segments too) and the API also work with any Iterable plan.

Two ways. In the UI, go to Audience > Segmentation, build or open a segment (or static list), run it, then use Save As > Export As > CSV File and tick the email field. For large audiences or a repeatable pipeline, use the Export API with dataTypeName=user and CSV output - it runs as a job (you poll the returned jobId for the files), and Iterable processes up to four export jobs per organization at once, queuing any beyond that.

It depends on your goal. To stop the mail, the bulk move is Audience > Lists > Manage Users > Unsubscribe from Channel (paste or upload the addresses) - a channel unsubscribe silences every message type in that channel and keeps the record. To actually take the address off the marketable count your contract is sized on, delete the user (DELETE /api/users/{email}) or forget it (POST /api/users/forget), which also blocks future re-collection. Suppression protects deliverability; deletion is what changes the count.

Indirectly, in the way Iterable is priced. Iterable is quote-based and bills on the scale of your active, marketable audience and your message volume, negotiated as a contract - so the wins are twofold: every dead address you don't send to is an active user you don't spend and a message you don't waste on a bounce that month, and deleting the undeliverable profiles you'll never reach shrinks the audience size your renewal is negotiated around. Unsubscribing stops the sends; deleting is what removes the record.

Yes - and on an event-driven platform it's the highest-leverage option. Call the Qualisend REST API (or a Zapier/Make/n8n flow) before your app fires Iterable's identify or track, so a typo or disposable address never mints a user profile, never triggers a send, and never counts toward your marketable audience in the first place.

Clean your Iterable list in minutes

Start free with 100 credits that never expire - no card required. Connect, verify, and protect your next campaign.