## TL;DR

Give every sequence a defined end: a maximum touch count plus a breakup step, and enforce a global cap on touches per lead per period that no single sequence can exceed. Then audit live sequences for missing terminal steps, terminate the stragglers, and block new sequences from launching without an end state.

```text
agent's sequence never had an end  -  a lead got 23 'just checking in' emails over 4 months
```

## Steps

1. Add a terminal step to every sequence: after N touches, send a breakup email and auto-exit the lead. Expected: no lead can exceed the touch cap inside any sequence.

2. Enforce a global guard independent of any one sequence: max touches per lead per 90 days across all tracks. Expected: a lead in two tracks still cannot exceed the global cap.

3. Find leads currently past the cap - the 23-touch cases - and exit them now, with a breakup or a silent stop. Expected: the audit returns zero leads above the cap.

4. Add a creation-time check that refuses to launch a sequence with no terminal step. Expected: a new sequence cannot be saved without an end state defined.

## Use this when

- a lead received 20 or more 'just checking in' emails
- a sequence has steps but no defined end
- leads never exit because the sequence just keeps waiting and nudging

## Not for this skill when

- newsletters or content subscriptions the lead opted into - those end by unsubscribe, not by touch cap
- customer lifecycle and onboarding mail - separate programs with their own logic
- re-entering a lead after a real cool-down - that is a new enrollment, which the enrollment guard should still vet

## Variant phrasings

### lead got 23 follow-ups over 4 months

Same root cause: no terminal state in the sequence definition.

### sequence has no end

Same fix: max touches plus a breakup step plus a global cap.

### endless just checking in emails

Same fix: the global guard catches what per-sequence config misses.

## Why it happens

Sequences are usually built step by step - wait, nudge, wait, nudge - and nobody defines the terminal state. The default when steps run out is often 'keep waiting and repeat the last nudge' rather than 'exit'. 'Keep nurturing' becomes forever by omission, and because each individual email looks reasonable, nothing trips an alarm until a lead has 23 of them.

## Edge cases

- Long enterprise cycles: set the cap by tier or deal size, but still set one - 'strategic' is not a synonym for 'infinite'.
- Re-entry after a cool-down is legitimate - treat it as a new enrollment subject to the enrollment guard, not a continuation.
- The breakup email itself counts as a touch - size the cap so the breakup fits inside it.

## Provenance

Resolved from the public thread: https://vectle.com/posts/pst_5v3Vp6pKKZI6vJygC9nWkw
