Multilingual support workflow
Overview
Build a structured multilingual customer support workflow that guides customers through language selection at the start of the call, then routes them to dedicated conversation paths optimized for English, Spanish, and French support.
What You’ll Build:
- Visual workflow with language selection and routing logic
- Dedicated conversation nodes for each language with cultural context
- Language-specific voice and prompt configurations
- Multilingual knowledge base integration with customer data
- 24/7 international phone support with optimal user experience
Prerequisites
- A Vapi account.
Scenario
We will be creating a multilingual support workflow for GlobalTech International, a technology company serving customers across North America, Europe, and Latin America. Instead of trying to detect language automatically, the workflow provides a clear language selection menu and routes customers to dedicated support paths optimized for each language and culture.
Final Workflow

1. Create a Multilingual Knowledge Base
Dashboard
TypeScript (Server SDK)
Python (Server SDK)
cURL
2. Create a Multilingual Workflow
Dashboard
TypeScript (Server SDK)
Python (Server SDK)
cURL
Complete Workflow JSON: You can download the complete workflow configuration as a JSON file and use it with any HTTP client or save it for version control:
3. Build the Multilingual Workflow
You’ll start with a language selection node and then create dedicated conversation paths for each language with appropriate cultural context and voices.
Configure the Language Selection Node
The workflow starts with a language selection node. Click on it and configure:
Extract Variables:
- Variable:
preferred_language
- Type:
String
- Description:
Customer's preferred language choice
- Enum Values:
english
,spanish
,french
Add English Support Path
Click the + button and add a new Conversation node:
Voice Configuration:
- Provider:
Azure
- Voice:
en-US-AriaNeural
Extract Variables:
- Variable:
customer_inquiry_type
- Type:
String
- Description:
Type of support needed
- Enum Values:
product_info
,account_support
,technical_help
,billing_question
Add Spanish Support Path
Add another Conversation node:
Voice Configuration:
- Provider:
Azure
- Voice:
es-ES-ElviraNeural
(ores-MX-DaliaNeural
for Mexican Spanish)
Extract Variables:
- Variable:
customer_inquiry_type
- Type:
String
- Description:
Tipo de soporte necesario
- Enum Values:
informacion_producto
,soporte_cuenta
,ayuda_tecnica
,pregunta_facturacion
Add French Support Path
Add another Conversation node:
Voice Configuration:
- Provider:
Azure
- Voice:
fr-FR-DeniseNeural
(orfr-CA-SylvieNeural
for Canadian French)
Extract Variables:
- Variable:
customer_inquiry_type
- Type:
String
- Description:
Type de support nécessaire
- Enum Values:
info_produit
,support_compte
,aide_technique
,question_facturation
Add Customer Lookup Flow
For each language path, add a Tool node to look up customer information:
English Customer Lookup:
Tool: Select your pre-configured lookup_customer
tool
Follow-up Conversation Node:
Spanish Customer Lookup:
Tool: Select your pre-configured lookup_customer
tool
Follow-up Conversation Node:
French Customer Lookup:
Tool: Select your pre-configured lookup_customer
tool
Follow-up Conversation Node:
Add Support Resolution Flows
Create specialized flows for different inquiry types in each language:
Product Information Flow (for each language):
- Tool Node: Use
get_product_info
tool - Conversation Node: Present product information in customer’s language
- Follow-up: Ask if they need additional assistance
Technical Support Flow (for each language):
- Tool Node: Use
search_support_articles
tool - Conversation Node: Guide through troubleshooting in customer’s language
- Follow-up: Verify issue resolution or escalate if needed
Account Support Flow (for each language):
- Conversation Node: Collect account details in customer’s language
- Tool Node: Look up account information
- Conversation Node: Resolve account issues or transfer to billing team
Add Transfer and Completion Nodes
Transfer to Human Agent (language-specific):
English Transfer:
Node Type: Transfer Call
First Message: I'm connecting you to one of our English-speaking specialists who can better assist you. Please hold for just a moment.
Phone: +1-555-SUPPORT
Spanish Transfer:
Node Type: Transfer Call
First Message: Le estoy conectando con uno de nuestros especialistas de habla hispana que puede ayudarle mejor. Por favor, manténgase en línea por un momento.
Phone: +1-555-SOPORTE
French Transfer:
Node Type: Transfer Call
First Message: Je vous mets en relation avec l'un de nos spécialistes francophones qui pourra mieux vous aider. Veuillez patienter un instant.
Phone: +1-555-SOUTIEN
End Call Node (language-specific):
English: Thank you for contacting GlobalTech International. Have a great day!
Spanish: Gracias por contactar a GlobalTech International. ¡Que tenga un excelente día!
French: Merci d'avoir contacté GlobalTech International. Passez une excellente journée!
4. Configure Phone Number
Dashboard
TypeScript (Server SDK)
Python (Server SDK)
cURL
Create or Import Phone Number
- Click
Create Phone Number
for a new Vapi number, or - Click
Import Phone Number
to use your existing number from Twilio/Telnyx
Benefits of Workflow-Based Multilingual Support
Structured Language Selection
- Clear menu: Customers explicitly choose their language
- No guesswork: Eliminates language detection errors
- Better UX: Customers know exactly what to expect
Optimized Conversation Paths
- Dedicated nodes: Each language has its own conversation flow
- Cultural context: Language-specific tone and formality levels
- Native voices: Optimal voice selection for each language
Easier Maintenance
- Separate logic: Independent conversation flows for each language
- Clear analytics: Track usage and success by language
- Scalable: Easy to add new languages without affecting existing flows
Enhanced Performance
- No real-time detection: Faster response times
- Optimized prompts: Language-specific system prompts
- Better accuracy: Eliminates language switching confusion
Alternative Approach: For automatic language detection during conversation, see our Assistant-based multilingual agent that detects and switches languages dynamically within a single conversation flow.
Next Steps
Just like that, you’ve built a structured multilingual support workflow that provides clear language selection and optimal conversation paths for each language.
Consider reading the following guides to further enhance your workflow:
- Assistant-based Multilingual Agent - Compare with automatic language detection approach
- Custom Tools - Create advanced multilingual tools and integrations
- Advanced Workflows - Learn about complex workflow patterns and conditional logic