PROTOCOL

Protocol: resending a campaign to non-openers without duplicates

The short answer

This is the protocol we would run, not a measured result. The goal: resend a campaign to people who did not open the first send while guaranteeing no contact receives it twice and no opener gets re-mailed. Below is what we would measure, the method we would hold constant across platforms, and the evidence that would count as proof of a clean, deduplicated resend.

What we would measure

The core risk in a resend is double sending. We would measure whether the non-opener audience is defined at resend time, not at first-send time, because opens keep arriving for days. We would measure whether openers and clickers are excluded, whether a contact on two lists that both received the campaign can be hit twice, and whether bounces and unsubscribes from the first send are carried into the resend as exclusions. The pass condition is one email per person maximum across both sends, with the resend reaching only those who have no recorded open at the moment it goes out.

The method we would hold constant

The method would be constant. Send an original campaign to a seed audience with known, tagged contacts, some of which we open deliberately and some we leave unopened. Wait a fixed window so opens settle. Then build the resend audience as non-openers of that specific campaign and trigger it. We would deliberately include edge cases: a contact on two segments in the audience, an address that bounced on the first send, and an opener who opens only after the non-opener audience is defined. Every contact is checked against the platform's per-contact activity log across both sends, so a duplicate shows up as two send events on one record.

What each platform documents today

Most of the platforms we track publish a resend to non openers, and the interesting part is the conditions attached to it. Two of them state that open tracking must have been on for the original send, which is the detail that quietly disqualifies a campaign sent with tracking off. One restricts the feature to broadcasts and not to sequences. One has no button at all and expects you to build the audience from the report.

Resending a campaign to people who did not open it
PlatformStatusDoes the platform document a built in resend to non openers, and what does it require?
ActiveCampaignDocumentedSend to contacts that have not opened, which reopens the campaign for reuse so you can change the name and subject before sending or scheduling. Source
BrevoDocumentedA dedicated resend to non openers page, plus an automation route where a conditional split on the open sends a follow up only down the not opened branch. Source
KitDocumentedResending to unopens, available on Broadcasts and not on Sequences, and only once the Broadcast has been sent to at least one recipient. Source
MailchimpDocumentedSchedule Resend on a sent email. The documentation states the email must not already have been resent or sent to a non opener segment, and that click and open tracking must be on. Source
MailerLiteDocumentedTwo routes: an Auto resend campaign type that resends by itself, or Resend to non openers on a campaign already sent. The option is disabled when open tracking was off on the original, and the resend goes out with a different subject and a short note above the body. Source
GetResponseDocumented, with a catchNo one click resend button: you open the report of the original message, use the opens and clicks tab to select contacts who did not open, and send a new message to them. Advanced search on Message not opened does the same job. Source (getresponse.com/help/how-to-resend-a-message-to-non-openers.html)
MoosendNot checkedNot checked in this pass.
OmnisendNot checkedNot checked in this pass.
SenderNot checkedNot checked in this pass.

Read from each provider's own documentation. "Not checked" means exactly that: we have not read a page covering this capability for that platform, so we say nothing rather than guess. Nothing in this table is a measurement: we have not run the protocol on paid accounts.

None of that tells you whether the audience is recomputed at send time or frozen when you set the resend up, which is the single thing that decides whether anyone gets the email twice. No documentation we read answers it. That is the question the protocol below exists to settle.

What would count as proof

Proof is one email per person, verified in the logs. A pass means every seeded contact shows at most one send event for the campaign across the original and the resend, the resend reached only contacts with no open recorded at its send time, and first-send bounces and unsubscribes received nothing. A partial pass is correct deduplication but an audience frozen too early, so late-window openers still get re-mailed. A fail is any contact with two send events, or an opener appearing in the resend. We would report each platform at that per-contact level, citing the log, rather than trusting the campaign summary counts.

Questions people also ask

Have you measured these platforms yet?

No. This is the protocol only. It sets out what we would measure, the constant method, and the proof standard, without publishing any platform result or number, so nothing here should be read as a tested outcome.

Why not just trust the resend feature?

Because two things commonly cause duplicates: an audience frozen at first-send time so late openers still get re-mailed, and a contact who sits on two included lists. A native button can still fall into either trap, which is why the check runs at the per-contact log level.

Does the table tell me if a platform can double send?

No, and no documentation we read answers that question. The table reports the published feature and its stated conditions. Whether the non opener audience is recomputed at send time, and what happens to an open that lands in between, can only be settled by running the protocol on paid accounts, which we have not done.