Multilingual support agent
Configure transcription, a multilingual voice, and file-based support answers in English, Spanish, and French
Use sample customer records only. A knowledge-base lookup does not authenticate callers or enforce access to real customer accounts.
Overview
Build a support assistant for GlobalTech International that handles English, Spanish, and French. Configure multilingual transcription and one multilingual voice, then use a prompt to guide the assistant’s response language.
A Query tool retrieves information from uploaded files. In this demo, one Query tool searches three CSV files. You don’t need a custom server or a tool-calls webhook handler.
The files are a snapshot, not a live customer database or product catalog.
What you’ll build:
- Multilingual transcription for English, Spanish, and French
- One multilingual voice that automatically selects the synthesis language
- Prompt-guided responses when callers change languages
- A Vapi phone number for incoming support calls
- A system prompt with language and tone instructions
- One Query tool for customer records, product information, and support article summaries
Alternative Approach: For a more structured multilingual experience with explicit language selection, see our Squad-based multilingual support that guides customers through language selection and dedicated conversation paths.
Prerequisites
- A Vapi account.
- A Vapi private API key stored in the
VAPI_API_KEYenvironment variable. Run API examples on your server or local machine, not in browser code. - Install
@vapi-ai/server-sdkversion 2.0.1 for TypeScript or therequestspackage for Python. The cURL model-update examples also usejq.
Each TypeScript and Python snippet includes its own imports and setup. Replace YOUR_ASSISTANT_ID and the file or tool ID placeholders with the IDs returned by earlier steps.
Scenario
GlobalTech International serves customers across North America, Europe, and Latin America. This example uses one assistant for all three languages, without a language-selection menu. Test transcription, spoken responses, and knowledge-base answers in each language before connecting callers.
1. Upload the sample files
The CSV files contain fictional example data for this tutorial. Do not call or email the sample customers.
Upload the files
Dashboard
TypeScript (Server SDK)
Python (HTTP API)
cURL
- Navigate to Files in your Vapi Dashboard.
- Click Choose file and upload all three CSV files.
- Note the file IDs for use in creating the Query tool.
2. Create a Multilingual Assistant
Dashboard
TypeScript (Server SDK)
Python (HTTP API)
cURL
3. Configure Multilingual Transcription
Set up automatic language detection
Use Deepgram nova-3 with language: "multi" for English, Spanish, and French. Nova-2 multilingual mode supports English and Spanish only. Choose one transcriber configuration below.
Dashboard
TypeScript (Server SDK)
Python (HTTP API)
cURL
- In your assistant configuration, find the Transcriber section
- Provider: Select
Deepgram(recommended for speed and accuracy) - Model: Choose
Nova 3 - Language: Select
Multi(enables automatic language detection) - Alternative: Use
Googleprovider withMultilinguallanguage setting
4. Configure Multilingual Voice Synthesis
Set up automatic language synthesis
Dashboard
TypeScript (Server SDK)
Python (HTTP API)
cURL
- In the Voice section of your assistant, select Vapi.
- Choose a Vapi Voice.
- Set Version to
2. - Leave the language unset, or set it to
auto.
Voice fallbacks activate when synthesis fails. They do not select a different voice based on the detected language.
5. Configure System Prompt
Update the multilingual system prompt
Use this system prompt to choose the relevant knowledge base and answer from the returned data:
Then update your assistant. The API examples retrieve the existing model first so the prompt update preserves its other settings:
Dashboard
TypeScript (Server SDK)
Python (HTTP API)
cURL
Copy the system prompt above and paste it into the System Prompt field in your assistant configuration.
6. Create and attach a Query tool
Create one Query tool with three knowledge bases. The assistant selects the relevant knowledge bases for each question. Vapi retrieves from the uploaded files, so you don’t need a custom tool-calls webhook handler.
The API examples use the default function name, defaultQueryTool. Use that name in the dashboard and in the system prompt from step 5. Replace the file ID placeholders with the IDs from step 1.
For complete request schemas, see the Create Tool and Update Assistant API references.
Dashboard
TypeScript (Server SDK)
Python (HTTP API)
cURL
Create a Query tool
Open Tools in the Vapi Dashboard. Click Create Tool and select Query. Set Tool Name to defaultQueryTool.
The API examples target the new assistant created in this guide and replace its model.toolIds array. Include unrelated tool IDs you want to keep if you adapt an existing assistant. Use one Query tool for these three knowledge bases.
Test the saved assistant before connecting callers:
- Ask about
P001in English, then switch to Spanish. Check thatdefaultQueryToolusesknowledgeBaseNames: ["products"]and that both answers match the product’s corresponding language fields. - Ask in French for a summary of
A001. The answer should usesupport_articlesand summarize the French content, without inventing password-reset steps. - Ask for the sample profile
C001. The answer should usecustomersand match that record. Confirm that the assistant does not describe the lookup as authentication. - Test an unknown ID, a correction, and a failed lookup. The assistant should clarify or explain the failure instead of inventing a record.
Knowledge-base selection, language choice, and matching are guided by the prompt, not enforced as database rules. The sample files contain no live inventory, account-changing actions, or complete troubleshooting procedures.
7. Set Up Phone Number
These examples create a Vapi phone number in a US-region organization. Choose an available area code; the API examples request 415.
Dashboard
TypeScript (Server SDK)
Python (HTTP API)
cURL
Alternative: Squad-Based Language Selection
For a more structured approach with explicit language selection, see our comprehensive Squad-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.
Provider Support Summary
Automatic detection and code-switching require provider-specific transcriber settings. Review Multilingual support and the individual transcriber provider pages for current configurations.
For speech synthesis, confirm that the selected model and voice support every language in your assistant’s system prompt. Vapi Voices V2 can select the synthesis language automatically. Other providers may require a provider-specific model, voice, or language setting.
Next Steps
You’ve configured a multilingual support demo with transcription, one multilingual voice, and a Query tool for sample data. Test each language and mid-conversation language changes before connecting callers.
Consider reading the following guides to further enhance your multilingual implementation:
- Squad-based Multilingual Support - Compare with structured language selection approach
- Multilingual Configuration Guide - Learn about all multilingual configuration options
- Query tool - Configure file-based knowledge retrieval
Need help with multilingual implementation? Ask other developers in the Vapi Discord community or mention us on X/Twitter.