Connect a mailbox
Connect a Gmail or Microsoft mailbox through hosted OAuth. Start the flow bound to an assistant (or team):Response
authorize_url to grant access. Once connected, list your mailboxes:
address, provider (gmail or microsoft), and status (pending, active, paused, error, needs_reauth, or retired). Update the signature or re-bind the assistant with PATCH /v1/email/accounts/{account_id}.
Drafts and approval
Assistant replies are created as drafts so a human can review them before they send. A draft is authored against a conversation (session_id) and a connected account_id.
mode must be human_only — a human reviews and approves every draft before it sends. (copilot, which lets the assistant auto-draft, is reserved for a future release and currently returns 422.) Approve and send a draft with:
draft → submitted → approved → sending → sent (or failed/discarded). You can only edit a draft while it is in draft. List drafts for a conversation with GET /v1/email/drafts?session_id=<id>.
Threads and delivery
GET /v1/email/threads/{thread_id}— the full thread: participants, subject, and every message.GET /v1/email/messages/{message_id}/events— the delivery audit trail for a sent message (delivery status and events).
Next steps
Human-in-the-loop
Approvals and handoffs — the same review pattern the email draft flow uses.
Channels
How email fits the unified conversation model.