- How interruption handling differs between turn-taking and non turn-taking transcription models.
- How to configure interruption settings via the API.
- How to protect greetings and tune endpointing thresholds.
How it works
Interruption behavior depends on which transcription model your assistant uses.Turn-taking models
Turn-taking models likedeepgram/flux have built-in end-of-turn detection. When you use one of these models, the assistant determines when the caller has finished speaking using the transcription-level settings eot_threshold, eot_timeout_ms, and eager_eot_threshold — configured under transcription.settings. See the Transcription Settings guide for details.
You can still use interruption_settings.enable and interruption_settings.disable_greeting_interruption with turn-taking models, but the start_speaking_plan and transcription_endpointing_plan thresholds are not relevant because the model handles turn detection natively.
Non turn-taking models
For models without built-in turn detection (such asdeepgram/nova-3, deepgram/nova-2, azure/fast, or nvidia/parakeet-v3), the assistant relies on the interruption_settings.start_speaking_plan to decide when to start speaking after the caller stops. This plan uses silence-based endpointing thresholds to detect end of turn. Setting any start_speaking_plan — even an empty {}, one that matches the documented defaults, or one that carries only wait_seconds — also engages per-turn transcript endpointing, which can add or reduce per-turn wait relative to wait_seconds alone (see Presence of the plan changes behavior, not just its values).
Configuration
API schema
Set theinterruption_settings object when creating or updating an assistant:
Key fields
Presence of the plan changes behavior, not just its values
The plan’s thresholds only apply whileinterruption_settings.start_speaking_plan is set — but setting it engages a per-turn transcript matcher that does more than replace wait_seconds:
- Any present plan object engages per-turn matching — even an empty
{}(the stored config fills in the field defaults) — including one that carries onlywait_seconds, or one identical to the documented defaults. The thresholds above are then evaluated on each turn against the caller’s transcript tail. - When the transcript matches a tier, the per-turn wait is that tier’s seconds outright:
on_number_secondsfor a transcript ending in a number or number word,on_punctuation_secondswhen it ends in terminal punctuation (.,?,!), andon_no_punctuation_secondsotherwise. The tier value replaceswait_secondsfor that turn — it is not clamped to it, so a tier can be shorter thanwait_seconds. - The no-punctuation tier always matches when
transcription_endpointing_planis set: a transcript with no terminal punctuation and no number falls through toon_no_punctuation_seconds(1.5 s by default). Per-turn waits therefore differ by configuration: with the tier plan set the wait is the tier value (1.5 s by default), with a present plan and no tier plan it iswait_seconds(0.4 s), and with no plan at all the assistant begins speaking as soon as silence is detected — present-tier configurations wait 1.5 s on every pause, which is that slower-than-absent behavior callers see. - To turn per-turn matching off entirely, set
start_speaking_plantonull(or omit it). The assistant then begins speaking as soon as the caller’s silence is detected, with no per-turn transcript evaluation. The nested tier plan is cleared separately: sendingstart_speaking_plan.transcription_endpointing_plan: nullremoves the tiers and the wait falls back towait_secondsalone, while the outer plan stays engaged.
deepgram/flux assistants are the exception: ACA provisions their default plan with all three tiers at 0.1, so a Flux assistant’s plan behaves consistently whether sent explicitly or provisioned by default.
Mission Control Portal
You can also configure interruption settings through the Portal:- Navigate to AI > Assistants.
- Select your assistant and click Edit.
- Open the Voice tab.
- Scroll to the Interruption Settings section.
- Toggle interruptions on or off, enable greeting protection, and adjust the start speaking plan thresholds.
Example configurations
Default — allow interruptions
Allow callers to interrupt at any time, including during the greeting. This is the default behavior wheninterruption_settings is omitted.
Protected greeting
Allow interruptions during normal conversation but prevent callers from cutting off the assistant’s initial greeting. Useful for flows where the greeting contains required disclosures or context.Conservative endpointing for non turn-taking models
Use longer silence thresholds to reduce false interruptions in noisy environments or when callers tend to pause mid-sentence. This configuration waits longer before treating silence as end of turn.Patient mid-sentence, fast after a finished sentence
Endpointing tiers key off the transcript tail, so a longeron_no_punctuation_seconds with a short on_punctuation_seconds waits for callers who pause mid-sentence, but responds quickly once the transcript ends in terminal punctuation:
wait_seconds per turn rather than flooring it, so the example works as written: a transcript ending in ., ?, or ! waits on_punctuation_seconds (0.1 s), one that does not waits on_no_punctuation_seconds (2.0 s). The plan must stay present for the matcher to run, and wait_seconds (1.5 s here) governs only turns where transcription_endpointing_plan is unset or null (with the tier plan set, the no-punctuation tier always matches, so every turn gets a tier value).
Use cases
- Call centers with background noise: Increase
wait_secondsand endpointing thresholds to prevent ambient noise from triggering false interruptions. - IVR-style interactions: Keep interruptions enabled so callers can barge in to skip prompts they have already heard.
- Greeting-heavy flows: Enable
disable_greeting_interruptionto ensure callers hear required disclosures, legal notices, or welcome messages before interacting. - Dictation or number entry: Increase
on_number_secondsto give callers time to finish reading out long numbers like account IDs or phone numbers without the assistant cutting in.
Related resources
- Transcription Settings — Configure STT models and end-of-turn detection for turn-taking models like
deepgram/flux. - Create an Assistant API Reference — Full assistant configuration options including
interruption_settings. - End-of-Turn Detection — Lower-level end-of-turn parameters for WebSocket STT streaming.