Skip to content
TriedDocs
Build agents

Welcome message

Choose who speaks first, set a static or generated opening line, add a pause before speaking, and start the agent when a caller stays silent.

The welcome message is how the call opens. You choose whether the agent or the caller speaks first, and when the agent speaks first, whether it says a fixed line or writes its own from the prompt. The settings are in the Welcome Message card below the prompt.

The Welcome Message card with AI speaks first, a static message and Pause Before Speaking

Who speaks first#

The dropdown at the top of the card sets start_speaker:

Option Value Use it for
AI speaks first agent Inbound lines (the agent answers like a receptionist) and most outbound calls.
User speaks first user Outbound calls where you want the callee to say hello first, or when an inbound system plays its own greeting before connecting.

Agent speaks first#

With AI speaks first, pick the kind of message:

  • Static message. The agent says exactly the text you type. It can contain dynamic variables: Hi {{first_name}}, this is Ava from {{business_name}}. Use it when the opening must be word for word, for example a recording disclosure. It also starts faster, because no model call is needed.
  • Dynamic message. The model writes the opening line from the prompt. Use it when the greeting should change with the context, such as the caller's history or the time of day.

Pause Before Speaking#

Pause Before Speaking (begin_message_delay_ms, 0 to 5 seconds, default 0) waits after the call connects before the agent speaks. On outbound calls a short pause gives the callee time to put the phone to their ear. The delay is added to the first-turn latency estimate in the header.

User speaks first#

With User speaks first, the agent waits for the caller. Tick Speak first if the caller stays silent to start the agent anyway after a silence, and set Silence before the agent speaks (0.5 to 15 seconds). When it fires, the agent writes an opening line from the prompt.

This helps on outbound calls where the callee picks up but says nothing.

Fields#

start_speaker, begin_message and begin_after_user_silence_ms are on the Retell LLM (Update Retell LLM). begin_message_delay_ms is on the agent (Update agent).

Field Type Default Description
start_speaker agent or user agent Who speaks first.
begin_message string or null null null: the model writes the opening. A string: the agent says it. "": the agent says nothing and waits for the caller.
begin_message_delay_ms integer 0 to 5000 0 Pause after connect before the agent speaks.
begin_after_user_silence_ms integer or null null With start_speaker: user, start the agent after this much silence. null means wait indefinitely.
{
  "start_speaker": "agent",
  "begin_message": "Hi {{first_name}}, this is Ava calling from {{business_name}} about your appointment tomorrow."
}
{
  "start_speaker": "user",
  "begin_after_user_silence_ms": 3000
}

Conversation flows#

Flows have no begin_message. The opening line is the start node: a conversation node set to static text speaks the text, and one set to a prompt generates it. The card shows The opening line is the start node in the flow. start_speaker, Pause Before Speaking and begin_after_user_silence_ms work the same way on flows.

Tips#

  • If a static message uses a variable that a call does not provide, the placeholder is left as written and spoken literally. Set a default under Default Dynamic Variables. See Dynamic variables.
  • Voicemail and IVR detection run at the start of outbound calls. See Voicemail and IVR.
  • For a disclosure that must always be said, use a static message rather than asking the model to say it.