Recovering Abandoned Tool Calls Through Asynchronous Channel Handoff
Learn how Duvi uses asynchronous handoffs to WhatsApp to recover abandoned voice tool calls when customers lack immediate data.
A customer calls your support line to update a shipping address. The AI agent identifies the intent and initiates a tool call to your Salesforce instance. To complete the update, the agent asks for the order confirmation number. The customer is currently driving and cannot safely access their email to find the code. On a traditional phone line, this conversation ends in a hangup. The customer has to call back later and repeat the entire problem to a new agent. This friction occurs because voice is a synchronous, high pressure channel. If the user lacks a specific piece of data, the process stalls. Businesses can solve this by allowing the agent to move the interaction to WhatsApp. Because Duvi uses the same agent and knowledge base across all surfaces, the transition does not require the customer to start over. This persistence avoids the conversation persistence tax where losing context resets resolution time.
The agent can offer to send a message to the customer phone number through the WhatsApp Business API. Once the customer is at their desk, they can reply with the order number. The agent receives the message on the same thread, identifies the missing parameter for the tool call, and executes the update to Salesforce. The state of the conversation remains intact because the agent logic is centralized. This avoids the read only AI trap where agents cannot act on the data they receive.
Maintaining this consistency requires the agent to have access to the same underlying data on every channel. Duvi builds this knowledge base by crawling your website and parsing uploaded files into a vector store. This ensures that the instructions for a shipping update on the website match the logic the agent uses over a Twilio phone connection. If your documentation says that only orders placed within thirty days can be modified, the agent will enforce that rule regardless of whether the customer is speaking or typing. This prevents the tab closure tax where lead momentum stalls when a browser tab or a phone call closes.
Deploying this multi channel approach involves connecting your existing infrastructure to the Duvi dashboard. You provide a Twilio phone number for voice and a WhatsApp Business account through Meta for messaging. For the web surface, you add a single script tag to your site headers. The agent uses webhooks to communicate with these providers. When a call comes in, the agent answers using the voice settings you have configured. If the interaction needs to move to text, the agent uses the customer caller ID to initiate the WhatsApp message. This method effectively replaces the phone tree with contextual intent.
Technical implementation for actions relies on HTTP APIs or MCP servers. When the agent determines that a customer request requires an action, it sends a request to your business logic. If the API returns an error or asks for more information, the agent explains this to the customer. This is where the asynchronous nature of WhatsApp provides a benefit over phone calls. A customer might need ten minutes to find a PDF or a serial number. On a phone line, that is a dropped call. On WhatsApp, it is just a brief pause in a successful transaction.
You can monitor these transitions through the Duvi analytics dashboard. The platform tracks conversation volume and response latency across every channel. If you notice that phone calls are frequently ending at the point of a tool call, you can prompt the agent to suggest a WhatsApp handoff earlier in the flow. Reviewing the transcripts helps identify where the vector store might be missing specific troubleshooting steps that lead to these abandoned calls.
The usage of these agents is managed through a credit system. This allows a business to scale its response capacity during peak hours without hiring more staff or building custom integrations for each individual channel. The same logic that handles a product question on your website works for a live voice call or a WhatsApp message. No engineering work is required to synchronize the answers because the agent pulls from the same crawled content and file uploads for every interaction.
Security remains a priority when handling customer data across these surfaces. You can restrict the web agent to your own domains and require a signed in visitor for sensitive actions. Credentials for your APIs and Salesforce connections are stored as encrypted keys. This ensures that while the agent can act on behalf of the customer, the underlying connection to your business data remains protected.