# An outreach sequence, end to end

Outreach starts from a prospect with a contact address that came from evidence, passes a compliance check before anything is written, and stops the moment a reply arrives. The reply is then handled on the ordinary conversation path, not the outreach one: the two paths have different gates and are deliberately never merged.

- **Status:** Available
- **Audience:** both
- **Channels:** email
- **In the app:** #/prospects, #/outreach-advanced, #/needs-you, #/inbox
- **Last verified:** 2026-09-10
- **Canonical:** https://connectbyjbrh.com/docs/workflows/outreach-sequence/

## First contact to stop

1. Trigger — a qualified prospect with a contactable address, reached by research rather than by guesswork.
2. User or external event — a person, or the Assistant, starts the sequence; nothing is sent to a stranger without somebody choosing to.
3. Authentication and workspace resolution — the sequence runs inside one workspace, and the sending mailbox is one of that workspace's own.
4. Ingest — the prospect record, its evidence and the angle the research produced are loaded together.
5. Canonical record — the outreach lives as messages on a thread against a contact, exactly like any other conversation, so a reply has somewhere to land.
6. Research and reasoning — the message is written from the evidence held about that organisation, not from a template with a name substituted into it.
7. Knowledge, memory and rules — a `block:email` directive on the contact ends the sequence before a word is written, and it holds on every future conversation too.
8. Autonomy and approval — a cold first contact is the case most workspaces hold. Under `ask_before_send` it becomes an approval; the sender's readiness is checked before it goes.
9. Compliance and the provider — suppression, unsubscribe, complaints and do-not-contact are all checked in one place, and only then does `outbound.py` send.
10. Result — sent with provider evidence, held, or refused with the reason recorded.
11. Relationship, timeline and memory — the attempt is on the organisation's record whether or not anybody answers, so the next person to look knows it happened.
12. Audit, usage and Needs You — the send is metered, the decision is logged, a reply is queued for a person, and a refusal is logged as a decision rather than swallowed.

## The gates, and what each one refuses

| Gate | What you see | What changes | What can fail |
|---|---|---|---|
| Contactability | A prospect with no address is not messaged | Nothing is sent | Expecting Connect to fill the gap — it never guesses an address, and a plausible pattern is not evidence |
| Suppression | The prospect is skipped, with the reason shown | A recorded refusal | A suppression that a person clears without reading why it was set |
| Unsubscribe | The sequence stops permanently for that address | A suppression record | Assuming an unsubscribe on one address covers a colleague's — it does not, unless a block is set on the person |
| Do not contact | The prospect is never approached again | A recorded refusal | Nothing clears it casually, and the Assistant cannot clear one at all |
| Sender readiness | The message waits rather than going from an unready mailbox | Nothing is sent | Sending cold mail from a mailbox that has never sent anything |
| Autonomy | An approval instead of a send | A held message in Needs You | A first contact going out unreviewed because the channel rule was never narrowed for outreach |
| Allowance | The sequence pauses | Nothing is consumed | Reading a pause as a failure and starting the sequence again |

> **Note** Every one of these is checked in one place, before any outreach, rather than in each screen that can start a sequence. That is what makes the answer to 'why was this person not contacted' a single recorded reason instead of an archaeology exercise.

## Why a reply leaves the sequence

The moment somebody answers, the work stops being outreach and becomes a conversation. Connect treats that as a change of path, not a change of stage. Outreach email and a customer reply run on separate paths with different gates, and they are never merged — which is the reason a reply is not answered by the next message in a sequence.

The practical difference is what each path is allowed to assume. Outreach is unsolicited and is gated on evidence, consent and suppression before anything is written. A reply is solicited: the person chose to write, and the gates that matter are the ordinary ones — autonomy, the daily allowance, and whatever memory says about them. Merging the two would either strangle replies with cold-outreach checks or let a sequence inherit a reply's permission to keep writing.

**A positive reply** — Handled on the conversation path, with the prospect's research already attached to the person. Where it changes the commercial picture, [from an email to an opportunity](/docs/workflows/email-to-opportunity/) is the next step.
**A negative reply** — The sequence stops. Whether the address is suppressed as well depends on what the reply asked for; a refusal to buy is not an unsubscribe.
**An unsubscribe** — A suppression, immediately, on the path described in [an unsubscribe request](/docs/workflows/unsubscribe-workflow/).
**A bounce or a complaint** — Handled as its own flow, because both say something about the address rather than about the person's interest.
**Silence** — The sequence continues to its own stop condition, and the attempts stay on the organisation's record.

## What outreach may not do here

- It may not invent an address. A contact reaches a sequence with evidence behind it or not at all, which is the difference between low-volume outreach that works and bulk mail that damages a domain.
- It may not bypass the send boundary. Cold mail goes through `outbound.py` like everything else, so it is metered, suppression-checked and recorded with the provider's acknowledgement.
- It may not re-approach a do-not-contact entry, and the Assistant cannot clear one on your behalf.
- It may not treat an uncertain send as a failure and try again — that is how one stranger receives the same cold message twice.

The honest limit worth stating: deliverability is not a setting inside Connect. What Connect controls is who is contacted, on what evidence, how often, and with what recorded consent. Whether a message reaches an inbox also depends on the sending domain's own reputation and authentication, which live with the mail host.

## Questions

### Can I run a sequence to a list I uploaded?

An uploaded list is a source of prospects like any other, and every row goes through the same gates — contactability, suppression, unsubscribe and do-not-contact — before a message is written. Uploading an address does not create consent to use it.

### How many messages does a sequence send?

That is the sequence's own configuration rather than a fixed number, and it stops early on any reply, any suppression and any block. The stop conditions matter more than the length: see [stopping a cold sequence](/docs/prospects/cold-sequence-stop/).

### Where do I see why somebody was skipped?

In the Decision Log. A refusal is recorded as a decision — what was refused, under which rule — precisely so that a skipped prospect is explainable months later without re-running anything.

## Related

- [Outreach email versus a customer reply](https://connectbyjbrh.com/docs/email/outreach-email/)
- [First outreach](https://connectbyjbrh.com/docs/prospects/first-outreach/)
- [The compliance check before outreach](https://connectbyjbrh.com/docs/prospects/compliance-check/)
- [Stopping a cold sequence](https://connectbyjbrh.com/docs/prospects/cold-sequence-stop/)
- [The suppression list](https://connectbyjbrh.com/docs/email/suppression-list/)
- [An unsubscribe request, end to end](https://connectbyjbrh.com/docs/workflows/unsubscribe-workflow/)
- [Connect does not guess email addresses](https://connectbyjbrh.com/docs/prospects/no-guessed-email/)
- [Evidence-first prospecting without guessed emails](https://connectbyjbrh.com/research/evidence-first-prospecting/)

## What this page is based on

- Connect source pack — channels, §1 compliance: one place for suppression, unsubscribe, complaints and do-not-contact; outreach and reply never merged (`docs-source/sources/CHANNELS.md`)
- Connect source pack — the Assistant's narrower rights, the audit trail records refusals (`docs-source/sources/GENERAL.md` §5, §8)
- Connect capability registry (`docs-source/facts.py`) — `prospect_outreach`, `no_guessed_email`, `suppression_dnc`
