> ## Documentation Index
> Fetch the complete documentation index at: https://docs.featherhq.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Squads

> Squads let you route a single live call across multiple specialized voice agents.

A squad is a voice-only routing layer for multi-agent experiences. One entrypoint agent starts the conversation, then transfer rules determine when the call should move to a different specialist.

## When to Use a Squad

Use a squad when one conversation may need multiple specialists, such as:

* Front desk to billing to scheduling
* Qualification to closer
* General support to product-specific experts

If one agent can handle the full conversation alone, keep the design simpler and skip squads.

## Squad Model

* **Entrypoint agent**: the first voice agent that answers the conversation
* **Transfer rules**: routing rules that define which agent can hand off to which other agent

Only call agents belong in squads.

## Create a Squad

```bash theme={"system"}
curl -X POST "https://prod.featherhq.com/api/v1/squads" \
  -H "X-API-Key: $FEATHER_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Patient access squad",
    "description": "Routes calls between front desk, billing, and scheduling",
    "entrypointAgentId": "ENTRYPOINT_CALL_AGENT_ID"
  }'
```

## Add a Transfer Rule

```bash theme={"system"}
curl -X POST "https://prod.featherhq.com/api/v1/squads/SQUAD_ID/transfer-rules" \
  -H "X-API-Key: $FEATHER_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "fromAgentId": "ENTRYPOINT_CALL_AGENT_ID",
    "toAgentId": "SCHEDULING_AGENT_ID",
    "allowManualTrigger": true,
    "toolDescription": "Transfer the call to the scheduling specialist when the caller is ready to book.",
    "variables": [
      {
        "name": "appointmentType",
        "description": "Requested appointment type",
        "required": false
      }
    ],
    "speakBeforeTransfer": "I am connecting you to our scheduling specialist now."
  }'
```

## Best Practices

* Give each squad member a distinct job.
* Keep transfer descriptions short and operational.
* Pass only the variables the receiving agent needs.
* Start with a small routing graph before building a large specialist network.

## Related Concepts

<CardGroup cols={2}>
  <Card title="Phone Numbers" icon="phone" href="/documentation/core-concepts/phone-numbers">
    Use a squad as the inbound destination for a phone number.
  </Card>

  <Card title="Agents" icon="robot" href="/documentation/core-concepts/agents">
    Design specialized voice agents for each handoff.
  </Card>

  <Card title="Squad API" icon="code" href="/api-reference/squad/create-a-new-squad">
    Manage squads and transfer rules.
  </Card>

  <Card title="Dispatch Squad" icon="code" href="/api-reference/squad/dispatch-squad">
    Launch a routed conversation directly.
  </Card>
</CardGroup>
