Wrong agent picks up when doing an agent transfer from multi prompt agent. the agent also doesn't send call end or call analyzed events to the webhook

I when I do an agent transfer in a multi-prompt agent, it assigns the wrong voice:
If I select ‘latest version’ (V0) it SHOWS the right voice, then I save, but when I come back to it, it shows the wrong voice, and a test call verifies its the wrong voice.

Also, the Agent Level Webhook URL in the agent I’m transferring to doesn’t seem to be hitting my API with any call data. (regardless of the “only this agent/only transferred agent” setting for the transfer’s webhook setting)
I get “Call started” events every time, but still not getting call ended or call summary data.

\

Based on the agent transfer documentation, there are specific behaviors regarding settings inheritance that may explain what you’re experiencing:

Voice Settings During Agent Transfer

When an agent transfer occurs, all settings except the following will reflect the currently active (transferred-to) agent(1):

  • optInSignedUrl
  • optOutSensitiveDataStorage
  • webHookUrl

This means that voice settings (voice_id, voice_model, voice_temperature, voice_speed, etc.) should come from the transferred-to agent(1). If you’re seeing the wrong voice, this could indicate the transfer isn’t completing properly or there’s a version mismatch issue.

Webhook Behavior During Transfer

The webhook behavior you’re describing aligns with the documented transfer settings: the first agent’s webhook_url is used throughout the entire call(1). This means:

  • The webhook URL from your initial agent will receive all events for the entire call
  • The transferred-to agent’s webhook URL will not be used, regardless of the post-call analysis setting you choose(1)

The post_call_analysis setting in the agent transfer tool only controls whether to extract dynamic variables for the transferred agent only, or both agents - it doesn’t affect which webhook receives the events(1).

Troubleshooting Steps

For the voice issue with “latest version” selection, you may want to verify the agent version is correctly set in your transfer configuration. The transfer agent setting requires both an agent ID and version(1).

For webhook events, ensure your webhook is configured on the first/initiating agent, not the transferred-to agent, as that’s where all call events (including call.ended and call.analyzed) will be sent(1).

Yes, testing the “transferred-to” agent individually (all versions) uses the correct male voice. Transferring to this agent in my multi-prompt agent results in the wrong voice picking up (with seemingly the right agent info/behavior).
Web hooks are set up on both agents, so I should be receiving more than just the ‘call started’ even I’m thinking.

Hello? Can anyone look into this for me?

Hello @teezecrost

Can you share your agent id

And a call id for this issue.

Yes! Transferring FROM multi-prompt: agent_5641a5e80e400b7ff5fa34b150
Transferring TO: agent_10486f5210bf7698cd0d6e656a
Call ID of last try: call_4edbb035680abd24fd4750ef2b1

Based on the specific agent IDs and call ID you’ve provided, I can confirm the expected behavior but cannot directly debug the specific configuration without access to your dashboard.

Expected Agent Transfer Behavior

For your transfer from agent_5641a5e80e400b7ff5fa34b150 to agent_10486f5210bf7698cd0d6e656a, the voice settings should come from the destination agent (agent_10486f5210bf7698cd0d6e656a)(1).

However, these settings from the first agent (agent_5641a5e80e400b7ff5fa34b150) will persist throughout the entire call(1):

  • optInSignedUrl
  • optOutSensitiveDataStorage
  • webHookUrl

Voice Configuration Check

To verify the voice configuration of your destination agent, you can retrieve its settings using the API:

import Retell from 'retell-sdk';
const client = new Retell({
 apiKey: 'YOUR_RETELL_API_KEY',
});
const agentResponse = await client.agent.retrieve('agent_10486f5210bf7698cd0d6e656a');
console.log(agentResponse.voice_id);

(2)

This will show you the voice_id, voice_model, voice_speed, voice_temperature, and other voice settings that should be active after the transfer(2).

Version Selection Issue

If selecting “latest version” is showing the wrong voice after saving, you may want to explicitly check all versions of the destination agent:

const agentResponses = await client.agent.getVersions('agent_10486f5210bf7698cd0d6e656a');
console.log(agentResponses);

(3)

This will return all versions with their respective voice configurations, helping you identify if there’s a mismatch between what version 0 actually contains versus what the UI is displaying(3).

Webhook Configuration

For the webhook issue with call call_4edbb035680abd24fd4750ef2b1, confirm that your webhook URL is configured on agent_5641a5e80e400b7ff5fa34b150 (the initiating agent), not on the destination agent(1). The webhook_url from the first agent is used throughout the entire call, regardless of the transfer(1).

The webhook should be receiving call.started, call.ended, and call.analyzed events at the URL specified in agent_5641a5e80e400b7ff5fa34b150(1).

If you’re still experiencing issues after verifying these configurations, I recommend reaching out to support with these specific agent IDs and call ID:

My webhook is applied to both agents, and I’m finding that even though agent versions other than “latest” SHOW the correct voice avatar, the wrong one still picks up.
No need to verify the voice configuration, because I’ve set it myself multiple times and can see it plain as day when I go to that agent’s configuration. Everything seems to be set correctly, but I’m still getting the wrong voice.

My webhook is applied to both agents, and I’m finding that even though agent versions other than “latest” SHOW the correct voice avatar, the wrong one still picks up.
No need to verify the voice configuration, because I’ve set it myself multiple times and can see it plain as day when I go to that agent’s configuration. Everything seems to be set correctly, but I’m still getting the wrong voice.

Yes! Transferring FROM multi-prompt: agent_5641a5e80e400b7ff5fa34b150
Transferring TO: agent_10486f5210bf7698cd0d6e656a
Call ID of last try: call_4edbb035680abd24fd4750ef2b1