Blog · November 12, 2026 · 7 min read

How our voice agent finally gets email addresses right

Dictating an email address to an AI over the phone is where voice agents break. We took the problem out of the prompt and gave it to a tool that listens to the caller again, decides on its own when to ask for spelling, and tells the agent how to read the address back.

Lire en français

"Could I get your email address?"

For a voice agent, this is the most dangerous question of the call. The meeting is almost booked, the prospect said yes, all that is left is to write down their address to send the invite. And that is where it all plays out: one wrong letter, and the invite goes nowhere. The prospect never gets it, never shows up, and nobody knows why.

We spent a lot of time on this problem. Here is what we learned, and how we solved it.

Why an email address is a nightmare for an AI

A voice agent works in three steps: it listens (a transcriber turns the voice into text), it thinks (a language model reads that text and decides what to say), then it speaks (a synthetic voice reads its answer).

The transcriber is built for conversation. It is great at "I'm free Thursday afternoon". It is bad at anything that does not look like a sentence. And an email address looks like nothing:

  • Names with no obvious spelling. "Aric" and "Arik" sound exactly the same. So do "Smith" and "Smyth". The transcriber picks one at random, or invents a word it knows.
  • Spelled letters. Phone audio is compressed. B, D, P and T blur together. So do M and N, and F and S.
  • Symbols said out loud. "Dot", "at", "dash", "underscore": the transcriber sometimes writes them as words, sometimes drops them entirely.

A real example: someone dictates "lasry dot aric at gmail dot com". The live transcriber wrote "kessery ari".

The core problem is that the language model only sees the text. It never heard the caller. If the transcriber lost the information, no instruction, however well written, can bring it back.

The usual answer: prompt engineering

On most voice agent platforms, handling this moment is your job, in your agent's prompt. Vapi, for instance, has a full documentation page on reading email addresses, with instruction blocks to paste into your prompt: ask for the address, wait for the full answer, read it back, ask "Is that correct?", have the caller spell it letter by letter if they say no, say "at" for @ and "dot" for the period, never autocorrect, fall back to the NATO alphabet if the caller struggles. It also suggests adding custom keywords to the transcriber for domains it mishears.

It is a careful approach, but it has two limits:

  1. It all rests on you. Every agent you build has to carry that instruction block, and you tune it when it gets things wrong. Always ask for spelling? Then your customers at marie.martin@gmail.com spell for nothing, and find the agent tedious. Never ask? Then Arik becomes Aric. In between, you tune by hand, call after call.
  2. It still works on the transcriber's text. The language model can read back, ask for confirmation, ask for spelling. But it reads back what the transcriber thought it heard. The caller spells "L, A, S, R, Y", the transcriber hears "L, A, F, R, Y", and that is the version that gets read back.

Our approach: a tool that listens to the caller again

At Revox, the agent does not try to guess the address. It has a dedicated tool, capture_email.

For a voice agent, a tool is an action it can trigger in the middle of the conversation, like an app it opens: check a calendar, send a text, transfer the call. The language model decides when to use it, the tool does the work, then hands back a result the agent uses for what comes next.

Here is what happens, step by step, once the caller has dictated their address.

1. The agent calls the tool, and the tool speaks for itself

As soon as the caller has given their address, the agent triggers capture_email. The tool immediately says a short line: "Let me write down your address, one moment." On the phone, a few seconds of silence feel like a dropped line. That line is not left to the language model: the tool says it, in the language of the call, every time.

2. The tool takes the caller's real voice, not the text

Throughout the call, Revox keeps the last minute and a half of the caller's voice, on their own audio track (without the agent's voice). The tool takes that raw audio.

Why 90 seconds and not just their last answer? Because people spell slowly, in chunks. "L, A, S..." "Okay." "...R, Y, dot..." Every little "okay" from the agent cuts the dictation into several turns, and the "last answer" is often just the end of the address.

3. A specialized audio model listens again, knowing what it is looking for

That audio goes to a specialized audio model. Unlike the transcriber, it does not transcribe a conversation: it listens to the passage again with a single job, finding an email address. It knows that "at" means @, that "B as in Bravo" means B, that the last version wins when the caller corrects themselves, and that spelled letters beat a word that was only said. What the transcriber thought it heard is passed along, but only as a hint: when they disagree, the audio wins.

4. The model decides whether the address is certain, character by character

This is the heart of the system. The model does not just write the address down: it judges whether every character is certain.

A part is certain when it was spelled clearly, or when it has only one possible spelling: a dictionary word, a first name with no variants, a well-known provider (gmail.com, outlook.com, yahoo.com...), clearly spoken digits, a clearly heard "dot".

A part is doubtful when it was only said and could be written more than one way: most last names, first names with variants (Aric or Arik, Katie or Katy), a company domain, initials, double letters, a separator it did not hear clearly (dot, dash, underscore, or nothing at all?). And on the phone, spelled letters that sound alike (M or N) stay doubtful unless the caller gave a word to tell them apart.

5. The tool returns one of two answers

The address is certain. The tool returns the exact address, and how to say it:

Address: lasry.aric@gmail.com Say: L, A, S, R, Y dot A, R, I, C at gmail dot com

The address is not certain. The tool does not return its guess. It only returns what the agent should ask, aimed at the doubtful part alone:

Ask them to spell their last name, letter by letter.

or:

Ask whether it is M as in Mike or N as in November, in the part before the @.

The agent asks, the caller spells, the agent calls the tool again, and the tool listens to everything again, spelling included. The loop ends as soon as the address is certain.

6. The agent reads the address back properly

A synthetic voice reading "lasry.aric@gmail.com" as is often produces mush: "lasriaric gmail com". That is why the tool also returns the pronunciation, written for the synthetic voice, in the caller's language: symbols as words ("at", "dot"), common words and well-known providers said normally, and the parts the caller had to spell read back letter by letter. The caller hears exactly what they can check.

If the caller corrects it, the agent has them spell the correction and runs the tool again. From then on, wherever the address is used (calendar invite, CRM, follow-up email), it is the address the tool returned, never what the agent thought it heard.

What it changes

You write nothing. No "email collection" block in your prompt, no spelling rules, no NATO alphabet, no keywords to add to the transcriber. The decision to ask for spelling lives in the tool, not in your prompt. Your agent simply asks "What's your email address?" and the tool handles the rest.

Callers only spell when they need to. Marie Martin at Gmail spells nothing. Aric Lasry spells his last name. And if only one letter is a problem, nobody has to start over: the agent asks for that letter.

A doubtful address never leaves the tool. Since the tool does not return its guess when it is unsure, the agent cannot use it by mistake. A wrong address in your CRM is worse than one more question.

What we take away from it

  • Don't ask the language model about what it cannot see. It reads text. For an email address, the sound is what matters. The right move is to hand the sound to a model that knows how to listen.
  • A specialist for the hard part. The agent stays a conversation generalist. The most fragile moment of the call goes to a model that does only that.
  • Know-how goes in the tool, not in the prompt. A rule written in a prompt has to be rewritten for every agent, and can be ignored. A rule carried by the tool works for every agent, every time.
  • Hide the wait. A tool that takes a few seconds should fill the line itself. Silence is what makes people hang up.
  • Aim precisely. Asking "could you spell your last name?" instead of "could you repeat your address?" is the difference between an agent that listens and an agent that wears people out.

We also recorded a video that shows the full loop on a real call: the dictated address, the targeted question, the read-back.

This address capture is available on every Revox agent. If you want to hear it for yourself, the easiest way is to call our demo agent and dictate yours.

Never lose another prospect.

Your leads called back, followed up, and qualified by AI. Your sales team focuses on one thing: closing.