# Sender readiness

Readiness answers a narrow question: is there a mailbox that can actually carry this message right now. It checks which mailbox owns the outreach, whether that mailbox is healthy rather than merely connected, what the daily allowance has left, and which signature belongs to it. Failing readiness holds the message; it does not discard it.

- **Status:** Available
- **Audience:** both
- **In the app:** #/prospects, #/mailboxes, #/needs-you
- **Last verified:** 2026-09-10
- **Canonical:** https://connectbyjbrh.com/docs/prospects/sender-readiness/

## Connected is not healthy

A mailbox that authenticates successfully and returns nothing is a **quiet mailbox** — a health signal in its own right, not an error and not a green tick. Readiness reads the mailbox's health verdicts rather than its connection state, because a connection that works is the weakest possible evidence that mail will arrive anywhere.

Each mailbox in a workspace carries its own role, its own signature, its own autonomy setting and its own health verdicts. Outreach uses the mailbox whose role fits, and its signature — not a workspace-wide one — because the signature is a property of the mailbox that is sending.

> **Note** The same mailbox policy serves the Owner and a customer: one console over one policy, with a thin route on each side. A readiness result you see as the Owner is produced by the same code a customer sees, which is why there is no separate outreach mailbox behaviour to learn.

## What readiness checks

| Check | Passes when | What you see if it fails |
|---|---|---|
| A mailbox is chosen | A mailbox with a fitting role exists and is connected | Outreach is held with no mailbox named |
| Health | The mailbox's verdicts are good, not merely authenticated | The health verdict, on the mailbox row |
| Daily allowance | The workspace has processing left today | Work is held, and the refusal appears in Needs You |
| Signature | The sending mailbox has one | A message that would go out unsigned |
| Channel autonomy | The channel is not `off` | Nothing is drafted for that channel at all |

The allowance row deserves attention because of how it behaves elsewhere. When the daily allowance is spent, work is **held rather than dropped**, and on the inbound side the read cursor deliberately does not advance — advancing it on a refusal is how a mail agent loses messages permanently. Outreach inherits the same discipline: a spent allowance postpones a send, it does not cancel one.

## Readiness is not permission

Passing readiness means a send is *possible*. Whether it is *allowed* is a different question answered by two other things, and conflating them is the most common misreading of this screen.

1. **The compliance check** — do-not-contact, suppression, unsubscribe and prior contact, applied in one place before any outreach. A ready mailbox sends nothing to a suppressed recipient.
2. **The channel's autonomy mode** — `off`, `draft_only`, `ask_before_send` or `autonomous`, resolved at the narrowest applicable scope. A workspace can be ready in every mechanical sense and still, correctly, send nothing without a person.

Scope order matters here: a rule set against one contact beats one set against the endpoint, which beats the channel, which beats the workspace. That is how a single sensitive prospect can be held while the rest of a run proceeds.

## Failures and what they mean

**No mailbox is offered at all** — None has a role that fits outreach, or the only candidates are unhealthy. Check the Mailboxes screen before the prospect.
**A mailbox you expected is missing from the list** — There is a known shape where a row carries an empty workspace stamp: it matches no scope, so it is invisible in every list while by-id actions on it still work. It is a repair the schema owner performs, not something to fix by reconnecting — see [A row with no workspace stamp is invisible, not missing](/research/workspace-stamp/).
**Ready, then held anyway** — Compliance or autonomy stopped it. Both record why, and the reason is on the held item rather than on the mailbox.
**Sent, then reported uncertain** — A send is only *sent* when the provider acknowledges it. Uncertain is shown as uncertain rather than guessed either way, because re-sending on a maybe is how somebody receives the same message twice.

## Questions

### Can outreach use any mailbox in the workspace?

It uses the one whose role fits, and its signature. The mailbox is not a free choice at send time because the thread that follows belongs to that mailbox — a reply arrives where the message went out from.

### Does a spent allowance lose the message?

No. Work is held and the refusal is visible in Needs You. Nothing is dropped, and nothing silently disappears to be re-discovered tomorrow as a gap.

### Is readiness checked once, or again at send time?

Again. Approval is not a bypass: a message approved this morning still passes compliance and readiness when it actually goes, because a suppression added in between must win.

## Related

- [The compliance check before outreach](https://connectbyjbrh.com/docs/prospects/compliance-check/)
- [First outreach](https://connectbyjbrh.com/docs/prospects/first-outreach/)
- [The angle for first contact](https://connectbyjbrh.com/docs/prospects/personalised-angle/)
- [The readiness check before outreach](https://connectbyjbrh.com/docs/workflows/sender-readiness-check/)
- [Why 'connected' is not enough to prove mailbox health](https://connectbyjbrh.com/research/mailbox-health-beyond-connected/)
- [What Connect may do](https://connectbyjbrh.com/docs/autonomy/)

## What this page is based on

- docs-source/sources/CHANNELS.md §1 — mailboxes, health, the allowance and the send boundary
- docs-source/sources/CHANNELS.md §1 — compliance checked in one place before outreach
- docs-source/sources/GENERAL.md §5 — autonomy modes and scope order
