https://retellai.com/?utm_source=discord&utm_medium=seo logo
Hi Support Team,I am using the Agentic Warm Transf...
# ❓・ai-evy-support
v
@AI Evy Hi Support Team, I am using the Agentic Warm Transfer feature and need to programmatically differentiate between two specific failure scenarios for our analytics. Currently, both scenarios return the exact same generic error message to the Main Agent, making it impossible to distinguish them via the tool_result. The Two Distinct Scenarios: Transfer Declined (Human said "No"): The Transfer Agent connects successfully, the human representative declines the call, and the agent executes the cancel_transfer tool to return the user to the main agent. Transfer Timeout (No Answer): The Transfer Agent dials, but the human representative never picks up. The system eventually hits the transferTimeoutMs limit (e.g., 30s) and fails. The Problem: In both cases, the Main Agent receives the exact same Tool Result string: {"status": "Transfer failed due to an error.. Please inform the customer..."} My Request: How can I differentiate these two outcomes in the Call Analyzed Webhook or the Tool Output? Is there a specific disconnect_reason or failure_code exposed in the webhook metadata that flags a timeout versus a manual cancellation? Can the cancel_transfer tool be configured to pass a custom status (e.g., {"status": "declined_by_rep"}) back to the Main Agent instead of the generic error? We are trying to track "Missed Calls" (Timeout) vs. "Rejected Calls" (Declined) in our database, and relying on call duration as a proxy is not precise enough for our reporting. Agent ID: [Insert Your Main Agent ID] Call ID (Example of Decline): [Insert a Call ID where rep said "No"] Call ID (Example of Timeout): [Insert a Call ID where no one answered] Thanks
a
Thanks for tagging me @Vako-SV. I'll look through relevant sources and get back to you shortly.
### Answer Based on my review of the available documentation, I don't have specific information about differentiating between warm transfer failure scenarios (timeout vs. manual cancellation) in the tool result or webhook metadata. What the documentation does cover: The
call_ended
webhook includes a
disconnection_reason
field in the call object [(1) ]() , and the Get Call API response includes
disconnection_reason
as well [(2) ]() . However, the sources don't explicitly document whether different warm transfer failure modes (timeout vs.
cancel_transfer
execution) produce distinct
disconnection_reason
values or separate failure codes. For warm transfers, the documentation mentions configurable settings like: - **Agent Detection Timeout**: Configurable timeouts to control how long the AI waits for the agent to pick up before triggering fallback actions [(3) ]() [(4) ]() - **Human Detection**: Automatic verification that a human has answered before completing the transfer [(5) ]() [(3) ]() However, I don't see documentation on: 1. Whether
cancel_transfer
can pass custom status messages back to the Main Agent 2. Specific
disconnect_reason
values that distinguish timeout from manual cancellation 3. Failure codes exposed in webhook metadata for these scenarios Recommendation: This appears to be a detailed implementation question that may require direct support. You could: - Visit [Contact Sales]() - Check [
hub.com/RetellAI/) Would you like me to provide a general answer based on my knowledge of how such systems typically work?
Feel free to tag @AI Evy with additional questions. I also appreciate feedback, it helps me improve.
​ To learn more, see the sources I considered: [[1] Webhook Overview](https://docs.retellai.com/features/webhook-overview) [[2] Get Call](https://docs.retellai.com/api-references/get-call) [[3] Warm Transfer vs Cold Transfer - The AI Advantage in Call Centers | Retell AI](https://www.retellai.com/blog/effortless-handoffs-with-retell-ais-warm-transfer-feature) [[4] Transfer call](https://docs.retellai.com/build/single-multi-prompt/transfer-call) [[5] Platform Changelogs | Retell AI](https://www.retellai.com/changelog) ​