Gate AI replies through reply-approvals and AI deflection
Two Inbox settings consoles decide whether an AI-drafted reply ever reaches a customer. Inbox → Settings → Reply approvals holds a per-agent map of who must get supervisor sign-off before anything they submit ships. Inbox → Settings → AI Deflection holds the controls for the AI side: the co-pilot kill switch and auto-approve confidence bar, the ticket-deflection thresholds, the budget caps, and the draft-quality rollup. However the AI drafted it, the reply still goes through the gate the submitting agent is under — and an operator remains the authority on every decision. Both consoles are tenant-owned controls you set per workspace; everything on this page is per-agent or per-workspace scope, not a platform-wide gate.1. How a reply gets stamped needs-approval
The reply-approval gate resolves in two levels every time a reply is submitted — a per-agent override set under Inbox → Settings → Reply approvals wins over the org default, and the org-widerequire_reply_approval_default inbox setting is the fallback for agents with no override. Default is off: until you turn the gate on, every reply dispatches directly.
When the AI co-pilot is enabled, a draft card appears above the composer with Accept, Edit, and Discard buttons. Accepting the draft (or editing it and sending) submits the reply through the same queue endpoint a hand-typed reply uses — so if the agent is gated, the AI-assisted reply queues for review exactly like a hand-composed one. The gate applies to the submitting agent, not to how the text was drafted.
The workspace owner is never gated: the server always dispatches the owner’s replies directly, and enabling the gate on the owner row is refused — otherwise the sole administrator’s replies would strand behind their own queue.
2. Work the reply-approvals console
Open Inbox → Settings → Reply approvals as an owner, admin, or supervisor. The page shows the org default as a read-only badge — “Approval required” or “Not required” — and one switch row per team member: flipping the switch writes that agent’s per-agent override, and the row is re-seeded from the persisted map on reload so the setting survives navigation. The owner row renders locked with an “Always sends directly” note. Long team lists mount in 25-row pages behind a Load more control with a “Showing N of M” counter. The queue itself lives under Inbox → Pending replies: one shared list of every gated reply, oldest first, with Approve & send and Reject inline on each card. Approve dispatches the exact queued body through the channel path a direct reply would take; reject dispatches nothing and opens a dialog for an optional reason of up to 1,000 characters — for an AI-drafted reply, that reason (up to a 1,000-character note) is the feedback the agent reads before they regenerate or edit and resubmit. Every decision is audit-recorded: the queue row names the submitting user and the deciding user, stamps the decision time, holds the reject reason, and for approvals points at the dispatched message. Settings changes are audit-recorded too. That pair — submitter and decider — is the record a QA review reads, exactly as it does for hand-composed replies.3. Pair with AI deflection
Open Inbox → Settings → AI Deflection as an owner or admin. The co-pilot section’s Auto-approve confidence threshold marks send-shaped drafts at or above the bar as eligible for one-click approve-and-send in the composer — a routing hint on the draft, never a dispatch. Eligibility is advisory: an operator still approves or edits before anything is sent, drafts suggesting escalate or end are never eligible at any confidence, and a gated agent’s accepted draft still queues behind the reply gate regardless of eligibility. The deflection section’s two thresholds carry the routing decisions the drafts follow: the interactive threshold (default0.75) gates the agent-facing deflect card, and the auto threshold (default 0.85) gates the fully automatic inbound path. The auto bar must sit at or above the interactive bar — auto-reply with no human in the loop never runs at a looser bar than the agent-vetted card. enabled: false kills both paths before any model call.
A draft accepted as approved reads as resolved-by-operator approval rather than unresolved, and only approved replies can become a deflection resolution on the interactive path. On the auto path, a high-confidence answer resolves the thread in one shot — but only above the auto bar you set. Below it, the reply waits for an operator the same way the draft card does.
4. Safety posture
The AI recommends; the operator decides.auto_approve_eligible is a routing flag, never permission to skip review, and require_human_review stays true on every draft. Drafts that suggest escalating or ending the conversation are never auto-approve-eligible, and confidence values are clamped to the 0–1 range before comparison.
The same page carries the budgets: a monthly resolution cap with a soft alert percentage, a hard-pause toggle that routes conversations to a human queue once the cap is hit, and an optional per-conversation soft cost ceiling that shows an “Approaching budget” chip in the inbox. The re-check trigger is yours to set — the AI draft quality card near the bottom of the page rolls up how often agents accept, edit, or discard suggested replies, per agent or per template, so you can see which drafts actually land before you loosen the thresholds.
The kill switches are the authority: with co-pilot or deflection disabled, agents keep working the inbox — the AI simply stops drafting and no model call is made. Operator review continues unchanged.
5. Example end-to-end
A customer writes in on WhatsApp. The co-pilot drafts a reply; the assigned agent accepts it, maybe after a light edit, and submits. If that agent is gated, the submission lands in Inbox → Pending replies; a supervisor reads the proposed body, clicks Approve & send, and the customer receives the exact reviewed text on WhatsApp. The queue row records both sides of the pair. If instead the inbound was confident enough to clear the auto threshold, the AI deflection engine answers and resolves the thread outright — no draft card at all — and the resolution counts toward the monthly cap and the savings rollup on the AI Deflection page. Where the auto threshold isn’t met, the agent-facing deflect card (interactive threshold) appears instead, offering a self-serve answer that closes the ticket as resolved-by-AI only after a human accepts it. Either way, an unresolved tail routes to the human queue per your fallback settings.See also
- Inbox AI co-pilot — the confidence bar and send-only gate in depth.
- Pending replies — the supervisor queue page walkthrough.
- Reply approvals API — the endpoints the settings console mirrors, with curl samples.
- Inbox setup — channels, routing, SLA, and the workspace these gates operate inside.