Bulk Approve Email Drafts
Approve up to 200 pending drafts. Others are reported in `skipped` (`not_found`, `status:<status>`, `expired`).
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/bulk-approveAccess 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
Header Parameters
Id of the workspace to act on (must be a member).
1 <= items <= 200Response Body
curl -X POST "http://localhost:8000/api/v1/email-drafts/bulk-approve" \ -H "X-Workspace-Id: string" \ -H "Content-Type: application/json" \ -d '{ "draft_ids": [ "497f6eca-6276-4993-bfeb-53cbbbba6f08" ] }'{
"approved": [
"497f6eca-6276-4993-bfeb-53cbbbba6f08"
],
"skipped": [
{
"draft_id": "d998e5e8-954a-4a68-bb9e-7305e87278c0",
"reason": "string"
}
]
}{
"detail": [
{
"loc": [
"string"
],
"msg": "string",
"type": "string",
"input": null,
"ctx": {}
}
]
}Approve Email Draft
Approve a pending draft, optionally with a final edit. The runner sends it at its next pass. 409 if the draft isn't pending, or if the lead's enrollment has ended (the draft is then marked `expired`).
Edit Email Draft
Edit a pending draft (stored as `edited_*`; lint warnings are recomputed). Template variables like `{{sender.first_name}}` are allowed; unknown ones are a 422.