Skip to main content
Conversation flow settings determine the rhythm of a voice conversation. They control when the agent starts speaking, whether users can interrupt mid-speech, and how long the agent waits before acting on silence. Getting these settings right makes conversations feel natural rather than mechanical.

Turn-taking

Turn-taking defines when the agent yields to the user and when it expects the user to yield back. The platform uses a proprietary model to detect end-of-turn signals from audio rather than relying purely on silence duration, which means it handles natural pauses within a sentence without cutting the speaker off prematurely. You can tune turn-taking behavior with the following settings:
SettingDescription
Modeauto lets the platform manage turns. manual requires explicit signals from your code to hand off the turn.
User turn timeoutHow long the platform waits after the user stops speaking before marking their turn as complete.
Agent turn timeoutHow long the platform waits for the agent to respond before marking the turn as failed.
Use auto mode for most voice agents. manual mode is useful for specialized applications where you need precise control — for example, a dictation app where long pauses are intentional.

Interruptions

By default, users can interrupt the agent at any time by speaking. When an interruption is detected, the agent stops mid-sentence and starts processing the user’s input.
OptionBehavior
EnabledUser speech during agent synthesis interrupts the agent immediately.
DisabledThe agent finishes speaking before the user input is processed.
Disable interruptions for scenarios where cutting off the agent causes problems — for example, when the agent is reading legal disclaimers or completing a scripted step that must not be interrupted.
Even with interruptions enabled, very short noises (coughs, background sounds) do not trigger interruptions. The turn-taking model filters out non-speech signals.

Timeout settings

Timeouts control what happens when silence persists during different phases of the conversation.

User silence timeout

If the user does not speak within a defined window after the agent’s turn ends, the agent can respond with a prompt (e.g., “Are you still there?”) or end the call. Configure the timeout duration and the agent’s behavior in the Conversation flow section of the dashboard or via API:
from xuna_ai import XunaAI

client = XunaAI()

agent = client.conversational_ai.agents.update(
    agent_id="your-agent-id",
    conversation_config={
        "conversation": {
            "silence_end_call_timeout": 30,      # seconds before hanging up
            "silence_nudge_timeout": 10,         # seconds before prompting the user
        }
    }
)

Maximum conversation duration

Set a hard cap on conversation length to prevent runaway sessions. When the limit is reached, the agent wraps up gracefully.
agent = client.conversational_ai.agents.update(
    agent_id="your-agent-id",
    conversation_config={
        "conversation": {
            "max_duration_seconds": 600,  # 10 minutes
        }
    }
)

Configuring conversation flow in the dashboard

1

Open your agent

Go to the XUNA AI dashboard and select your agent.
2

Open the Advanced tab

Click the Advanced tab in the agent settings panel.
3

Adjust conversation flow settings

Set your preferred values for turn-taking mode, interruption handling, silence timeouts, and max duration.
4

Save and test

Click Save and start a test conversation to verify the settings feel natural.