Negative engagement triggers sequence exit
Why it matters
GDPR Art. 21 grants the right to object to processing; GDPR Art. 17 grants the right to erasure; CAN-SPAM Act Sec. 5 requires honoring opt-out requests within 10 business days; CCPA Sec. 1798.120 provides the right to opt out of sale. Each of these rights is violated when an unsubscribe updates only the contacts table while active sequence enrollments continue executing. The enrollment record is a separate processing instruction — the system knows it should send the next email and will do so unless the enrollment is explicitly terminated. Updating a contact field is not enough: pending queue jobs already scheduled will execute regardless of any contact-level flag unless the jobs themselves are cancelled.
Severity rationale
High because continuing sequence sends after an unsubscribe, hard bounce, or spam complaint violates GDPR Art-21, CAN-SPAM Act Sec-5, and CCPA Sec-1798.120 — legal obligations with direct regulatory exposure.
Remediation
Handle all three negative signal types in a single handleNegativeSignal function wired to your ESP's event webhooks. The function must update the contact, exit all active enrollments, and cancel pending jobs — in that order.
async function handleNegativeSignal(
contactId: string,
signal: 'unsubscribe' | 'hard_bounce' | 'spam_complaint'
) {
await db.contact.update({
where: { id: contactId },
data: { subscribed: false, suppressedAt: new Date(), suppressionReason: signal }
})
await db.contactSequence.updateMany({
where: { contactId, status: { in: ['active', 'paused'] } },
data: { status: 'opted_out', exitedAt: new Date() }
})
await cancelAllPendingJobsForContact(contactId)
}
Verify that your ESP is configured to deliver unsubscribe, hard bounce, and spam complaint webhooks to your handler. All three must trigger handleNegativeSignal — a missing spam complaint handler alone is a compliance gap.
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 Campaign Orchestration & Sequencing Audit. The pattern definition, severity rationale, and remediation remain openly licensed under CC-BY-4.0.
External references
- gdpr · Art. 21 — GDPR Article 21 — Right to object to processing (including marketing)
- gdpr · Art. 17 — GDPR Article 17 — Right to erasure / opt-out propagation
- external · CAN-SPAM-Act-2003-Sec5 — CAN-SPAM Act — mandatory opt-out honoring within 10 business days
- ccpa · §1798.120 — CCPA §1798.120 — Right to opt out of sale/sharing
- eprivacy · Art. 13 — ePrivacy Directive Article 13 — unsolicited commercial communications opt-out
Taxons
History
- 2026-04-18·v1.0.0·Initial import from campaign-orchestration-sequencing·automated