Replies

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

Not available to API keys or connected apps: only a signed-in person can call this route.
POST/api/v1/reply-drafts/{draft_id}/send
AuthorizationBearer <token>

Access 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

draft_idDraft Id
Formatuuid

Header Parameters

X-Workspace-Id?X-Workspace-Id

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": {}
    }
  ]
}