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

# Automatic dialler

> Call a list and connect whoever answers to a free agent, at a pace that matches how many are actually free.

export const Unverified = ({what, detail}) => <Warning>
    <strong>Not yet verified on a live call.</strong> {what} is built and covered
    by tests, but {detail} FireTone's engineering tracker records this as an open
    check rather than a passing one. Treat what follows as the design, and expect
    rough edges the first time you run it.
  </Warning>;

A dialler campaign exists to keep agents talking. Everything about it follows
from that: it paces against free agents, and it counts the times it failed to
find one.

<img src="https://mintlify.s3.us-west-1.amazonaws.com/firetone/images/campaigns-dialer-list.png" alt="Automatic dialler" />

## The agent group

Which team's agents take these calls. Left on the whole organisation, every
human agent counts; pick a team and only its members do.

<Warning>
  **An empty group dials nothing.** The pacer opens lines against free agents,
  finds none, and stops — correctly, and in silence. The editor shows how many
  agents the group has and how many are free right now, because this is the
  single most likely reason a campaign appears to do nothing.
</Warning>

Use **Manage agents** to change who is in the team. Note what else that moves:
a team is also a budget and part of what a login can see, so moving somebody
between teams moves their call costs and their colleagues' visibility too.

## Pacing

<CardGroup cols={2}>
  <Card title="Balanced">
    One line per free agent. Nobody is ever abandoned. Agents wait between calls.
  </Card>

  <Card title="Aggressive">
    Dials ahead on the answer rate it has measured, so an agent finishing a call
    finds the next one already connected.
  </Card>
</CardGroup>

Aggressive pacing is governed by the **abandon cap**: the percentage of
*answered* calls that may reach no agent. As abandonment approaches the cap, the
dialler gives its aggression back in proportion — so a campaign settles just
under its limit by itself rather than oscillating between flooding and stopping.

<Note>
  The cap is a compliance setting, not a tuning knob. Abandonment is measured
  against calls a person **answered**, which is what a regulator measures and
  what a customer experiences — not against everything dialled, which would
  flatter a campaign against a list that rarely answers.
</Note>

A cold campaign dials one-to-one until it has enough calls to mean anything.
Three calls and one answer is not a 33% answer rate; it is no measurement at
all.

## Maximum lines

A hard ceiling applied after pacing, so a measurement that is right but unusable
cannot flood the switch.

## Live assist

A dialler campaign can have an AI listen and write suggestions to the agent's
screen. See [live assist](/tenant/ai/live-assist) — it costs per minute of every
answered call and discloses the conversation to a provider.

<Unverified what="The answered-call path — the agent bridge, the abandon counter and the screen pop" detail="no dialler campaign has yet connected a call to an agent on this installation." />
