Voice

Transfer Result

How the live warm transfer offered by ``/handoff`` went (RO-064). ``connected``: the teammate was briefed and joined the caller; the briefing goes on the lead's timeline. ``no_answer`` / ``busy`` / ``failed``: the handoff task note is added instead (also when the call ends without a report). Idempotent (``recorded: false`` once reported); 409 when no transfer was offered on this call.

API key access

This route has its own authentication (or none); an API key is not used here.
POST/api/v1/calls/{call_id}/transfer-result
AuthorizationBearer <token>

Per-call token issued when the call was created (job metadata api_token).

In: header

Path Parameters

call_idstring
Formatuuid

Header Parameters

X-Workspace-Id?string | null

Workspace of the call (must match the token).

lead_idstring
Formatuuid
statusTransferResultStatus

How the live transfer went (RO-064).

Value in"connected" | "no_answer" | "busy" | "failed"
sip_status?integer | null

The SIP final response code when the team line was not answered.

Formatint32
Range100 <= value <= 699
summary?string

The briefing the teammate heard (added to the lead's timeline when connected).

Default""
Lengthlength <= 2000

Response Body

curl -X POST "http://localhost:8000/api/v1/calls/497f6eca-6276-4993-bfeb-53cbbbba6f08/transfer-result" \  -H "X-Workspace-Id: string" \  -H "Content-Type: application/json" \  -d '{    "lead_id": "9bddab70-98e6-43a9-8f32-c9788b9de0c0",    "status": "connected"  }'
{
  "status": "string",
  "recorded": true
}
Empty
{
  "detail": [
    {
      "loc": [
        "string"
      ],
      "msg": "string",
      "type": "string",
      "input": null,
      "ctx": {}
    }
  ]
}