> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.vapi.ai/llms.txt.
> For full documentation content, see https://docs.vapi.ai/llms-full.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.vapi.ai/_mcp/server.

# Multilingual support squad

> Build a Squad with dedicated English, Spanish, and French assistants and a language selection entrance flow.

## Overview

Provide structured multilingual support using a Squad: present a short language selection, then route to dedicated EN/ES/FR assistants with tuned prompts and voices.

**Squad Capabilities:**

* Explicit language choice for clarity
* Language‑specific prompts and voices
* Seamless handoffs while preserving context

## 1. Define members

```json title="Example squad payload"
{
  "members": [
    { "assistant": { "name": "English Support", "model": {"provider": "openai", "model": "gpt-4o", "messages": [{"role": "system", "content": "English support. Direct, friendly, professional."}] }, "voice": {"provider": "azure", "voiceId": "en-US-AriaNeural"}, "firstMessage": "Hello! How can I help you today?", "firstMessageMode": "assistant-speaks-first" } },
    { "assistant": { "name": "Soporte Español", "model": {"provider": "openai", "model": "gpt-4o", "messages": [{"role": "system", "content": "Soporte en español. Cálido y respetuoso; usa 'usted' inicialmente."}] }, "voice": {"provider": "azure", "voiceId": "es-ES-ElviraNeural"} } },
    { "assistant": { "name": "Support Français", "model": {"provider": "openai", "model": "gpt-4o", "messages": [{"role": "system", "content": "Support français. Poli, courtois et formel."}] }, "voice": {"provider": "azure", "voiceId": "fr-FR-DeniseNeural"} } }
  ]
}
```

## 2. Entrance flow

Start with a brief selection (EN/ES/FR). Route to the matching assistant. Optionally auto‑detect and confirm.

## 3. Implement

```typescript
import { VapiClient } from "@vapi-ai/server-sdk";
const vapi = new VapiClient({ token: process.env.VAPI_API_KEY! });

await vapi.calls.create({
  transport: { type: "web" },
  squad: {
    members: [
      { assistant: { name: "English Support", model: { provider: "openai", model: "gpt-4o", messages: [{ role: "system", content: "English support. Direct, friendly, professional." }] }, voice: { provider: "azure", voiceId: "en-US-AriaNeural" }, firstMessage: "Hello! How can I help you today?", firstMessageMode: "assistant-speaks-first" } },
      { assistant: { name: "Soporte Español", model: { provider: "openai", model: "gpt-4o", messages: [{ role: "system", content: "Soporte en español. Cálido y respetuoso; usa 'usted' inicialmente." }] }, voice: { provider: "azure", voiceId: "es-ES-ElviraNeural" } } },
      { assistant: { name: "Support Français", model: { provider: "openai", model: "gpt-4o", messages: [{ role: "system", content: "Support français. Poli, courtois et formel." }] }, voice: { provider: "azure", voiceId: "fr-FR-DeniseNeural" } } }
    ],
  },
});
```

```python
import os
from vapi import Vapi

client = Vapi(token=os.getenv("VAPI_API_KEY"))
client.calls.create(
    transport={"type": "web"},
    squad={
        "members": [
            {"assistant": {"name": "English Support", "model": {"provider": "openai", "model": "gpt-4o", "messages": [{"role": "system", "content": "English support. Direct, friendly, professional."}]}, "voice": {"provider": "azure", "voiceId": "en-US-AriaNeural"}, "first_message": "Hello! How can I help you today?", "first_message_mode": "assistant-speaks-first"}},
            {"assistant": {"name": "Soporte Español", "model": {"provider": "openai", "model": "gpt-4o", "messages": [{"role": "system", "content": "Soporte en español. Cálido y respetuoso; usa 'usted' inicialmente."}]}, "voice": {"provider": "azure", "voiceId": "es-ES-ElviraNeural"}}},
            {"assistant": {"name": "Support Français", "model": {"provider": "openai", "model": "gpt-4o", "messages": [{"role": "system", "content": "Support français. Poli, courtois et formel."}]}, "voice": {"provider": "azure", "voiceId": "fr-FR-DeniseNeural"}}},
        ]
    },
)
```

```bash
curl -X POST "https://api.vapi.ai/call/web" \
  -H "Authorization: Bearer $VAPI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "squad": {
      "members": [
        { "assistant": { "name": "English Support", "model": {"provider": "openai", "model": "gpt-4o", "messages": [{"role": "system", "content": "English support. Direct, friendly, professional."}] }, "voice": {"provider": "azure", "voiceId": "en-US-AriaNeural"}, "firstMessage": "Hello! How can I help you today?", "firstMessageMode": "assistant-speaks-first" } },
        { "assistant": { "name": "Soporte Español", "model": {"provider": "openai", "model": "gpt-4o", "messages": [{"role": "system", "content": "Soporte en español. Cálido y respetuoso; usa 'usted' inicialmente."}] }, "voice": {"provider": "azure", "voiceId": "es-ES-ElviraNeural" } } },
        { "assistant": { "name": "Support Français", "model": {"provider": "openai", "model": "gpt-4o", "messages": [{"role": "system", "content": "Support français. Poli, courtois et formel."}] }, "voice": {"provider": "azure", "voiceId": "fr-FR-DeniseNeural" } } }
      ]
    }
  }'
```

## 4. Test

Create a phone number for the Squad and test each language path.

## Next steps

* **Assistant alternative**: [Multilingual agent](/assistants/examples/multilingual-agent)