Branching logic for engagement-based paths
Why it matters
A linear sequence sends the same follow-up to a contact who clicked your demo link and a contact who never opened the first email. That equivalence wastes the engaged contact's attention — they receive content calibrated for cold prospects — and misses the conversion window when intent is highest. iso-25010:2011 functional-suitability.functional-completeness treats this as a completeness failure: the system claims to run campaigns but cannot differentiate its behavior based on the core input it tracks. At the business level, a branching gap means every click and reply is detected but never acted on, turning your engagement data into a vanity metric.
Severity rationale
High because linear-only sequences ignore real-time engagement signals, wasting conversion opportunities when contact intent is measurably highest.
Remediation
Add step_on_engage and step_on_no_engage fields to step records, then resolve the next step at advancement time rather than at sequence design time.
interface SequenceStep {
id: string
action: 'send_email' | 'wait' | 'condition'
delayDays: number
templateId: string | null
stepOnEngage: string | null // jump here if contact opened or clicked
stepOnNoEngage: string | null // use if not engaged (null = continue linear)
}
async function resolveNextStep(enrollment: Enrollment, step: SequenceStep): Promise<string | null> {
if (step.stepOnEngage) {
const engaged = await checkEngagement(enrollment.contactId, step.emailId)
return engaged ? step.stepOnEngage : step.stepOnNoEngage
}
return step.defaultNextStepId
}
At minimum, treat clicks and replies as the engagement signals — opens alone are unreliable under Apple Mail Privacy Protection.
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
- iso-25010:2011 · functional-suitability.functional-completeness
Taxons
History
- 2026-04-18·v1.0.0·Initial import from campaign-orchestration-sequencing·automated