Managed Agents

Message drafts

Review-before-send editable message drafts for Gmail, Outlook, and Slack, with human-only Send and delivery reconciliation.

View as Markdown

Connected Gmail, Outlook, and Slack accounts let an agent draft a new plaintext message for a human to review, edit, and send — instead of the agent sending directly. Email drafts have editable To, Cc, Bcc, Subject, and body; Slack drafts have an editable destination (an existing channel or DM conversation, with an optional parent thread) and text. Attachments, email replies, and scheduled sends are outside this feature, and SMS is not supported.

Scope

Creating or editing a draft never sends a message or creates a provider mailbox draft. Send is only available to the signed-in human through the review card (Web and Mobile) or the HTTP API below — never to the model. Connect the relevant connector before asking an agent to compose one.

Tools

An agent with a connector's send/draft tools enabled gets review tools instead of tools that send directly:

ToolDescription
gmail_send, gmail_create_draftCreate an editable inline email draft instead of sending or creating a mailbox draft. Plain text, new emails only.
outlook_create_draftCreates an editable inline email draft. Replaces Outlook's direct send tool.
slack_create_draftCreates an editable inline Slack message. Requires an exact channel/DM ID and optional parent thread timestamp, resolved first with Slack's search tools. Replaces Slack's hosted send/draft tools; a read-only Slack selection stays read-only.
message_draft_statusReads a draft's current status and revision. The model should read this rather than assume a message was sent.
update_message_draftEdits a draft's fields at its current revision. It cannot send.

Custom manifest MCP servers keep their own, separate tool-approval flow and are unaffected by this feature.

Review and send

The card shows the editable fields and lets the user Send or Discard. Each edit and action is checked against the draft's current revision; editing with a stale revision is rejected so concurrent or reloaded clients never silently overwrite each other. Sending freezes the saved fields and pins one delivery attempt — retries can't produce a second message.

Because a network or provider error can leave delivery uncertain, Send does not mean "delivered": drafts move through Sending → Sent or Unconfirmed (never automatically resent), reconciled against a read-only provider lookup (for example, Gmail's Sent mailbox, or Slack's conversation history). An Unconfirmed draft can reconnect the same provider account and re-check delivery without creating a new attempt; connecting a different account can't authorize sending it. Once delivery is confirmed, the agent's turn continues automatically with the sent content and receipt.

Outlook re-authorization

Outlook drafts require the delegated User.Read scope to pin the sending mailbox identity. Accounts connected before this scope was added need to reconnect through Connectors before Outlook drafts work again.

API

Drafts live under the owning session and are addressed by the actor/organization that created them:

MethodPathDescription
GET/v1/sessions/{id}/drafts/{draft_id}Get a draft's current fields, status, and revision.
POST/v1/sessions/{id}/drafts/{draft_id}Apply an action at an exact revision: edit (with updated fields), send, discard, reconcile (re-check delivery), or reconnect (rebind to the reconnected account). Returns 409 on a stale revision or a locked draft.

A draft's status is one of ready, sending, sent, failed, uncertain (shown as Unconfirmed), or discarded. Responses carry Cache-Control: private, no-store.

See API reference for authentication.

On this page