recent-tealR
VAPI2mo ago
recent-teal

Collecting emails on phone calls

I'm struggling to get emails captured correctly during the phone call. I'm using a webhook for my phone calls.

I followed the tips provided in a separate thread, but it didn't resolve my issue.

----

Call IDs:
  • 019a98c0-8dfb-799f-8868-11f1563573f9
  • 019a98c2-16d2-733a-8327-717a18b299ac
  • 019a98c3-6ae7-7003-91cf-3d611a6b2b1b
---

The issue:

It often doesn't recognize special characters or inserts an incorrect word, which was never spoken.

Note: I'm using fake emails to illustrate the transcription behavior. I've provided call ids above

Scenario 1:
  • User: "The email is j o n plus c a l l 1 at gmail dot com"
    AI: "I have your email as j o n plus sign c a l l minus 1 at gmail dot com"
  • Thus the email gets recorded as: jon+call1@gmail.com --> jon+callminus1@gmail.com
Scenario 2:
  • User: "The email is j o n plus c a l l 1 at gmail dot com"
    AI: "I have your email as j o n plus sign c a l l minus 1 at gmail dot com"
  • Thus the email gets recorded as either:
    • jon+call1@gmail.com --> jon+signcall1@gmail.com
    • jon+call1@gmail.com --> jon+signcallminus1@gmail.com
Scenario 3 (transcription is correct, but the spoken email is incorrect):

----

Things I've tried:
  • Switched transcriber models but keep coming back to Deepgram / nova-3 as it's the most accurate
  • Adjusted the confidence threshold between 0.4-0.65, but get the same results
  • Tweaked my prompts
  • Switch models between gpt-4.1, gpt-5-mini, claude, etc. but experience similar results
  • Added a structured JSON to the assistant config. The captured structured JSON is correct, but the transcription and spoken email are incorrect
Deepgram config:
const deepgramTranscriber: Vapi.DeepgramTranscriber = {
  provider: "deepgram",
  model: "nova-3",
  language: "en-US",
  confidenceThreshold: 0.4, // I've also used 0.65
  smartFormat: true,
  numerals: true,
  endpointing: 300,
}
Was this page helpful?