
Featured Article
Implementation
What should a voice AI agent do when a CRM or booking tool is slow?
Give the tool a bounded execution window, tell the caller what is still being checked, and offer a defined next step if the result is unavailable. Never turn a timeout into a spoken success claim. Keep the conversation deadline separate from the business operation: the caller may have stopped waiting while a submitted request still needs reconciliation.
This guide is published by ConversAI Labs. It describes a proposed application design based on vendor documentation, not comparative testing or a claim that these controls are automatically provided by ConversAI.
Why does a fast voice model still leave callers waiting?
A caller asks whether an appointment is available. Speech recognition and the model respond quickly, but the scheduling system takes longer to answer. Improving model latency alone cannot fix that dependency.
In a function-calling flow, the model requests a tool, the application executes it, and the application returns the result for the next model response. The tool request itself is not evidence that the operation succeeded. OpenAI function-calling documentation
For a voice workflow, track four separate moments: request received, tool submitted, result received and result explained to the caller. This helps the operations team distinguish a slow dependency from slow speech generation.
Which deadlines should the workflow define?
Use separate budgets for the caller experience and the downstream operation. The values below are policy categories, not recommended universal timeout durations.
| Budget | Question it answers |
|---|---|
| Connection timeout | How long can the client spend establishing a connection? |
| Request deadline | How long can one tool execution wait for a response? |
| Conversation wait budget | How long should the caller remain in the current waiting step? |
| Recovery deadline | When must unresolved work move to an operator or another defined owner? |
AWS recommends setting timeouts on remote calls and choosing them with downstream latency and network conditions in mind. It also warns that some timeout mechanisms do not cover all stages, such as connection setup. Measure what your client actually bounds. AWS guidance on timeouts and retries
Do not pick one timeout for every tool. A read-only availability lookup and a request that creates a booking have different recovery requirements. Include queueing and any permitted retries in the overall wait budget, rather than restarting the budget on each attempt.
What should the agent say while it waits?
Use short, truthful messages tied to the actual state. Avoid repeatedly saying “just a moment” without a limit or pretending that a request has completed.
| Actual state | Example wording |
|---|---|
| Availability lookup pending | “I'm still checking the available times.” |
| Lookup deadline reached | “I couldn't confirm availability just now. Would you like a follow-up?” |
| Booking submitted, result uncertain | “I haven't received confirmation yet. I don't want to promise that the booking is complete.” |
| Verified booking returned | “Your booking is confirmed for the time we agreed.” |
These are illustrative lines, not production scripts tested with callers. Adapt them to the task and language. Offer a callback or transfer only when that path exists; promise a time only when the team can honor it. Our human handoff guide covers ownership when a person is unavailable.
Should the application retry a timed-out tool?
Decide by operation, remaining time and the provider contract. AWS notes that retries can add pressure to an already struggling service, and that a timeout does not prove a side effect failed to happen. Backoff and jitter help spread retry traffic; they do not make an unsafe write safe. AWS retry guidance
As an application policy, a read-only lookup may permit a bounded retry while the caller's wait budget remains. Invalid input or authorization failures should move to correction or support, not an automatic retry loop. Choose one layer to own retries and count the total attempts so nested SDK and workflow retries cannot multiply unnoticed.
For a submitted booking or CRM write, retain the operation reference and check the destination before repeating it. If the outcome remains unknown, keep it unresolved for reconciliation. See booking verification for that separate problem.
What happens if a result arrives after the caller changes their mind?
Attach each tool execution to the conversation turn and the version of the request it was meant to answer. Before speaking or applying its result, check whether that request is still current.
For example, a caller first asks for Tuesday, then switches to Thursday. A late Tuesday availability result must not be presented as an answer about Thursday. A late booking confirmation requires checking what was actually committed; ignoring its message does not cancel the booking.
Likewise, stopping a local wait does not by itself establish that the remote operation was cancelled. Only report cancellation when the downstream system confirms it. If the caller hangs up, assign unresolved operations to a recovery process rather than leaving them attached to an ended conversation.
How should teams test and measure this?
In an isolated test environment, inject delayed responses, dropped responses, a caller correction during the wait, a hangup, and a result arriving after the conversation deadline. Verify both what the caller hears and what the destination system records.
Measure tool latency percentiles, timeout rate, retry count, abandoned waits, late results and unresolved operations. Keep these distinct from connected-call counts. Give each unresolved operation an owner and review deadline; do not put raw transcripts or personal details into general-purpose timing logs.
Start with the developer documentation and API reference. Map the actual tools used by your workflow, then test one slow dependency before enabling the flow for customers. This guide proposes the failure-handling design; it does not claim a built-in timeout policy or a measured latency guarantee.
About ConversAI Labs Team
The ConversAI Labs team writes about building and operating voice AI workflows.