Mail: Save draft
mail_save_draftWrite a reply (or a new letter) into the caller's Drafts and STOP there — nothing is sent. This is the safe half of answering mail: the agent composes, the person reads it in their mail client and presses send. Pass reply_to_message_id to answer a message: the recipient, the subject and the threading headers are taken from the stored message, so the reply goes back to whoever wrote, not to an address quoted inside the letter. CONFIRMATION: this tool is PROPOSED, never performed directly. You get status='confirmation_required' with an action_id and a plan_token, and the write happens only after confirm_action.
Tool call template
Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {
"body": "<body>"
},
"name": "mail_save_draft"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| to | No | Recipients. Required for a NEW letter; overrides the sender when replying. | |
| body | Yes | ||
| mailbox | No | Which of the caller's mailboxes to write from (label). Required only for a new letter when the caller has more than one. | |
| subject | No | ||
| attachments | No | Files to attach, at most 10 and 25 MB in total. Each item is EITHER {from_message_id, part} — an attachment of a message (id from mail_list_messages, part from mail_get_message) — OR {document_id} — one of the caller's own Documents. To attach a file you generated, store it with upload_document_base64 and pass the document_id it returns; raw file content is not accepted here. | |
| reply_to_message_id | No | Answer this message (id from mail_list_messages). Answering a company-mailbox message replies FROM that mailbox. |