E‑commerce order management squad

Separate assistants for orders, returns, and VIP concierge with intelligent transfers

Overview

Use Squads to split responsibilities: an Orders assistant handles tracking/status, a Returns assistant manages eligibility and labels, and a VIP assistant provides white‑glove support.

Squad Capabilities:

  • Order lookup and status updates
  • Return eligibility and label creation
  • VIP routing and concierge service
  • Context‑preserving warm transfers

1. Define members

Example squad payload
1{
2 "members": [
3 { "assistant": { "name": "Orders", "model": {"provider": "openai", "model": "gpt-4o", "messages": [{"role": "system", "content": "Orders specialist. Handle tracking and delivery questions."}] }, "toolIds": ["ORDER_LOOKUP_ID"], "firstMessage": "Hello, how can I help with your order?", "firstMessageMode": "assistant-speaks-first" } },
4 { "assistant": { "name": "Returns", "model": {"provider": "openai", "model": "gpt-4o", "messages": [{"role": "system", "content": "Returns specialist. Check eligibility and generate labels."}] }, "toolIds": ["RETURNS_TOOL_ID"] } },
5 { "assistant": { "name": "VIP", "model": {"provider": "openai", "model": "gpt-4o", "messages": [{"role": "system", "content": "VIP concierge. Prioritize premium customers and coordinate resolutions."}] } } }
6 ]
7}

2. Configure transfer rules

  • Orders → Returns for return requests
  • Any → VIP for high‑value customers or sentiment issues
  • Warm-transfer summary for human agents if needed

3. Implement

1import { VapiClient } from "@vapi-ai/server-sdk";
2const vapi = new VapiClient({ token: process.env.VAPI_API_KEY! });
3
4await vapi.calls.create({
5 transport: { type: "web" },
6 squad: {
7 members: [
8 { assistant: { name: "Orders", model: { provider: "openai", model: "gpt-4o", messages: [{ role: "system", content: "Orders specialist. Handle tracking and delivery questions." }] }, firstMessage: "Hello, how can I help with your order?", firstMessageMode: "assistant-speaks-first" } },
9 { assistant: { name: "Returns", model: { provider: "openai", model: "gpt-4o", messages: [{ role: "system", content: "Returns specialist. Check eligibility and generate labels." }] } } },
10 { assistant: { name: "VIP", model: { provider: "openai", model: "gpt-4o", messages: [{ role: "system", content: "VIP concierge. Prioritize premium customers and coordinate resolutions." }] } } }
11 ],
12 },
13});

4. Test and validate

Attach a phone number to the Squad and simulate order, return, and VIP scenarios.

Next steps