Global suppression list shared across campaigns
Why it matters
A per-campaign suppression list means an unsubscribe from Campaign A has no effect on Campaign B, C, or triggered automations. This is a direct CAN-SPAM § 5 violation: the law requires that opt-outs apply to all commercial email from the sender within 10 business days, not just the campaign the unsubscribe link appeared in. GDPR Art. 21 right to object similarly applies globally — an objection to marketing email must stop all marketing email, not one drip sequence. Per-campaign suppression is architecturally convenient (each campaign manages its own list) but legally and operationally incorrect.
Severity rationale
High because per-campaign-only suppression is a structural CAN-SPAM § 5 violation that allows continued sends to unsubscribed contacts across campaigns, exposing the sender to FTC enforcement action.
Remediation
Enforce a single global suppression table consulted before every send path — marketing, transactional, triggered, and drip:
async function isSuppressed(email: string): Promise<boolean> {
const row = await db.suppression.findFirst({
where: { email: email.toLowerCase().trim() }
})
return row !== null
}
// Apply in every dispatch path:
async function dispatchEmail(to: string, template: string, data: object) {
if (await isSuppressed(to)) {
await db.sendLog.create({ data: { to, template, outcome: 'suppressed' } })
return
}
await esp.send({ to, template, data })
}
Audit every send path (campaign scheduler, transactional trigger, automation worker, drip sequence processor) and add the isSuppressed call if it is missing. Per-campaign exclusion lists can remain for content targeting, but the global suppression check must precede all of them.
DetectionPro
The detection method for this pattern is part of AuditBuffet Pro.
The full method (what to look for, pass and fail conditions, and how results get reported) ships inside the Data Quality & List Hygiene Audit. The pattern definition, severity rationale, and remediation remain openly licensed under CC-BY-4.0.
External references
- external · CAN-SPAM-Sec5 — CAN-SPAM Act §5 — opt-out must be honored across all commercial messages from the sender
- gdpr · Art. 21 — GDPR Article 21 — Right to object must be effective for all processing activities
- external · CASL-S6 — CASL Section 6 — unsubscribe mechanism must apply to all commercial electronic messages from sender
- iso-25010:2011 · functional-correctness — Functional Correctness (functional suitability)
Taxons
History
- 2026-04-18·v1.0.0·Initial import from data-quality-list-hygiene·automated