https://retellai.com/?utm_source=discord&utm_medium=seo logo
how to force outbound agent wait for customer to t...
# ❓・ai-evy-support
q
@AI Evy how to force outbound agent wait for customer to talk first?
a
Thanks for tagging me @Q4. I'll look through relevant sources and get back to you shortly.
### Answer You can configure your outbound agent to wait for the customer to speak first by setting the conversation initiation option to "User-First" in the agent configuration [(1) ]() . This setting makes the agent wait for user input instead of initiating the conversation . However, if you want to add a delay before the agent speaks (for example, to give the customer time to raise the phone to their ear) , you can use the
begin_message_delay_ms
parameter [(2) ]() [(3) ]() [(4) ]() . This delays the first message by the specified amount of milliseconds, with a valid range of [0, 5000] . Note that this only applies when the agent speaks first . One workaround mentioned in the community is to set the AI to speak first but use just a dash "-" as the initial message [(5) ]() . This makes the agent think it has spoken, but it remains silent, and then the conversation proceeds normally after the user speaks .
​ To learn more, see the sources I considered: [[1] how to make voice ai on outbound to talk less](https://discord.com/channels/1186424376300679209/1314325013876183091) [[2] Create Voice Agent](https://docs.retellai.com/api-references/create-agent) [[3] Update Voice Agent](https://docs.retellai.com/api-references/update-agent) [[4] Get Voice Agent](https://docs.retellai.com/api-references/get-agent) [[5] Discord message from @bajacheebo on 2024-12-14](https://discord.com/channels/1186424376300679209/1186462578310910112/1317317835734908968) ​
Feel free to tag @AI Evy with additional questions. I also appreciate feedback, it helps me improve.
q
@AI Evy conversation flow agent don't have this "User-First"
a
Thanks for the follow-up, @Q4. I'll get back to you soon.
### Answer You're correct—Conversation Flow agents do have the
start_speaker
parameter to control who initiates the conversation [(1) ]() [(2) ]() [(3) ]() . To make your outbound Conversation Flow agent wait for the customer to speak first, set
start_speaker
to
"user"
. This parameter determines who starts the conversation and accepts either
"user"
or
"agent"
as values . Here's how to configure it:
Copy code
javascript
const conversationFlowResponse = await client.conversationFlow.create({
  start_speaker: 'user',
  // ... other configuration
}) ;
[(3) ]() If you want the agent to wait for a specific duration before starting (when configured as agent-first) , you can use the
begin_after_user_silence_ms
parameter [(1) ]() [(2) ]() [(3) ]() . This makes the AI begin the conversation after waiting for the user for the specified duration in milliseconds . However, this only applies if the agent is configured to wait for the user to speak first . **
​ To learn more, see the sources I considered: [[1] List Conversation Flows](https://docs.retellai.com/api-references/list-conversation-flows) [[2] Update Conversation Flow](https://docs.retellai.com/api-references/update-conversation-flow) [[3] Create Conversation Flow](https://docs.retellai.com/api-references/create-conversation-flow) ​
Feel free to tag @AI Evy with additional questions. I also appreciate feedback, it helps me improve.
q
@AI Evy where I should add it? in retell or where I send outbound call?start_speaker: 'user',
a
Thanks for the follow-up, @Q4. I'll get back to you soon.
### Answer You should add
start_speaker: 'user'
when you create or update your Conversation Flow in Retell [(1) ]() [(2) ]() . This is configured at the Conversation Flow level, not when you make the outbound call. Here's where to set it: When creating a new Conversation Flow:
Copy code
javascript
const conversationFlowResponse = await client.conversationFlow.create({
  model_choice: { model: 'gpt-4.1', type: 'cascading' },
  start_speaker: 'user',
  nodes: [
    {
      id: 'start',
      instruction: { text: 'Greet the customer and ask how you can help them.', type: 'prompt' },
      type: 'conversation',
    },
  ],
}) ;
[(1) ]() When updating an existing Conversation Flow:
Copy code
javascript
const conversationFlowResponse = await client.conversationFlow.update(
  'conversation_flow_id',
  {
    start_speaker: 'user',
    // other configuration
  }
) ;
[(2) ]() Once you've configured
start_speaker: 'user'
in your Conversation Flow, any agent using that flow will wait for the user to speak first—including outbound calls [(1) ]() [(3) ]() [(2) ]() .
​ To learn more, see the sources I considered: [[1] Create Conversation Flow](https://docs.retellai.com/api-references/create-conversation-flow) [[2] Update Conversation Flow](https://docs.retellai.com/api-references/update-conversation-flow) [[3] List Conversation Flows](https://docs.retellai.com/api-references/list-conversation-flows) ​
Feel free to tag @AI Evy with additional questions. I also appreciate feedback, it helps me improve.
q
@AI Evy start_speaker: 'user' -- didn't work
a
Thanks for the follow-up, @Q4. I'll get back to you soon.
### Answer I understand
start_speaker: 'user'
isn't working as expected. Let me help troubleshoot this. First, verify your configuration: You can configure
start_speaker
in the Dashboard or via API [(1) ]() . In the Dashboard: Click on the
begin
icon in your Conversation Flow, and you can select who speaks first in the call . Via API: When creating or updating your Conversation Flow, ensure
start_speaker
is set to
"user"
[(2) ]() [(3) ]() [(4) ]() :
Copy code
javascript
const conversationFlowResponse = await client.conversationFlow.create({
  model_choice: { model: 'gpt-4.1', type: 'cascading' },
  start_speaker: 'user',
  nodes: [
    {
      id: 'start',
      instruction: { text: 'Greet the customer and ask how you can help them.', type: 'prompt' },
      type: 'conversation',
    },
  ],
}) ;
[(4) ]() Additional consideration: For outbound calls specifically, you might also want to configure the "Pause before speaking" setting [(1) ]() . This setting controls how long the agent waits before speaking at the beginning of the call if the agent speaks first, which is useful to handle scenarios when the user is still picking up the phone . Workaround from the community: If
start_speaker: 'user'
still doesn't work, one community member mentioned setting the
begin_message
to an empty string
""
to make the agent wait for the user to speak first [(5) ]() . This approach was documented for Retell LLM agents [(6) ]() [(5) ]() . Can you confirm: 1. Where you set
start_speaker: 'user'
(Dashboard or API) ? 2. Whether you've verified the Conversation Flow was successfully updated with this setting? 3. If you're seeing any specific error messages or unexpected behavior?
​ To learn more, see the sources I considered: [[1] Step 1: Configure global settings](https://docs.retellai.com/build/conversation-flow/global-setting) [[2] List Conversation Flows](https://docs.retellai.com/api-references/list-conversation-flows) [[3] Update Conversation Flow](https://docs.retellai.com/api-references/update-conversation-flow) [[4] Create Conversation Flow](https://docs.retellai.com/api-references/create-conversation-flow) [[5] Discord message from @gianni0305 on 2024-04-06](https://discord.com/channels/1186424376300679209/1186462578310910112/1226254960497524929) [[6] Update Retell LLM](https://docs.retellai.com/api-references/update-retell-llm) ​
Feel free to tag @AI Evy with additional questions. I also appreciate feedback, it helps me improve.