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

# Teams of AI agents

> Group several AI agents into a team so one answers first and hands the conversation to the specialist who should take it.

A team is a group of **AI agents** that share a channel. One of them answers first, and when the
customer's need falls outside its role it transfers the conversation to a teammate — without the
customer having to repeat themselves.

<Note>
  Teams here are teams of AI agents, not queues of people. There is no rota, no round-robin, and no
  human assignment. Routing between members is decided by the AI itself, based on what each agent
  says it handles.
</Note>

<Frame caption="The Teams list">
  <img src="https://mintcdn.com/haconsultancy/8jQZZfLAZM_xjJe7/images/ai-agents/teams.png?fit=max&auto=format&n=8jQZZfLAZM_xjJe7&q=85&s=665f63be4ff0167359bd61dec94c005a" alt="The Teams list showing teams with their member counts" width="2880" height="1800" data-path="images/ai-agents/teams.png" />
</Frame>

## Why build one

One enormous prompt covering sales, billing and technical support tends to do all three badly.
Three focused agents each do one thing well. A team lets you keep them separate while the customer
experiences a single conversation, as the empty state puts it:

> Group agents into a team so a customer can be handed off between them without losing context.

## Create a team

**AI → Teams**, then **+ New team**. The wizard has three steps.

<Steps>
  <Step title="Basics">
    "A team lets several specialist agents serve one channel. One agent answers first and hands the
    conversation to a teammate when the topic fits them better."

    Give the team a **Name** (required) — for example `Support Squad` — and an optional
    **Description**.
  </Step>

  <Step title="Members">
    "Pick the specialists on this team, then choose who answers first. Teammates route by each
    agent's description — a missing one makes transfers unreliable."

    Click an agent to add it. Use the star pill to set which one **Answers first** — the first
    agent you pick becomes the entry agent by default, and you can change it.

    An agent with no description raises a warning here — "Teammates route by this description. Add
    one line about what this agent handles." Fill in the inline box that appears with it, something
    like `Refunds, charge disputes, invoices`. It's saved onto that agent when you create the team.
  </Step>

  <Step title="Channel">
    Pick a channel under **Serve a channel now (optional)**, or leave it on `— not yet —` and
    connect one later from the team page.

    Tick **Tell the customer when the conversation is handed over** if you want a line sent before
    each transfer. The default message is `Connecting you to {agent}…`, where `{agent}` is replaced
    with the receiving agent's name.
  </Step>
</Steps>

Click **Create team**.

<Warning>
  A channel can be served by only one agent or team at a time. If the channel you pick is already
  bound to an agent, the team is still created but the channel isn't connected — remove the
  existing binding first, then connect the channel from the team's **Channels** tab.
</Warning>

## How a transfer works

Each member is told who its teammates are and what they handle — that's why descriptions matter so
much. When the customer asks about something clearly outside its role, the answering agent hands
over, giving a reason.

1. The customer writes in, and the **entry agent** replies.
2. The conversation turns to a topic another member owns.
3. If **Tell the customer when the conversation is handed over** is on, the handover line goes out.
4. The teammate replies **in the same turn** — the customer doesn't wait through an extra round trip.
5. A pill appears in the inbox timeline: `⇄ Sales transferred to Billing — "customer asked about an invoice"`.

Guardrails keep this sane:

* Agents are told not to transfer back to the teammate who just transferred to them.
* Only enabled agents on an enabled team can receive transfers.
* After a couple of hops in one turn the conversation pauses for a human instead of bouncing again,
  so a badly described team can't ping-pong a customer.

<Tip>
  Write each member's description as the list of topics it owns, not as a personality. "Refunds,
  charge disputes, invoices" routes well. "A friendly and helpful billing expert" does not.
</Tip>

## Managing a team

The team page has five tabs.

<AccordionGroup>
  <Accordion title="Overview">
    A diagram of the routing — the connected channel, then the agent that **Answers first**, then
    its teammates. Underneath sit health warnings with a **Fix** link on each, covering the ways a
    team quietly stops working: no channel connected, the entry agent disabled, members with no
    description, or the team itself switched off.

    A strip shows how many transfers happened in the last 7 days and which member received the most.
  </Accordion>

  <Accordion title="Members">
    "The starred member answers first on connected channels. Teammates route by each agent's
    description, so keep them short and specific."

    Add a member from the dropdown, remove one with the button on its row, or click the star to
    change who answers first. Changes here save immediately — there's no Save button.

    You can't remove the entry agent directly: "Pick another member to answer first before removing
    this one."
  </Accordion>

  <Accordion title="Channels">
    Connect and disconnect channels. Only channels that aren't already served appear in the
    dropdown. With no channel connected, the team "only replies where it is connected" — that is,
    nowhere.
  </Accordion>

  <Accordion title="Activity">
    Every transfer, with **When**, **Transfer** (`From → To`) and **Reason given by the AI**. This
    is the fastest way to find out that your billing agent is picking up shipping questions, and
    which description needs tightening.
  </Accordion>

  <Accordion title="Settings">
    **Name**, **Description**, the **Team is active** checkbox, and the handover message. Unlike
    the other tabs, this one has a Save bar.

    Unticking **Team is active** stops members transferring to each other; connected channels are
    then answered by the entry agent alone.
  </Accordion>
</AccordionGroup>

## Rules worth knowing

* **An agent can belong to only one team.** Adding it to a second one is refused with "An agent is
  already a member of another team."
* **A channel can be served by one agent or one team**, never both.
* **A team connects through its entry agent.** Change who answers first and the channel follows
  automatically.
* **Deleting a team** removes the channel connections it created; bindings you made yourself on
  individual agents survive. The confirmation spells this out.

## Next steps

<CardGroup cols={2}>
  <Card title="Bind agents to channels" icon="plug" href="/ai-agents/overview">
    How bindings decide which agent answers where.
  </Card>

  <Card title="Behavior and handoff" icon="user-check" href="/ai-agents/behavior-and-handoff">
    Handing off to a person rather than another agent.
  </Card>
</CardGroup>
