Send a human reply
POST /api/conversations/{id}/reply
Sends a reply to a conversation on behalf of a human agent. This bypasses the AI pipeline entirely — the message is delivered directly to the customer via the conversation’s channel (email, WhatsApp, etc.). The conversation must be in ‘human_managed’ status (use the take-over endpoint first). The reply is delivered via a Temporal workflow signal, so delivery is guaranteed even under transient failures.
Authorizations
Section titled “Authorizations ”Parameters
Section titled “ Parameters ”Path Parameters
Section titled “Path Parameters ”The unique identifier of the conversation to reply to.
Request Body
Section titled “Request Body ”object
The reply message text to send to the customer.
Example
Hi Alex, your order #4521 is currently in transit and should arrive by March 27. Here is your tracking link: https://tracking.example.com/TRK-10123456784Responses
Section titled “ Responses ”The reply was accepted and will be delivered to the customer.
Simple success acknowledgment returned by action endpoints (reply, resolve, take-over, etc.).
object
Always true on success.
Example
trueThe request body is invalid (e.g., empty content).
Standard error response returned by all endpoints on failure.
object
A human-readable error message describing what went wrong.
Example
Conversation not foundA machine-readable reason on some refusals, for example ‘key_lock’ when an API key’s brand or workspace restriction does not cover the action.
Example
key_lockOn a 403 for an API key without a scope the endpoint requires: the scopes the key lacks.
Example
[ "mcp:write"]On a 409 with code duplicate_question or duplicate_rule_text: the knowledge base entry or policy that already holds the question or rule text.
Example
11223344-5566-4788-99aa-bbccddeeff00On a 422 about one MCP connection a request names, from an assignment or an agent create or update (a connection that does not exist, one listed twice, or one that does not declare a tool named): the connection, as the request named it.
On the same 422: the tool names the connection does not declare.
Example
[ "get_orders"]On the same 422: the tools the connection declares.
Example
[ "get_order", "search_orders"]No conversation exists with the given ID in the authenticated tenant. An API key restricted to a brand or workspace receives the same answer for a conversation in a workspace outside its restriction.
Standard error response returned by all endpoints on failure.
object
A human-readable error message describing what went wrong.
Example
Conversation not foundA machine-readable reason on some refusals, for example ‘key_lock’ when an API key’s brand or workspace restriction does not cover the action.
Example
key_lockOn a 403 for an API key without a scope the endpoint requires: the scopes the key lacks.
Example
[ "mcp:write"]On a 409 with code duplicate_question or duplicate_rule_text: the knowledge base entry or policy that already holds the question or rule text.
Example
11223344-5566-4788-99aa-bbccddeeff00On a 422 about one MCP connection a request names, from an assignment or an agent create or update (a connection that does not exist, one listed twice, or one that does not declare a tool named): the connection, as the request named it.
On the same 422: the tool names the connection does not declare.
Example
[ "get_orders"]On the same 422: the tools the connection declares.
Example
[ "get_order", "search_orders"]