@@ -34,7 +34,65 @@ Replace visual flows with a Squad: a Router assistant classifies the inquiry and
3434- Router → Leasing for leasing/rent/general
3535- Dynamic transfer tool for human dispatch
3636
37- ## 3. Test
37+ ## 3. Implement
38+
39+ <Tabs >
40+ <Tab title = " TypeScript (Server SDK)" >
41+ ``` typescript
42+ import { VapiClient } from " @vapi-ai/server-sdk" ;
43+ const vapi = new VapiClient ({ token: process .env .VAPI_API_KEY ! });
44+
45+ await vapi .calls .create ({
46+ transport: { type: " web" },
47+ squad: {
48+ members: [
49+ { assistant: { name: " Router" , model: { provider: " openai" , model: " gpt-4o" , messages: [{ role: " system" , content: " Classify tenant inquiries: emergency, maintenance, leasing, rent, general. Transfer accordingly." }] }, firstMessage: " Thanks for calling. How can I help?" , firstMessageMode: " assistant-speaks-first" } },
50+ { assistant: { name: " Maintenance" , model: { provider: " openai" , model: " gpt-4o" , messages: [{ role: " system" , content: " Maintenance specialist. Collect details and prioritize emergencies." }] } } },
51+ { assistant: { name: " Leasing" , model: { provider: " openai" , model: " gpt-4o" , messages: [{ role: " system" , content: " Leasing specialist. Answer leasing and rent questions." }] } } }
52+ ],
53+ },
54+ });
55+ ```
56+ </Tab >
57+
58+ <Tab title = " Python (Server SDK)" >
59+ ``` python
60+ import os
61+ from vapi import Vapi
62+
63+ client = Vapi(token = os.getenv(" VAPI_API_KEY" ))
64+ client.calls.create(
65+ transport = {" type" : " web" },
66+ squad = {
67+ " members" : [
68+ {" assistant" : {" name" : " Router" , " model" : {" provider" : " openai" , " model" : " gpt-4o" , " messages" : [{" role" : " system" , " content" : " Classify tenant inquiries: emergency, maintenance, leasing, rent, general. Transfer accordingly." }]}, " first_message" : " Thanks for calling. How can I help?" , " first_message_mode" : " assistant-speaks-first" }},
69+ {" assistant" : {" name" : " Maintenance" , " model" : {" provider" : " openai" , " model" : " gpt-4o" , " messages" : [{" role" : " system" , " content" : " Maintenance specialist. Collect details and prioritize emergencies." }]}}},
70+ {" assistant" : {" name" : " Leasing" , " model" : {" provider" : " openai" , " model" : " gpt-4o" , " messages" : [{" role" : " system" , " content" : " Leasing specialist. Answer leasing and rent questions." }]}}},
71+ ]
72+ },
73+ )
74+ ```
75+ </Tab >
76+
77+ <Tab title = " cURL (web)" >
78+ ``` bash
79+ curl -X POST " https://api.vapi.ai/call/web" \
80+ -H " Authorization: Bearer $VAPI_API_KEY " \
81+ -H " Content-Type: application/json" \
82+ -d ' {
83+ "squad": {
84+ "members": [
85+ { "assistant": { "name": "Router", "model": {"provider": "openai", "model": "gpt-4o", "messages": [{"role": "system", "content": "Classify tenant inquiries: emergency, maintenance, leasing, rent, general. Transfer accordingly."}] }, "firstMessage": "Thanks for calling. How can I help?", "firstMessageMode": "assistant-speaks-first" } },
86+ { "assistant": { "name": "Maintenance", "model": {"provider": "openai", "model": "gpt-4o", "messages": [{"role": "system", "content": "Maintenance specialist. Collect details and prioritize emergencies."}] } } },
87+ { "assistant": { "name": "Leasing", "model": {"provider": "openai", "model": "gpt-4o", "messages": [{"role": "system", "content": "Leasing specialist. Answer leasing and rent questions."}] } } }
88+ ]
89+ }
90+ }'
91+ ```
92+ </Tab >
93+ </Tabs >
94+
95+ ## 4. Test
3896
3997Assign the Squad to a phone number and test each path.
4098
0 commit comments