Reject Email Draft
Reject a pending or approved draft: it is never sent, and the runner stops the lead's enrollment (`draft_rejected`). With `regenerate: true` the AI rewrites it instead, using `reason` as feedback: a new `pending` revision, and the sequence keeps running (same errors as `/regenerate`).
API key access
sequences:write scope with an API key (ro_pat_...). A signed-in session uses the caller's role./api/v1/email-drafts/{draft_id}/rejectAccess 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/email-drafts/497f6eca-6276-4993-bfeb-53cbbbba6f08/reject" \ -H "X-Workspace-Id: string" \ -H "Content-Type: application/json" \ -d '{}'{
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"workspace_id": "0967198e-ec7b-4c6b-b4d3-f71244cadbe9",
"sequence_id": "7cd84c09-94f4-486c-9c49-de3b9cf3f74f",
"enrollment_id": "cd8e6b59-f5cf-4894-8850-4dc2dc1aaf8e",
"step_id": "5cb19d54-1551-4ee7-a292-ee3ee4dcef77",
"step_position": 0,
"lead_id": "9bddab70-98e6-43a9-8f32-c9788b9de0c0",
"status": "pending",
"subject": "string",
"body": "string",
"edited_subject": "string",
"edited_body": "string",
"final_subject": "string",
"final_body": "string",
"lint_warnings": [
{
"code": "string",
"message": "string"
}
],
"hooks": [
{
"text": "string",
"source_url": "string"
}
],
"sources": [
{
"id": "string",
"title": "string",
"source_url": "string",
"score": 0,
"used": false
}
],
"prompt_id": "string",
"model": "string",
"auto_approved": true,
"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",
"revision": 0,
"due_at": "2019-08-24T14:15:22Z",
"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"
},
"sequence": {
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"name": "string"
}
}{
"detail": [
{
"loc": [
"string"
],
"msg": "string",
"type": "string",
"input": null,
"ctx": {}
}
]
}Regenerate Email Draft
Have the AI rewrite a pending, approved or rejected draft with your feedback (default: its reject reason). The draft becomes a new `pending` revision for review; the lead's sequence keeps running. 409 for a sent or expired draft, or when the lead's enrollment has moved past the step or ended.
Enrich Lead
Run the enrichment waterfall for the lead and its company now. Fills empty fields only; suppressed or opted-out contact data is never added. 404 missing lead, 422 mobile lookups disabled, 503 no provider configured. A workspace's own enrichment provider (Settings -> AI & providers, kind `enrichment`) replaces the server's providers; its request budget answers 429 with `Retry-After` when used up. With `ENRICHMENT_ASYNC=true` (off by default) the same checks run, the enrichment is queued as a background job and the response is 202 with the job. A repeated request for the same lead and options while that job is queued or running, or one with the same `Idempotency-Key`, returns it.