Skip to content
TriedDocs
Webhooks

transfer_bridged

Sent when the transfer destination answers and is connected to the caller.

transfer_bridged means the transfer worked: the destination answered and the caller is now talking to them. The agent then leaves the call.

When it fires#

After transfer_started, once the transfer driver reports success:

  • Cold transfer: the destination accepted the SIP transfer.
  • Warm transfer: the destination answered and the handoff message was played.
  • Agentic warm transfer: the transfer agent connected the caller.

Right after this event the agent ends its part of the call, which sends call_ended with disconnection_reason call_transfer. Because events are delivered independently, call_ended can reach you before transfer_bridged.

Phone calls only.

Which settings enable it#

  • Off by default. Add transfer_bridged to the agent's webhook_events.
  • URL: the agent's webhook_url, else the workspace URL (no {{variable}} substitution).
  • Timeout: the workspace timeout, else 10 s.

Payload#

{
  "event": "transfer_bridged",
  "call": {
    "call_id": "call_8c2e5a1f7b3d9e0c4a6f2b18",
    "call_type": "phone_call",
    "agent_id": "agent_5b0e2c7d9a1f4e3b8c6d2a10",
    "agent_version": 2,
    "agent_name": "Bondi Dental Front Desk",
    "call_status": "ongoing",
    "direction": "inbound",
    "from_number": "+61412345678",
    "to_number": "+61291234567",
    "metadata": {},
    "retell_llm_dynamic_variables": { "business_name": "Bondi Dental" },
    "collected_dynamic_variables": {},
    "start_timestamp": 1760675400120,
    "end_timestamp": null,
    "duration_ms": null,
    "transcript": "Agent: Hi, thanks for calling Bondi Dental, this is Ava. How can I help you today?\nUser: I need to talk to the dentist about my bill.\nAgent: Sure, I'll put you through to our practice manager now.",
    "transcript_object": [
      { "role": "agent", "content": "Hi, thanks for calling Bondi Dental, this is Ava. How can I help you today?", "words": [] },
      { "role": "user", "content": "I need to talk to the dentist about my bill.", "words": [] },
      { "role": "agent", "content": "Sure, I'll put you through to our practice manager now.", "words": [] }
    ],
    "transcript_with_tool_calls": [
      { "role": "agent", "content": "Hi, thanks for calling Bondi Dental, this is Ava. How can I help you today?", "ts": 1760675400340 },
      { "role": "user", "content": "I need to talk to the dentist about my bill.", "ts": 1760675405910 },
      { "role": "tool_call_invocation", "tool_call_id": "call_tool_01", "name": "transfer_to_manager", "arguments": "{}", "ts": 1760675406650 },
      { "role": "agent", "content": "Sure, I'll put you through to our practice manager now.", "ts": 1760675406700 },
      { "role": "transfer", "event": "transfer_started", "destination": "+61298765432", "ts": 1760675409210 },
      { "role": "transfer", "event": "transfer_bridged", "destination": "+61298765432", "ts": 1760675421880 }
    ],
    "recording_url": null,
    "recording_multi_channel_url": null,
    "public_log_url": "https://api.tried.com.au/public/calls/call_8c2e5a1f7b3d9e0c4a6f2b18/log?exp=1761280221950&sig=9f2b5e8a1d4c7f0b3e6a9d2c5f8b1e4a7d0c3f6b9e2a5d8c1f4b7e0a3d6c9f2b",
    "knowledge_base_retrieved_contents_url": "https://api.tried.com.au/public/calls/call_8c2e5a1f7b3d9e0c4a6f2b18/kb-retrievals?exp=1761280221950&sig=c5f8b1e4a7d0c3f6b9e2a5d8c1f4b7e0a3d6c9f2b5e8a1d4c7f0b3e6a9d2c5f8",
    "transfer_destination": "+61298765432",
    "llm_token_usage": { "values": [1650, 1720], "average": 1685, "num_requests": 2 },
    "disconnection_reason": null,
    "call_analysis": null,
    "latency": {
      "e2e": { "p50": 702, "p90": 702, "p95": 702, "p99": 702, "max": 702, "min": 688, "num": 2, "values": [688, 702] }
    },
    "call_cost": null,
    "batch_call_id": null,
    "contact_id": "contact_6e2a9c1f4b7d0e3a5c8f1b24"
  },
  "transfer": {
    "destination": "+61298765432",
    "timestamp": 1760675421880
  }
}

Fields#

Field Type Description
transfer.destination string The number or SIP URI that answered
transfer.timestamp integer When the legs were bridged, Unix ms

The call object reflects the moment of the bridge. If the call has already ended by the time the payload is built, call_status is ended and disconnection_reason is call_transfer. See Call object.

Billing note#

The agent leaves the call at the bridge, so Tried's per-minute charge stops there. The transferred leg runs on your own trunk and your carrier bills it.

How to respond#

Reply 2xx. The body is ignored. Retries: up to 3 (1 s, 2 s, 4 s).

Typical use: mark the conversation as handed to a human in your helpdesk, and stop any agent-side follow-up for this call_id.