Send Reply Draft
Send an approved draft to the lead, threaded under their reply. 409 if the draft isn't approved, the lead may not be contacted (suppressed, opted out, no consent basis), the mailbox isn't connected or hit its daily cap; 502 on a provider error. A resource rate limit (RO-228: the core's per-mailbox/domain/workspace/provider token buckets) answers 409 `contact_deferred` with the `reasons` and `next_allowed_at`. Unsubscribe (RO-104): every send carries one-click `List-Unsubscribe` headers. A reply in the lead's own thread has no footer; a call recap (or a reply sent from another mailbox, i.e. a new thread) gets the CAN-SPAM footer with the postal address (409 `missing_postal_address` without one).
API key access
/api/v1/reply-drafts/{draft_id}/sendAccess token from /api/v1/auth/login, or an API key (ro_pat_..., RO-176) from /api/v1/workspaces/current/api-keys: the key implies its workspace and needs the route's scope. MCP connectors (/api/v1/mcp only) may use an OAuth access token (ro_oat_..., RO-284).
In: header
Path Parameters
uuidHeader Parameters
Id of the workspace to act on (must be a member).
Response Body
curl -X POST "http://localhost:8000/api/v1/reply-drafts/497f6eca-6276-4993-bfeb-53cbbbba6f08/send" \ -H "X-Workspace-Id: string" \ -H "Content-Type: application/json" \ -d '{}'{
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"lead_id": "9bddab70-98e6-43a9-8f32-c9788b9de0c0",
"classification_id": "47ac1861-59ea-4c4a-93ac-eecdeb4d654d",
"mailbox_id": "4d23d1af-2eef-4598-a5e0-1f19ae0b0c14",
"kind": "reply",
"call_id": "0d0a16ab-a508-4d58-bf24-5dc3cb248f3e",
"category": "interested",
"status": "pending",
"subject": "string",
"body": "string",
"edited_body": "string",
"final_body": "string",
"sources": [
{
"id": "string",
"chunk_id": "string",
"document_id": "string",
"title": "string",
"source_url": "string",
"score": 0,
"used": false
}
],
"prompt_id": "string",
"model": "string",
"reviewed_by_id": "855af0f3-1bf5-496a-8d36-7729a807a554",
"reviewed_at": "2019-08-24T14:15:22Z",
"reject_reason": "string",
"sent_at": "2019-08-24T14:15:22Z",
"sent_message_id": "10e758d6-1ff1-42da-b026-45795a3d5469",
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z",
"lead": {
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"name": "string",
"email": "string",
"company_name": "string"
},
"inbound": {
"classification_id": "47ac1861-59ea-4c4a-93ac-eecdeb4d654d",
"category": "interested",
"summary": "string",
"received_at": "2019-08-24T14:15:22Z",
"subject": "string",
"snippet": "string"
}
}{
"detail": [
{
"loc": [
"string"
],
"msg": "string",
"type": "string",
"input": null,
"ctx": {}
}
]
}Reject Reply Draft
Previous Page
Update Inbox Auto Send Settings
Admins: turn "Auto-send confident answers" on or off (RO-388, off by default). Turning it on is for a person in the app only (403 `human_only` from Zero, MCP or an API key). Changes are audited (`inbox.auto_send_answers_changed`). Answers still go out only while the Inbox agent is at Auto with Email approval "none", and through every RO-368 rule.