Skip to main content

Allow a first-party cookie so we can count page views and see which pages and campaigns bring people here. Cookie policy

VARTA

How to Stop AI Voice Agents from Hallucinating Prices, Dates and Customer Information

VARTA Engineering · · 6 min read · Voice AIAI Voice AgentsVoice AI ArchitectureLLMConversational AIText-to-SpeechSpeech-to-TextOpenAIElevenLabsSarvamS2S Models

VARTA hero image showing an AI voice agent validating prices, dates and customer information before speaking to a customer

How to Stop AI Voice Agents from Hallucinating Prices, Dates and Customer Information

Hallucination becomes much more serious when an AI voice agent is speaking to a real customer.

Consider an agent saying:

“Your outstanding balance is ₹18,500.”

“Your technician is confirmed for Friday at 3 PM.”

“You are eligible for a 20% discount.”

“Your warranty expires next month.”

These are not just conversational responses.

They are business facts.

If they are wrong, the result could be an incorrect commitment, a failed service visit, a customer complaint or a financial dispute.

For enterprise Voice AI, preventing hallucination therefore requires more than a better prompt.

It requires the right architecture.


The Core Rule

A simple principle should sit at the centre of enterprise Voice AI:

Let AI understand the conversation. Let enterprise systems determine the truth.

An LLM can understand:

“How much do I need to pay?”

But the amount should come from the billing system.

It can understand:

“Can somebody come on Friday morning?”

But technician availability should come from the Field Service Management system.

It can understand:

“Is my AC still under warranty?”

But warranty status should come from the asset or ERP system.

The LLM interprets the customer's language.

The system of record provides the fact.


What Should Never Be Invented?

Certain values should almost always be retrieved or validated before the voice agent speaks them.

These include:

  • prices
  • account balances
  • customer information
  • appointment dates
  • technician availability
  • payment amounts
  • warranty dates
  • order status
  • discounts
  • eligibility
  • policy limits
  • transaction status

These values belong in structured systems.

They should not come from the model's memory or be reconstructed from the conversation transcript.


The Risky Architecture

A simple Voice AI implementation may look like this:

Customer Question

Prompt + Conversation History

LLM

Generated Answer

Text-to-Speech

This works well for general conversation.

But it becomes risky when the response contains operational facts.

Even if the correct information appeared earlier in the prompt, the final answer is still being generated probabilistically.

For critical data, that is unnecessary risk.


A Safer Architecture

Separate language understanding from business truth.

Customer

Understand Intent

Retrieve Business Data

Validate Result

Build Controlled Response

Speak

For example:

Customer:
"When does my warranty expire?"



Intent:
CHECK_WARRANTY



ERP / Asset System:
18 December 2026



Agent:
"Your warranty is valid until
18 December 2026."

The model helps understand the request.

It does not generate the date.


Keep Important State Outside the Prompt

Another common problem is expecting the LLM to remember everything from conversation history.

Suppose the customer already selected a service slot.

Instead of relying on the transcript:

“Earlier the customer said Friday at 3 PM...”

store the information explicitly:

customer_id: C10291
intent: service_booking
selected_date: 2026-09-18
selected_time: 15:00
slot_verified: true

Now the application has structured state that can be:

  • validated
  • inspected
  • tested
  • audited
  • reused

The transcript remains useful for conversation context.

But the transcript should not become your database.


Validate Before You Speak

Consider appointment booking.

The customer says:

“Friday at 3 works.”

The voice agent should not immediately respond:

“Done. Your appointment is confirmed.”

The correct execution path is:

Customer selects Friday 3 PM

Check FSM

Slot available?
/ \
YES NO
↓ ↓
Book Slot Offer Alternative

Booking Successful?

Tell Customer

The agent speaks only after the business action has succeeded.

This is an important distinction:

AI should not announce an outcome before the system has confirmed it.


Some Responses Should Be Deterministic

Not every sentence needs to be generated by an LLM.

For example:

  • payment confirmations
  • consent statements
  • regulatory disclosures
  • eligibility conditions
  • booking confirmations
  • warranty statements

can use approved templates.

Verified Data
+
Approved Template

TTS

For example:

“Your outstanding balance is ₹12,450 and the payment due date is 18 September.”

The values come from the billing system.

The sentence format comes from an approved template.

The LLM does not need to rewrite either.


Guardrails Should Exist Outside the Prompt

A prompt might say:

“Never invent a price.”

That is useful.

But it is weaker than an architecture where the model cannot provide a price unless the pricing system returns one.

This is the difference between:

Prompt-level control

and

Structural control

Production Voice AI should use both.

Prompts guide model behaviour.

The execution layer determines what the model is actually allowed to do.


Tool Calls Need Validation Too

Hallucination is not limited to spoken responses.

An LLM can also generate incorrect tool arguments.

For example:

schedule_visit(
customer="C10291",
date="2026-09-18",
time="15:00"
)

Before executing that action, the runtime should check:

  • Is this the correct customer?
  • Is the date valid?
  • Is the slot available?
  • Is the workflow currently allowed to book?
  • Has the customer actually confirmed?

The model can propose the action.

The runtime validates whether it can execute.


What If the System Does Not Know?

Reliable Voice AI also needs to know when not to answer.

If the CRM is unavailable, the agent should not guess.

The correct response may be:

“I'm unable to retrieve that information right now.”

The runtime can then:

  • retry
  • use an alternate service
  • schedule a callback
  • transfer to a human
  • provide a safe fallback

A production AI system should treat uncertainty as a state to handle—not an invitation to improvise.


Hallucination Is an Architecture Problem

At VARTA, we think hallucination control should look like this:

Language Understanding

Reasoning

Structured Intent

Business Validation

Execution

Controlled Response

The LLM remains extremely valuable.

It can understand:

  • free-form language
  • customer intent
  • ambiguity
  • objections
  • contextual questions

But the LLM does not need to own every fact spoken during the call.

Prices should come from pricing systems.

Customer information should come from CRM.

Appointments should come from FSM.

Warranty dates should come from ERP or asset systems.


The Question to Ask Before Every Business Fact

Before your Voice AI agent says a price, date, balance or customer-specific value, ask:

Where did this value come from?

If the answer is:

“The model generated it.”

there is probably a better architecture.

A stronger answer is:

The model understood the request. The enterprise system returned the fact. The runtime validated it. Then the agent spoke.

That is how enterprise Voice AI moves from sounding intelligent to behaving reliably.

AI can reason about the conversation. It should not invent the business reality.


VARTA Engineering

The execution layer for production-grade Voice AI.

VARTA is designed to work across leading LLM, STT and TTS ecosystems, including providers such as OpenAI, ElevenLabs and Sarvam, while keeping business rules, customer data, tool validation and execution controls independent of any single model.