# Outreach was blocked

Six things can stop outreach, and they behave differently: two hold the message until a condition changes, three refuse it outright, and one never wrote it at all. The reason is recorded on the decision trail with the rule that produced it. Some of those refusals a person may lift; one of them is deliberately beyond the Assistant entirely.

- **Status:** Available
- **Audience:** both
- **Channels:** email
- **In the app:** #/needs-you, #/prospects, #/mailboxes
- **Last verified:** 2026-09-10
- **Canonical:** https://connectbyjbrh.com/docs/troubleshooting/outreach-blocked/

## What you are seeing

Either a draft that will not go, an item sitting in Needs You that approving does not clear, or a prospect marked as not contacted with no draft anywhere. Those three appearances come from different gates, and the difference matters more than the symptom.

A refusal is a decision, and it is logged like one — with what was decided, by what, under which rule, and what happened. The Decision Log is the first place to look, not the last.

## The six gates and who can lift them

| Gate | Behaviour | Who can lift it |
|---|---|---|
| Autonomy is `off` | Nothing is drafted at all | Anyone who may change autonomy for that scope |
| Autonomy is `draft_only` | Written, never offered for approval | The same — but note the mode is doing exactly what it promises |
| Autonomy is `ask_before_send` | Held in Needs You until approved | Any member permitted to send on that channel |
| Daily allowance spent | Held, not lost; approval is recorded and the send waits | Time, or a plan change; nobody overrides it per message |
| Sender not ready | Held; the mailbox is connected but not healthy | An administrator, by repairing the mailbox |
| Compliance refusal | Refused outright | Depends on the origin — see below |

> **Note** The commonest confusion on this list is between `draft_only` and `ask_before_send`. Both leave a written reply that has not gone. Only the second one is asking you a question; the first is deliberately not asking, which is the whole reason to choose it.

## Compliance refusals are not all the same

**A bounce-driven suppression** — The address failed. Correcting the address is the fix; clearing the suppression without correcting anything invites the same bounce.
**An unsubscribe** — The recipient asked. It is honoured across everything that would write to that address, not only the sequence that caused it.
**A do-not-contact entry** — The strongest of the three. It is not cleared casually, and the Assistant cannot clear one at all — that limit is deliberate and is part of the Assistant having narrower rights than a person.
**A block directive on the contact** — A `block:<channel>` tag in memory. It holds across channels and future conversations, and it is read from the tag list rather than from any prose written beside it.

> **Careful** Before lifting any compliance refusal, read its origin. A suppression with a recipient's own request behind it is not an obstacle to route around, and the record of who lifted it survives longer than the reason anyone gave at the time.

## What Connect completed and what it did not

- Completed: the prospect, its research and its evidence are intact, and the decision that stopped the send is recorded with its rule.
- Completed, for a held message: the draft exists, unchanged, and will be sent as written when the hold clears.
- Not completed: nothing reached a provider, so there is no message in flight, no delivery attempt and nothing in your sent folder.
- Not completed: for an outright refusal, no draft is queued and none will appear on its own when circumstances change.
- Not completed: the prospect's already-contacted state did not move, which is correct — a held message is not a slow message, it is no message.

## Working it through

1. Open the Decision Log and find the refusal.
   - Result: The rule that produced it is named. This is faster than inspecting settings one at a time, and it is the only route that works when two gates apply at once.
2. If it is autonomy, check the narrowest scope first.
   - Result: Contact beats endpoint beats channel beats workspace, so a rule set against one organisation explains a block that the channel's settings do not.
3. If it is readiness, open the mailbox.
   - Result: Connected is not healthy. An administrator repairs it; the held messages then drain without being re-approved.
4. If it is compliance, decide whether the origin permits lifting.
   - Result: Often it does not, and the correct outcome is that this prospect is not contacted on this channel.

Escalate when the Decision Log shows no refusal and no hold, and the message still has not gone. That is not one of the six gates and is worth reporting with the prospect and the time.

## Questions

### I approved it and nothing happened. Why?

Almost always the daily allowance. The approval is recorded and the send waits rather than failing, so the item stays in place until it goes. Nothing is lost and nothing needs approving twice.

### Can I override a do-not-contact entry to send one message?

Not as a one-off exception, and not through the Assistant at any time. The entry is cleared or it is not, by somebody with the right to clear it, and the clearing is recorded.

### Does a block on email stop a call as well?

A block directive is written per channel, and a `block:` tag names the channel it applies to. What it does do is hold across future conversations rather than expiring with the thread that prompted it.

## Related

- [The compliance check before outreach](https://connectbyjbrh.com/docs/prospects/compliance-check/)
- [Sender readiness](https://connectbyjbrh.com/docs/prospects/sender-readiness/)
- [What Connect may do](https://connectbyjbrh.com/docs/autonomy/)
- [The suppression list](https://connectbyjbrh.com/docs/email/suppression-list/)
- [First outreach to a prospect, end to end](https://connectbyjbrh.com/docs/workflows/prospect-outreach/)
- [The prospecting allowance is spent](https://connectbyjbrh.com/docs/troubleshooting/prospect-allowance/)

## What this page is based on

- `docs-source/sources/GENERAL.md` §5 and §6 — autonomy, the audit trail and directives
- `docs-source/sources/CHANNELS.md` §4 — the compliance check before outreach
- `backend/app/autonomy.py`, `backend/app/prospect_compliance.py`, `backend/app/metering.py`
- Connect capability registry (`docs-source/facts.py`)
