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.
First contact to stop#
- Trigger — a qualified prospect with a contactable address, reached by research rather than by guesswork.
- User or external event — a person, or the Assistant, starts the sequence; nothing is sent to a stranger without somebody choosing to.
- Authentication and workspace resolution — the sequence runs inside one workspace, and the sending mailbox is one of that workspace's own.
- Ingest — the prospect record, its evidence and the angle the research produced are loaded together.
- 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.
- Research and reasoning — the message is written from the evidence held about that organisation, not from a template with a name substituted into it.
- Knowledge, memory and rules — a
block:emaildirective on the contact ends the sequence before a word is written, and it holds on every future conversation too. - Autonomy and approval — a cold first contact is the case most workspaces hold. Under
ask_before_sendit becomes an approval; the sender's readiness is checked before it goes. - Compliance and the provider — suppression, unsubscribe, complaints and do-not-contact are all checked in one place, and only then does
outbound.pysend. - Result — sent with provider evidence, held, or refused with the reason recorded.
- 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.
- 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 |
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 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.
- 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.pylike 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.
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.