Collecting emails on phone calls
# support
r
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](https://discord.com/channels/1211482211119796234/1438296426273702029), 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:
Copy code
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,
}
v
Suggestion: Set up a custom transcriber server to gain full control over Deepgram's output and filter out unwanted words in email transcriptions. For example, after forwarding audio to Deepgram, you can post-process the transcript to remove terms like
"sign"
and `"minus"`:
Copy code
js
// Example post-processing
const cleaned = transcript.replace(/\b(sign|minus)\b/gi, '');
This approach lets you tailor the transcription pipeline for emails and fix the special character issue directly in your server logic. [See the Vapi custom transcriber guide for setup details.](https://docs.vapi.ai/customization/custom-transcriber) Source: - [Custom transcriber | Vapi Docs](https://docs.vapi.ai/customization/custom-transcriber)
a
whats the email supposed to be?
is there a literal plus sign in it? I thought gmails couldn't have special characters
r
The email is supposed to be:
jon+call1@gmail.com
. Gmails can have a plus sign to create alias emails with. The main email would be
jon@gmail.com
and any email with
jon+
would get sent to
jon@gmail.com
I'm just a little confused why it's adding a "minus" before the 1. I can understand the mixup with adding "sign", but it still confusing when it's adding it as "+sign".
Thanks, Kyle! I'll give this a shot. Could you edit to redact my email for privacy reasons please?
k
Thanks for sharing the call examples — I checked the transcript and can confirm the issue isn’t with transcription, but with how the AI interprets the characters afterward. The user clearly said: “[REDACTED]” but the AI reformatted it as: “[REDACTED]” Why it happens The AI is adding words that weren’t spoken (e.g. “sign”, “minus”) It’s over-interpreting instead of taking characters literally Quick Fix (Recommended for Now) Add these strict rules to your prompt: ### STRICT EMAIL CAPTURE RULES - Do NOT add any words that were not spoken - "plus" = "+" ONLY (not "plus sign" unless they say "plus sign") - "1" is just "1" (never "minus1" or "negative1") - "dot" = "." - "at" = "@" - Confirm by repeating EXACTLY what was spoken, character by character Best Next Step Use a two-step confirmation: Repeat the email exactly as spoken (not formatted yet) Then confirm the final formatted version (e.g., [REDACTED)
2 Views