Skip to main content
Feather can run customer email as a conversation channel. You connect a mailbox, inbound mail creates or continues a conversation thread, and your assistant drafts replies that you can review before they go out.

Connect a mailbox

Connect a Gmail or Microsoft mailbox through hosted OAuth. Start the flow bound to an assistant (or team):
Response
Send the user to authorize_url to grant access. Once connected, list your mailboxes:
Each account reports its 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.
In v1, 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:
A draft moves through draftsubmittedapprovedsendingsent (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.