Multilingual support agent

Build a global support agent that handles English, Spanish, and French customer inquiries with automatic language detection and native voice quality

Overview

Build a dynamic customer support agent for GlobalTech International that automatically detects and responds in the customer’s language (English, Spanish, or French) during conversation, with seamless language switching and real-time adaptation.

What You’ll Build:

  • Assistant with automatic multilingual transcription
  • Dynamic voice adaptation for detected languages
  • Real-time language switching during conversations
  • Phone number setup for seamless international support
  • Advanced prompting for cultural context awareness

Alternative Approach: For a more structured multilingual experience with explicit language selection, see our Workflow-based multilingual support that guides customers through language selection and dedicated conversation paths.

Prerequisites

Scenario

We will be creating a dynamic multilingual customer support agent for GlobalTech International, a technology company serving customers across North America, Europe, and Latin America. Unlike structured language selection, this agent automatically detects the customer’s language from their speech and can switch languages mid-conversation, providing a truly seamless multilingual experience.


1. Create a Multilingual Knowledge Base

2

Upload the files

  1. Navigate to Files in your Vapi Dashboard
  2. Click Choose file and upload all three CSV files
  3. Note the file IDs for use in creating multilingual tools

2. Create a Multilingual Assistant

2

Create a new assistant

  • Click Create Assistant.
  • Select Blank Template as your starting point.
  • Change assistant name to GlobalTech Support Agent.

3. Configure Multilingual Transcription

1

Set up automatic language detection

  1. In your assistant configuration, find the Transcriber section
  2. Provider: Select Deepgram (recommended for speed and accuracy)
  3. Model: Choose Nova 2 or Nova 3
  4. Language: Select Multi (enables automatic language detection)
  5. Alternative: Use Google provider with Multilingual language setting

4. Configure Multilingual Voice Synthesis

1

Set up language-specific voices

  1. In the Voice section of your assistant:
  2. Provider: Select Azure (best multilingual coverage)
  3. Voice: Choose primary voice en-US-AriaNeural (English)
  4. Add fallback voices:
    • Spanish: es-ES-ElviraNeural (Spain) or es-MX-DaliaNeural (Mexico)
    • French: fr-FR-DeniseNeural (France) or fr-CA-SylvieNeural (Canada)
  5. Alternative providers: ElevenLabs, OpenAI, or PlayHT all support multiple languages

5. Configure System Prompt

1

Update the multilingual system prompt

First, create this comprehensive system prompt:

System Prompt
# GlobalTech International - Multilingual Support Agent
## Identity & Role
You are **Maria**, a multilingual customer support representative for GlobalTech International. You are fluent in English, Spanish, and French, and you help customers with product information, account support, and technical troubleshooting.
## Language Capabilities & Cultural Guidelines
### English (Primary)
- **Tone**: Direct, friendly, professional
- **Style**: Conversational but efficient
- **Approach**: Solution-focused, provide clear steps
### Spanish
- **Tone**: Warm, respectful, patient
- **Formality**: Use formal "usted" initially, then adapt to customer preference
- **Approach**: Take time to build rapport, be thorough in explanations
### French
- **Tone**: Polite, courteous, professional
- **Formality**: Use proper greeting conventions ("Bonjour/Bonsoir")
- **Approach**: Structured responses, respectful of formality
## Core Responsibilities
1. **Product Information**: Help customers understand our technology solutions
2. **Account Support**: Assist with account access, billing, and subscription questions
3. **Technical Troubleshooting**: Guide customers through technical issues step-by-step
4. **Escalation**: Transfer to specialized teams when needed
## Language Behavior
- **Auto-detect**: Automatically respond in the customer's language
- **Language Switching**: If customer switches languages, switch with them seamlessly
- **Mixed Languages**: If customer uses multiple languages, respond in their primary language
- **Unsupported Languages**: If customer speaks another language, politely explain you support English, Spanish, and French
## Available Tools
- **Customer Lookup**: Search customer database by email, phone, or account ID
- **Product Information**: Access product catalog and specifications
- **Support Articles**: Find relevant troubleshooting guides in customer's language
Keep responses concise (under 50 words) while being thorough and helpful.

Then update your assistant:

Copy the system prompt above and paste it into the System Prompt field in your assistant configuration.


6. Add Multilingual Tools

2

Create customer lookup tool

  • Click Create Tool.

  • Select Function as your tool type.

  • Change tool name to lookup_customer.

  • Add function description:

    Function Description
    Look up customer information by email, phone number, or account ID. Returns customer details including preferred language, account status, and support history.
  • Add knowledge base:

    • Name: customers
    • Description: Customer database with multilingual support preferences
    • File IDs: <File ID of your customers.csv file>
3

Create product information tool

  • Click Create Tool.

  • Select Function as your tool type.

  • Change tool name to get_product_info.

  • Add function description:

    Function Description
    Get detailed product information including specifications, pricing, and availability. Supports queries in English, Spanish, and French.
  • Add knowledge base:

    • Name: products
    • Description: Product catalog with multilingual descriptions
    • File IDs: <File ID of your products.csv file>
4

Create support articles tool

  • Click Create Tool.

  • Select Function as your tool type.

  • Change tool name to search_support_articles.

  • Add function description:

    Function Description
    Search technical support articles and troubleshooting guides. Returns relevant articles in the customer's preferred language.
  • Add knowledge base:

    • Name: support_articles
    • Description: Multilingual support documentation and troubleshooting guides
    • File IDs: <File ID of your support_articles.csv file>
5

Add tools to assistant

  • Click Assistants in the left sidebar.
  • Select your GlobalTech Support Agent.
  • Scroll down to the Tools section and expand it.
  • Add all three tools: lookup_customer, get_product_info, and search_support_articles.
  • Click Publish to save your changes.

7. Set Up Phone Number

2

Create a new phone number

  • Click Create Phone Number.
  • Choose Free Vapi Number to get started.
  • Select your preferred area code (e.g., 212 for New York).
3

Configure the phone number

  • Set the Phone Number Name to GlobalTech International Support.
  • Under Inbound Settings, find Assistant dropdown and select GlobalTech Support Agent.
  • Optional: Configure advanced settings:
    • Enable call recording for quality assurance
    • Set up voicemail detection
    • Configure business hours if needed
  • Changes are saved automatically.

Alternative: Workflow-Based Language Selection

For a more structured approach with explicit language selection, see our comprehensive Workflow-based multilingual support guide. This approach lets customers choose their language at the start of the call, then routes them to dedicated conversation paths optimized for each language.

1

Create a workflow with language selection

1const languageSelectionWorkflow = await vapi.workflows.create({
2 name: "GlobalTech Multilingual Workflow",
3 nodes: [
4 {
5 id: "language_selection",
6 type: "conversation",
7 firstMessage: "Hello! Hola! Bonjour! Welcome to GlobalTech International. Please say 'English', 'Español', or 'Français' to continue in your preferred language.",
8 systemPrompt: "Listen for the customer's language preference and extract it.",
9 extractVariables: [
10 {
11 name: "preferred_language",
12 type: "string",
13 description: "Customer's preferred language",
14 enum: ["english", "spanish", "french"]
15 }
16 ]
17 },
18 {
19 id: "english_support",
20 type: "conversation",
21 condition: "preferred_language == 'english'",
22 firstMessage: "Thank you for choosing English. I'm Maria, your support representative. How can I help you today?",
23 systemPrompt: "You are Maria, GlobalTech's English support agent. Be direct, friendly, and professional.",
24 voice: {
25 provider: "azure",
26 voiceId: "en-US-AriaNeural"
27 }
28 },
29 {
30 id: "spanish_support",
31 type: "conversation",
32 condition: "preferred_language == 'spanish'",
33 firstMessage: "Gracias por elegir español. Soy María, su representante de soporte. ¿Cómo puedo ayudarle hoy?",
34 systemPrompt: "Eres María, agente de soporte en español de GlobalTech. Sé cálida, respetuosa y usa 'usted' inicialmente.",
35 voice: {
36 provider: "azure",
37 voiceId: "es-ES-ElviraNeural"
38 }
39 },
40 {
41 id: "french_support",
42 type: "conversation",
43 condition: "preferred_language == 'french'",
44 firstMessage: "Merci d'avoir choisi le français. Je suis Maria, votre représentante du support. Comment puis-je vous aider aujourd'hui?",
45 systemPrompt: "Vous êtes Maria, agent de support français de GlobalTech. Soyez polie, courtoise et formelle.",
46 voice: {
47 provider: "azure",
48 voiceId: "fr-FR-DeniseNeural"
49 }
50 }
51 ]
52});
2

Benefits of workflow approach

  • Clearer language selection: Customers explicitly choose their language
  • Dedicated language paths: Each language has its own conversation flow
  • Optimized voices: Language-specific voices for better quality
  • Easier maintenance: Separate prompts and logic for each language
  • Better analytics: Track language preferences and usage patterns

Provider Support Summary

Speech-to-Text (Transcription):

  • Deepgram: Nova 2, Nova 3 with “Multi” language setting
  • Google: Latest models with “Multilingual” language setting
  • All other providers: Single language only, no automatic detection

Text-to-Speech (Voice Synthesis):

  • Azure: 400+ voices across 140+ languages (recommended for coverage)
  • ElevenLabs: 30+ languages with premium quality
  • OpenAI: 50+ languages with consistent quality
  • PlayHT: 80+ languages, cost-effective
  • All providers: Support multiple languages natively

Language Models:

  • All major LLMs (GPT-4o, Claude, Gemini, Llama, etc.): Native multilingual support

Next Steps

Just like that, you’ve built a dynamic multilingual customer support agent that automatically detects and responds in the customer’s language with seamless mid-conversation language switching.

Consider reading the following guides to further enhance your multilingual implementation:

Need help with multilingual implementation? Chat with the team on our Discord or mention us on X/Twitter.