POST /v1/replies/:id/send
/v1/replies/:id/sendApprove a Corty suggestion and send it via Smartlead. Closes the loop for agencies working in Make or Slack, and for external AI agents — no need to return to the SalesLobe UI.
This endpoint is governed by autonomy: depending on your API key's autonomy level, the reply is either sent immediately (200 "sent") or placed as a draft in the human review queue (202 "queued_for_review"). See External AI Agents.
Try it
/v1/replies/{id}/sendhttps://slazbvfvliieskvkjtav.supabase.co/functions/v1/api-gateway/v1/replies/{id}/sendEnter your API key above to send requests
Parameters
| Field | Type | Description | |
|---|---|---|---|
body | string | required | The reply text to send |
original_suggestion | string | optional | Corty's original suggestion — used for learning comparison |
edited | boolean | optional | Whether the suggestion was modified (default: false) |
Response (200) — sent immediately
Returned when your API key has sufficient autonomy level.
{
"status": "sent",
"sent": true,
"reply_id": "uuid",
"to_email": "john@acme.com",
"body": "Hey John, great that you're curious...",
"learned": true,
"sent_at": "2026-03-21T10:00:00Z"
}
Response (202) — queued for review
Default behavior for new agents/keys (autonomy level 0).
{
"status": "queued_for_review",
"reply_id": "uuid",
"reason": "no_active_autonomy_grant",
"docs": "external-agents"
}
The draft arrived successfully and sits in the SalesLobe review queue awaiting human approval. Don't retry — resending the same call is idempotent and returns the same 202 (one pending draft per reply; the latest draft wins).
reason | Meaning |
|---|---|
no_active_autonomy_grant | No active autonomy grant for this API key — all sends go to the review queue |
review_required_at_autonomy_level_<n> | A grant exists, but this level still requires human review before sending |
Returns 404 not_found if the reply doesn't exist. Returns 409 already_sent if this reply was already sent. Returns 502 smartlead_error if the Smartlead API fails.