https://retellai.com/?utm_source=discord&utm_medium=seo logo
Hey I am building an agent for one company and i s...
# ❓・ai-evy-support
a
Thanks for tagging me @Rufi. I'll look through relevant sources and get back to you shortly.
### Answer The core issue you're describing relates to how turn-taking works in Retell AI. When using a single prompt agent with variables pre-populated from Make.com (rather than fetched mid-call via custom functions) , the agent doesn't have a built-in mechanism to "continue speaking" after a filler phrase—it naturally waits for user input after completing its turn. ## Why This Happens Dynamic variables in Retell AI are placeholders that get injected at call start or via webhooks. [(1) ]() They don't trigger mid-conversation continuations on their own. The turn-taking model interprets your "let me pull up the calendar" statement as a complete turn, then waits for user response. ## Recommended Approaches ### Option 1: Restructure Your Prompt Since your availability data is already present in the variables when the call starts (or updated via webhook) , you can instruct the agent to not use filler phrases that imply waiting. Instead, prompt it to immediately reference the available slots:
Copy code
When discussing scheduling, directly offer the first available slot from {{availableSlots}} without saying phrases like "let me check" or "one moment."
### Option 2: Consider Conversation Flow Agent If you need more granular control over when the agent speaks without waiting for user input, a Conversation Flow agent allows you to configure node-level settings. [(2) ]() You can set up nodes to transition automatically without requiring user input, and configure speech settings like responsiveness. ### Option 3: Use Custom Functions Instead If you need the agent to fetch availability mid-call and then continue speaking, Retell's custom functions with the "Speak During Execution" setting would handle this more naturally—the agent speaks a filler message while the function executes, then continues after receiving the result. [(3) ]() ## Key Limitation The available documentation doesn't describe a supported way for a single prompt agent to automatically continue speaking after external variable updates from Make.com without treating it as a new turn. The turn-taking behavior you're experiencing is expected for single prompt agents. Would you like a general answer on prompt engineering techniques that might help minimize the awkward pause, or would you prefer to explore switching to a Conversation Flow agent?
​ To learn more, see the sources I considered: [[1] Dynamic Variables](https://docs.retellai.com/build/dynamic-variables) [[2] Step 1: Configure global settings](https://docs.retellai.com/build/conversation-flow/global-setting) [[3] Flex Mode](https://docs.retellai.com/build/conversation-flow/flex-mode) ​
Feel free to tag @AI Evy with additional questions. I also appreciate feedback, it helps me improve.
a
Thanks for the follow-up, @Rufi. I'll get back to you soon.
### Answer Here's a restructured prompt for your scheduling agent that eliminates the awkward pause by avoiding "waiting" language and directly presenting the pre-loaded availability:
Copy code
## Identity
You are a friendly scheduling assistant for [Company Name].
Your role is to book appointments using the doctor's availability.

## Style Guardrails
Be concise: Keep responses under 2 sentences unless explaining complex topics.
Be conversational: Use natural language, contractions, and acknowledge what the caller says.

## Response Guidelines
Return dates in spoken form: Say "January fifteenth" not "1/15".
Ask one question at a time: Avoid overwhelming the caller with multiple questions.
Confirm understanding: Paraphrase important information back to the caller.

## Task Instructions
1. Greet the caller and ask how you can help with scheduling.
wait for user response

2. When the caller requests an appointment, immediately offer the first available slot from {{availableSlots}}. 
   - Do NOT say phrases like "let me check," "one moment," "let me pull up the calendar," or any language implying you are waiting or looking something up.
   - Instead, directly state: "The earliest opening is [date] at [time]. Would that work for you?"
wait for user response

3. If the caller declines the first slot, offer the next available option from {{availableSlots}}.
wait for user response

4. Once the caller confirms a slot, confirm the booking details:
   "Just to confirm, you'd like to meet on [DAY], [DATE] at [TIME], correct?"
wait for user response

5. Proceed with booking and let the caller know a confirmation will be sent.
[(1) ]() , [(2) ]() ## Key Changes **Removed filler language**: The prompt explicitly instructs the agent not to use phrases that imply waiting, since your data is already available. [(1) ]() **Added explicit `wait for user response`**: This makes it clear where the agent should pause for input versus continue speaking. [(2) ]() **Direct slot presentation**: The agent jumps straight to offering the slot rather than narrating a "checking" process. This approach works because your availability is pre-populated via Make.com—there's no actual waiting happening, so the agent shouldn't verbally suggest there is.
​ To learn more, see the sources I considered: [[1] Prompt Engineering Guide](https://docs.retellai.com/build/prompt-engineering-guide) [[2] Write a single prompt](https://docs.retellai.com/build/single-multi-prompt/write-single-prompt) ​
Feel free to tag @AI Evy with additional questions. I also appreciate feedback, it helps me improve.
r
5. If they’re ready to book, say: “Perfect, let me pull up the doctor’s calendar real quick to see what's available.” You will receive {{availableSlots}} function which is a list of appointment slots (ordered from earliest to latest). FLOW: 1) Start by offering ONLY the first slot (First Available Appointment). 2) If the user cannot do that time (e.g., “no”, “not available”, “busy”, “another day”, etc.): - Then offer the NEXT 3 slots from the list (2nd, 3rd, 4th), one-by-one. - Ask after each one: “Would that work for you?” 3) If the user rejects all offered slots OR asks for a specific day/time: - Ask what day/time works best for them (morning/afternoon/evening, specific day). - Then say you can check availability and proceed with the next step (or escalate/transfer depending on workflow). IMPORTANT: - Never read the whole list. - Never offer more than 4 total options in one call (1 first + up to 3 alternatives). - Keep the conversation short and natural. - Always confirm the selected slot back to the user before booking. then change this part completely
@AI Evy 5. If they’re ready to book, say: “Perfect, let me pull up the doctor’s calendar real quick to see what's available.” You will receive {{availableSlots}} function which is a list of appointment slots (ordered from earliest to latest). FLOW: 1) Start by offering ONLY the first slot (First Available Appointment). 2) If the user cannot do that time (e.g., “no”, “not available”, “busy”, “another day”, etc.): Then offer the NEXT 3 slots from the list (2nd, 3rd, 4th), one-by-one. Ask after each one: “Would that work for you?” 3) If the user rejects all offered slots OR asks for a specific day/time: Ask what day/time works best for them (morning/afternoon/evening, specific day). Then say you can check availability and proceed with the next step (or escalate/transfer depending on workflow). IMPORTANT: Never read the whole list. Never offer more than 4 total options in one call (1 first + up to 3 alternatives). Keep the conversation short and natural. Always confirm the selected slot back to the user before booking. then change this part completely
a
Thanks for the follow-up, @Rufi. I'll get back to you soon.
### Answer Here's the revised scheduling section that eliminates the "let me pull up the calendar" phrase (which causes the turn-taking pause) and directly uses your pre-populated
{{availableSlots}}
variable:
Copy code
## Appointment Scheduling

When the caller is ready to book:

5. Immediately offer the FIRST available slot from {{availableSlots}}:
   "Great! The earliest opening I have is [first slot date] at [first slot time]. Would that work for you?"
   
   DO NOT say "let me check," "let me pull up the calendar," "one moment," or any phrase implying you are looking something up. The availability is already known.

wait for user response

6. If the caller declines (says "no," "not available," "busy," "another day," etc.) :
   Offer the SECOND slot: "No problem. How about [second slot date] at [second slot time]?"
   
wait for user response

7. If declined again, offer the THIRD slot: "I also have [third slot date] at [third slot time]. Would that work?"

wait for user response

8. If declined again, offer the FOURTH slot: "One more option—[fourth slot date] at [fourth slot time]?"

wait for user response

9. If the caller rejects all four slots OR requests a specific day/time:
   Ask: "What day or time works best for you—morning, afternoon, or evening?"
   Then say: "Let me see what we can do and I'll follow up with you." (or transfer/escalate per your workflow)

## RULES
- Never read the entire {{availableSlots}} list aloud.
- Maximum 4 slot offers per call (1 initial + 3 alternatives) .
- After the caller accepts a slot, confirm: "Just to confirm, that's [day], [date] at [time]. Is that correct?"
- Keep responses conversational and under 2 sentences each.
[(1) ]() The key change is removing any "checking" language since your
{{availableSlots}}
data is already injected via Make.com before the conversation reaches this point. This prevents the agent from treating it as a turn-ending statement that waits for user input.
​ To learn more, see the sources I considered: [[1] Dynamic Variables](https://docs.retellai.com/build/dynamic-variables) ​
Feel free to tag @AI Evy with additional questions. I also appreciate feedback, it helps me improve.
r
@AI Evy inform to my college what changes I have made and the reason explain short briefly
a
Thanks for the follow-up, @Rufi. I'll get back to you soon.
### Answer Here's a brief summary you can share with your colleague: --- Summary of Changes Made Problem: The agent was saying "let me pull up the calendar" and then waiting for user input, creating an awkward pause—even though availability data was already loaded via Make.com. Root Cause: In single prompt agents, the turn-taking model treats completed statements as turn-endings and waits for user response. [(1) ]() Since
{{availableSlots}}
is pre-populated as a dynamic variable (not fetched mid-call) , there's no actual "checking" happening. [(2) ]() Solution Applied: 1. Removed all "waiting" language — phrases like "let me check" or "one moment" were eliminated since data is already available 2. Added explicit
wait for user response
markers — clarifies exactly where the agent should pause vs. continue 3. Direct slot presentation — agent now immediately offers: "The earliest opening is [date] at [time]. Would that work?" Why This Works: Dynamic variables inject data at call start or via webhooks. By not implying a wait, the agent doesn't create a false turn-ending that triggers the pause. ---
​ To learn more, see the sources I considered: [[1] Single/Multi Prompt Agent Overview](https://docs.retellai.com/build/single-multi-prompt/prompt-overview) [[2] Dynamic Variables](https://docs.retellai.com/build/dynamic-variables) ​
Feel free to tag @AI Evy with additional questions. I also appreciate feedback, it helps me improve.
r
no make it normal message in in paragraph short explanation
@AI Evy no make it normal message in in paragraph short explanation
a
Thanks for the follow-up, @Rufi. I'll get back to you soon.
### Answer Hey, we updated the scheduling prompt to fix an issue where the agent was pausing awkwardly after saying "let me pull up the calendar." The problem was that our availability data from Make.com is already loaded into the agent as a dynamic variable before that point in the conversation, so there's nothing to actually wait for. [(1) ]() Single prompt agents treat completed statements as turn-endings and wait for user input, which created the unnatural pause. [(2) ]() The fix was simple: we removed all "checking" or "waiting" language from the prompt and had the agent immediately offer the first available slot instead. This way the conversation flows naturally since the agent isn't implying it needs to look something up when the data is already there.
​ To learn more, see the sources I considered: [[1] Dynamic Variables](https://docs.retellai.com/build/dynamic-variables) [[2] Single/Multi Prompt Agent Overview](https://docs.retellai.com/build/single-multi-prompt/prompt-overview) ​
Feel free to tag @AI Evy with additional questions. I also appreciate feedback, it helps me improve.