Answering in seconds only counts if the answer is right. Auto-send looks like one decision but is really a sequence of them: whether to reply at all, what to ground the reply in, how sure the model is, and whether anything about this conversation makes sending unwise. This is that sequence.
Retrieval and tool calls run in parallel with the rest of the work rather than one after the other, which is why an agent with knowledge and tools isn't slower than one without.
Some messages never reach the model at all:
| Filter | What it drops |
|---|---|
| Relevance classifier | Newsletters, marketing blasts, job alerts, OTPs, receipts for unrelated services and general automated noise. It fails open - if the classifier errors, the message is treated as real rather than silently dropped. |
| Security & banking | Messages classified as security alerts or banking mail are dropped before any agent sees them. |
| Your privacy exclusions | The sender domains, addresses and subject keywords you block in Settings, plus the preset banking and security categories. |
| Self-send guard | Mail from your own connected address, which would otherwise create a reply loop. |
Dropped is not held
The model emits a 0-1 confidence score alongside every reply. It scores based on how well grounded the reply is in its knowledge base or conversation context - not how fluent the text sounds. A safety layer then adjusts based on the model's own intent and knowledge classification.
| Turn kind (from the LLM) | What the gate does |
|---|---|
| Action (greeting, thanks, scheduling, confirming) | Keeps the model score. The prompt asks the model to score true greetings at 0.92+; a mid-band score is not raised into auto-send. |
| Information with strong knowledge match | Keeps the model score. If grounded, it should already be high. |
| Information with weak match (<55% similarity) | Caps at 55%. A loosely-matching passage cannot push a reply through the threshold. |
| Information with no knowledge hit | Caps at 45%. The model should say let me check and score low; the cap is a safety net. |
| Mixed (action + info) with no knowledge | Caps at 65%. The action part is fine but the ungrounded info part is risky. |
Escalation still overrides everything
Once a reply exists, these are checked in order:
| # | Gate | If it fails |
|---|---|---|
| 1 | Escalation triggers - negative sentiment, a request for a human, a sensitive topic | Held and marked escalated, with the reason. Confidence is not consulted. |
| 2 | Lead status - Active Client or Closed | Auto-send is blocked outright. Existing customers get a person. |
| 3 | Effective threshold - your setting, raised to at least 90% when the lead is Lost | Held as a low-confidence draft. |
| 4 | Channel auto-reply toggle | Held, with a reason saying the channel is off rather than that the reply was poor. |
| 5 | Conversation-level automation - paused, taken over, or a terminal stage | Held, with the specific reason. |
Held drafts carry a plain-language reason rather than an error code, and each one points at a different fix:
| Reason | The real fix |
|---|---|
| Confidence NN% - below the NN% threshold | Knowledge, not the slider. Find the question in knowledge gaps and answer it. |
| Escalated to you for human review | Nothing - this is the system working. Check the trigger was fair. |
| Auto-send is off for this channel | A toggle, not a quality problem. The reply was good enough to send. |
| Paused - manual / agent off / stage | Automation is off here. Re-enable it if that wasn't deliberate. |
| Needs review - contradicts call | A follow-up disagreed with what was agreed on a call. Read the call notes before sending. |
Dropping the threshold raises the auto-send rate without improving a single reply. It is the right move only once you've read a batch of held drafts and concluded they were genuinely fine.
For the settings themselves, see Auto-Send Policy.