# Stopping a cold sequence

A cold sequence stops the moment a stopping event occurs, not at the next scheduled step. Any reply stops it. So does a do-not-contact entry, an unsubscribe, a suppression, a person stopping it by hand, and identity resolution discovering that the organisation is already a relationship. Delay here has no upside and one very visible failure.

- **Status:** Available
- **Audience:** both
- **In the app:** #/prospects, #/follow-ups, #/autonomy-audit
- **Last verified:** 2026-09-10
- **Canonical:** https://connectbyjbrh.com/docs/prospects/cold-sequence-stop/

## Why immediacy is the whole design

A sequence that checks its stop conditions only when the next message is due is a sequence that sends one more message after somebody asked it not to. The gap can be days; the recipient experiences it as being ignored, and no explanation afterwards repairs that.

So stopping is an event, not a scheduled check. A reply, a refusal or a suppression takes effect when it happens, and the pending work is stopped then. This is the same discipline the follow-up queue uses everywhere: a commitment can be stopped for one thread or for one person, and stopping is not a state a later job discovers.

## Every stopping event

| Event | Scope of the stop | Reversible? |
|---|---|---|
| Any reply at all | This prospect's cold path | Not as a cold path — it is a conversation now |
| Do-not-contact | Every channel, every future conversation | By a person only; never by the Assistant |
| Unsubscribe | The channel the recipient acted on | By the recipient, in practice |
| A hard delivery failure | That route | Only if the route changes |
| A person stops it | One thread, or one person entirely | Yes — a person can restart what a person stopped |
| Identity resolution matches an existing relationship | The cold path ends; the relationship continues | Not applicable — nothing was wrong |
| The channel's autonomy is set to `off` | Everything on that channel | Yes, by changing the mode |

Notice that a stop and a pause are different. Setting a channel to `draft_only` does not stop a sequence — it writes and stops before sending, which is a different thing you may want when you are watching what Connect would say rather than ending an outreach effort.

## Stopping one by hand

1. Decide the scope: this thread, or this person everywhere.
   - Result: Stopping the thread leaves other conversations with the same person alone; stopping the person covers every channel and every future conversation.
2. Give the reason.
   - Result: Whoever inherits the account can tell a deliberate stop from a lapsed one, which is the difference between a considered decision and an unexplained silence.
3. If the answer is *never again*, record do-not-contact rather than stopping the sequence.
   - Result: A stop ends this effort; a do-not-contact entry holds across channels and outlives whoever set it.
4. Check the follow-up queue afterwards.
   - Result: A pending commitment created before the stop is visible there, and seeing it empty is the confirmation that nothing is still due.

> **Note** Blocking is stored as a memory row tagged `block:<channel>` against the contact, and the directive reader looks only at the tag list. That is why a block survives a new conversation months later rather than applying only to the thread it was set on.

## Confirming it actually stopped

**The follow-up queue** — The clearest evidence. A stopped sequence leaves no dated commitment behind; anything still listed is still going to happen.
**The decision log** — Refusals are recorded as decisions, so a suppression that stopped a send appears with the rule that produced it.
**The prospect record** — Already-contacted stays set — stopping does not rewrite history, and it should not, because the business was in fact written to.
**The conversation** — A held message that was never sent leaves nothing on the recipient's side. There is no message to recall because none was handed to a provider.

> **Careful** Deleting a prospect is not a way to stop a sequence, and it loses the already-contacted fact along with the research. The next run of the same search can then discover the same business as new. Stop it, or record do-not-contact; do not delete it.

## Questions

### If a prospect replies angrily, do I need to do anything to stop the sequence?

The sequence is already stopped — any reply ends the cold path. What you may want to add is a do-not-contact entry, which is durable and cross-channel in a way that a single stop is not.

### Does stopping one prospect affect the whole search?

No. A stop applies to a thread or a person, not to the criteria that found them. If you want a whole category to stop appearing, add a disqualifier to the criteria instead.

### Can the Connect Assistant stop a sequence for me?

It can stop follow-ups and act on records within its rights, which are narrower than a person's. Clearing a do-not-contact entry is outside them entirely — that asymmetry is deliberate, because the safe direction to be wrong in is not sending.

## Related

- [A prospect replies](https://connectbyjbrh.com/docs/prospects/prospect-reply/)
- [The compliance check before outreach](https://connectbyjbrh.com/docs/prospects/compliance-check/)
- [First outreach](https://connectbyjbrh.com/docs/prospects/first-outreach/)
- [Follow-ups in Connect](https://connectbyjbrh.com/docs/follow-ups/)
- [Outreach was blocked](https://connectbyjbrh.com/docs/troubleshooting/outreach-blocked/)
- [Memory in Connect](https://connectbyjbrh.com/docs/memory/)

## What this page is based on

- docs-source/sources/CHANNELS.md §1 — compliance, suppression and do-not-contact
- docs-source/sources/GENERAL.md §3 and §6 — blocking as a tagged memory directive
- docs-source/sources/GENERAL.md §7 — follow-ups, stop_for_thread and stop_for_person
