---
source_url: "https://docs.vapi.ai/assistants/examples/multilingual-agent"
title: "Multilingual support agent | Vapi"
mirrored_at: 2026-08-14T03:39:37.931Z
host: docs.vapi.ai
cited_in_42a: true
mirror_canonical: "https://index.42a.ai/docs.vapi.ai/assistants/examples/multilingual-agent"
---

> **Original source:** https://docs.vapi.ai/assistants/examples/multilingual-agent

## 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 [Squad-based multilingual support](https://docs.vapi.ai/squads/examples/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

[1](https://docs.vapi.ai/assistants/examples/multilingual-agent#download-the-spreadsheets)

### Download the spreadsheets

[2](https://docs.vapi.ai/assistants/examples/multilingual-agent#upload-the-files)

### Upload the files

###### Dashboard

###### TypeScript (Server SDK)

###### Python (Server SDK)

###### cURL

1.  Navigate to **Files** in your [Vapi Dashboard](https://dashboard.vapi.ai/)
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

###### Dashboard

###### TypeScript (Server SDK)

###### Python (Server SDK)

###### cURL

[2](https://docs.vapi.ai/assistants/examples/multilingual-agent#create-a-new-assistant)

### 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](https://docs.vapi.ai/assistants/examples/multilingual-agent#set-up-automatic-language-detection)

### Set up automatic language detection

###### Dashboard

###### TypeScript (Server SDK)

###### Python (Server SDK)

###### cURL

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](https://docs.vapi.ai/assistants/examples/multilingual-agent#set-up-language-specific-voices)

### Set up language-specific voices

###### Dashboard

###### TypeScript (Server SDK)

###### Python (Server SDK)

###### cURL

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](https://docs.vapi.ai/assistants/examples/multilingual-agent#update-the-multilingual-system-prompt)

### Update the multilingual system prompt

First, create this comprehensive system prompt:

Then update your assistant:

###### Dashboard

###### TypeScript (Server SDK)

###### Python (Server SDK)

###### cURL

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

* * *

## 6\. Add Multilingual Tools

###### Dashboard

###### TypeScript (Server SDK)

###### Python (Server SDK)

###### cURL

[2](https://docs.vapi.ai/assistants/examples/multilingual-agent#create-customer-lookup-tool)

### Create customer lookup tool

-   Click `Create Tool`.
    
-   Select `Function` as your tool type.
    
-   Change tool name to `lookup_customer`.
    
-   Add function description:
    
-   Add knowledge base:
    
    -   Name: `customers`
    -   Description: `Customer database with multilingual support preferences`
    -   File IDs: `<File ID of your customers.csv file>`

[3](https://docs.vapi.ai/assistants/examples/multilingual-agent#create-product-information-tool)

### Create product information tool

-   Click `Create Tool`.
    
-   Select `Function` as your tool type.
    
-   Change tool name to `get_product_info`.
    
-   Add function description:
    
-   Add knowledge base:
    
    -   Name: `products`
    -   Description: `Product catalog with multilingual descriptions`
    -   File IDs: `<File ID of your products.csv file>`

[4](https://docs.vapi.ai/assistants/examples/multilingual-agent#create-support-articles-tool)

### Create support articles tool

-   Click `Create Tool`.
    
-   Select `Function` as your tool type.
    
-   Change tool name to `search_support_articles`.
    
-   Add function description:
    
-   Add knowledge base:
    
    -   Name: `support_articles`
    -   Description: `Multilingual support documentation and troubleshooting guides`
    -   File IDs: `<File ID of your support_articles.csv file>`

[5](https://docs.vapi.ai/assistants/examples/multilingual-agent#add-tools-to-assistant)

### 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

###### Dashboard

###### TypeScript (Server SDK)

###### Python (Server SDK)

###### cURL

[1](https://docs.vapi.ai/assistants/examples/multilingual-agent#navigate-to-phone-numbers)

### Navigate to Phone Numbers

Open your [dashboard.vapi.ai](https://dashboard.vapi.ai/) and click `Phone Numbers` in the left sidebar.

[2](https://docs.vapi.ai/assistants/examples/multilingual-agent#create-a-new-phone-number)

### 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](https://docs.vapi.ai/assistants/examples/multilingual-agent#configure-the-phone-number)

### 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: Squad-Based Language Selection

For a more structured approach with explicit language selection, see our comprehensive [Squad-based multilingual support](https://docs.vapi.ai/squads/examples/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](https://docs.vapi.ai/assistants/examples/multilingual-agent#create-a-workflow-with-language-selection)

### Create a workflow with language selection

1

const 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](https://docs.vapi.ai/assistants/examples/multilingual-agent#benefits-of-workflow-approach)

### 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):**

-   **Gladia**: Solaria, automatic language detection and code-switching.
-   **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:

-   [**Squad-based Multilingual Support**](https://docs.vapi.ai/squads/examples/multilingual-support) - Compare with structured language selection approach
-   [**Multilingual Configuration Guide**](https://docs.vapi.ai/customization/multilingual) - Learn about all multilingual configuration options
-   [**Custom Tools**](https://docs.vapi.ai/tools/custom-tools) - Build advanced multilingual tools and integrations

Need help with multilingual implementation? Chat with the team on our [Discord](https://discord.com/invite/pUFNcf2WmH) or mention us on [X/Twitter](https://x.com/Vapi_AI).