# Agent Queue Operations (/docs/guides/run-your-team/agent-queue-campaigns)



Agent Queue campaigns put your licensed agents on the phone while careCycle
handles dialing, pacing, routing, follow-up, and reporting. Use them when a
conversation needs a person but your team still needs a managed queue and a
repeatable workflow.

Create an Agent Queue Campaign [#create-an-agent-queue-campaign]

From **Campaigns > New Campaign**, enter a name, choose **Agent Queue**, then
choose **Inbound** or **Outbound**. That direction cannot change after creation.
The campaign opens as a draft in **Configuration**. Inbound queues prioritize
routing, fallback, and incoming numbers; outbound queues also prioritize
enrollment, calling numbers, dialing, and Pulse. Use
[Campaign Types and Configuration](/docs/guides/campaign-toolkit/campaigns)
for the full setup walkthrough. Publish the reviewed Pulse draft before
activating proactive outreach.

During operating hours, select a ready team destination. After hours, incoming
calls use unavailable handling in ordinary new setup. New AI selection is marked
Coming soon; existing saved AI handling can remain. An incoming AI policy
does not convert Pulse calls to AI calls. Agent Queue configuration does
not expose after-hours dialing or concurrency controls.

Routing and Destination Ownership [#routing-and-destination-ownership]

The attached softphone routing group supplies the campaign's agents. It
owns the agents, routing strategy, ring timers, agent screen, handoff settings,
inbound and outbound callback offers, and inbound unavailable messages. The campaign does
not keep separate copies of those settings.

Destinations can be shared. Editing one changes every campaign and
Receptionist behavior that references it. See [Routing
Groups](/docs/guides/campaign-toolkit/routing) before
changing a shared pool.

Only agents who are online, Available, active in agent routing, on
the air for this campaign, and eligible under any state-licensing filter enter
the routing sequence. Attributed inbound and outbound calls also apply campaign
source restrictions. Priority overrides can put the customer's assigned agent
or most recent softphone agent first. The remaining agents are ordered by one
of these strategies:

| Strategy     | Order                                                                                          |
| ------------ | ---------------------------------------------------------------------------------------------- |
| **Linear**   | Configured priority, highest first                                                             |
| **Balanced** | The agent who has gone longest without a routed call first                                     |
| **Weighted** | A new weighted random order, favoring agents with larger weights                               |
| **Grouped**  | Active groups in priority order, with Linear, Balanced, or Weighted ordering inside each group |

Agents always ring one at a time in the resulting sequence. Balanced does not
ring everyone simultaneously.

**Ring duration per agent** accepts 5 through 30 whole seconds. **Max wait
time** accepts 10 through 120 whole seconds. The overall wait limit can stop
the sequence before every eligible agent is tried. If no eligible agent exists,
fallback starts immediately.

When an agent has Auto Answer enabled, or your organization enforces it, the
softphone joins the routed call without waiting for the agent to select
**Answer** or **Claim**. The ring timers do not delay an auto-answered call.
Only Available agents receive a route. See [Agent Availability and
Auto-Answer](/docs/guides/run-your-team/agent-availability-and-auto-answer).

Configure Ratio Dialing [#configure-ratio-dialing]

Open **Campaigns**, select your Agent Queue campaign, and go to **Configuration >
Dialing > Dialing ratio**. Choose **Dials per ready agent**, then select
**Save** in the campaign Configuration header.

The control configures proactive Pulse calls. The ratio belongs to the campaign;
configure it here rather than in the shared routing group.

| Dials per ready agent | Behavior                                                           |
| --------------------- | ------------------------------------------------------------------ |
| **1.0x**              | Default. One dial per ready agent, preserving the original pacing. |
| **1.5x**              | Allows up to 1.5 outbound lines per ready agent.                   |
| **2.0x**              | Allows up to 2 outbound lines per ready agent.                     |
| **2.5x**              | Allows up to 2.5 outbound lines per ready agent.                   |
| **3.0x**              | Maximum. Allows up to 3 outbound lines per ready agent.            |

Higher ratios compensate for unanswered calls so agents spend less time
waiting for a conversation. They increase the number of customer calls that
can be in progress, not the number of conversations an agent handles at once.

How Capacity Is Calculated [#how-capacity-is-calculated]

careCycle multiplies the number of ready agents eligible for the customer by
the current effective ratio, then rounds down to a whole number of lines.
For example, five ready agents at **1.5x** allow up to seven lines before other
limits apply. At **2.0x**, those five agents allow up to ten.

Calls already using shared-pool capacity and any configured campaign
concurrency limit still constrain new dials. Campaigns sharing a destination
also share its pool capacity. **Zero ready agents means zero new dials**, even
at **3.0x**. A higher ratio does not bypass availability, on-air status,
state-licensing filters, or source restrictions.

<Callout type="warn">
  Above **1.0x**, more customers may answer than agents can serve. A live-person
  call that reaches the no-agent abandonment path is recorded as **Abandoned**
  and requeued. The destination's outbound callback offer can apply; otherwise
  the customer hears careCycle's apology message before hangup. See
  [Outbound No-Agent Callback Offer](#outbound-no-agent-callback-offer).
</Callout>

Automatic Pacing Governor [#automatic-pacing-governor]

The configured ratio is the maximum you request. careCycle can temporarily
use a lower **effective ratio** based on the measured abandon rate: abandoned
live-person calls divided by live-person answers, rather than all dials.

The governor uses a rolling **30-minute** window shared across your
organization's Agent Queue dial-first campaigns. It begins adjusting once
that window contains at least **20 answered calls** or **3 abandoned calls**:

* At or below &#x2A;*2.5%**, the configured ratio applies.
* Above &#x2A;*2.5%** and below &#x2A;*3.0%**, the effective ratio progressively decreases.
* At &#x2A;*3.0%** or higher, the effective ratio returns to **1.0x**.

The ratio recovers automatically as the rate falls, returning to the
configured value at or below &#x2A;*2.5%**. Your saved setting does not change.

After you save a ratio above **1.0x**, the **Dialing ratio** section displays
the measured rate and abandoned/answered counts, refreshing every **30
seconds**. When it shows **Governor active**, it also displays the effective
ratio alongside your configured ratio. Activity in another Agent Queue
campaign can affect this status because the measurement window is shared.

Ratio dialing keeps the dial-first AMD and routing flow below. Incoming
calls and [requested callbacks](#requested-callbacks-accept-first) do not use
this over-dialing flow: requested callbacks still reserve an agent before
dialing the customer.

Pulse Calls Are Dial-First [#pulse-calls-are-dial-first]

Normal Agent Queue Pulse calls always use dial-first answering-machine
detection (AMD), including follow-up calls from an inbound desk campaign:

<Steps>
  <Step>
    careCycle waits for agent-pool capacity under the effective dialing ratio and
    any campaign concurrency limit, selects a number from the campaign's own
    softphone number pool, and dials the customer.
  </Step>

  <Step>
    AMD screens the answered call. A live-person result rings agents. If the
    classifier is unavailable, times out, or is uncertain, careCycle fails open and
    rings agents rather than risk dropping a real person.
  </Step>

  <Step>
    For a detected answering machine, the Pulse call step either inherits the
    campaign voicemail message, uses an attempt-specific message, or hangs up
    silently. Detection itself cannot be disabled for these calls.
  </Step>

  <Step>
    For a live person, careCycle parks the customer briefly and rings eligible
    agents sequentially. The agent who accepts joins the customer in the call
    workspace and lands on the screen configured by the destination.
  </Step>
</Steps>

If the agent joins but the phone bridge cannot be established, careCycle keeps
the customer parked, releases the failed offer, and continues through the
eligible agent sequence. The platform records the bridge failure as an
infrastructure outcome rather than attributing it to the customer. Agents do
not need to interpret provider or connection errors.

If no agent is available before the customer is dialed, the attempt waits and
is retried instead of consuming the customer's place in the cadence. If a
live-person call reaches the no-agent abandonment path, careCycle records the
abandonment and returns the customer to the queue. The destination's
**Outgoing calls** setting can offer an eligible customer a callback
before the call ends. Otherwise careCycle's system-managed no-agent message plays. Technical
setup failures can use a separate failure message.

The destination's inbound unavailable message is unrelated to answering-machine handling
on Pulse calls. Open **Pulse** to configure global and per-attempt voicemail;
a Pulse call step can inherit the campaign default,
override it, or choose silent hangup.

The agent's wrap-up
[disposition](/docs/guides/agents/wrap-up-and-dispositions) maps to an outcome
type such as Contacted, No Contact, Voicemail, Sale, No Sale, Callback, or Do
Not Call. Pulse routes the customer's next step from that outcome.

The reason for placing the call is separate from its disposition. Campaign
stage, tasks, requirements, and inquiries explain why the customer needs
contact before the call. The disposition records the result after the call.

Agent Queue Fallbacks [#agent-queue-fallbacks]

Start with one question: &#x2A;*who placed this call?**

* **The customer called your team:** use **Incoming calls**.
* **Your dialer called the customer:** use **Outgoing calls** if a person
  answers but no agent can take the call.

Find both options on the routing group under **Fallback
Handling > Human-agent call fallback**. They apply when an agent cannot
take the call. They do not change calls that connect successfully.

Incoming Calls: The Customer Calls You [#incoming-calls-the-customer-calls-you]

During business hours, careCycle tries the agents assigned to the destination.
Under **If no agent answers**, choose:

| Choice                       | What the customer experiences                                                                                                                                                                                                |
| ---------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Play unavailable message** | The customer hears your business-hours unavailable message, then the call ends.                                                                                                                                              |
| **Offer a callback first**   | An eligible customer is invited to press 1 for a callback. If a request is created, they hear a confirmation and the call ends. If they do not accept or an offer cannot be made, they hear the unavailable message instead. |

When after-hours unavailable handling is selected, careCycle skips agents and
callback offers and plays the after-hours message. Existing configured AI
answering follows its saved policy instead. See [Inbound Handling](#inbound-handling) for
message defaults and operating-hours behavior.

Examples: Calls Can Go Both Ways [#examples-calls-can-go-both-ways]

An **outbound campaign** mainly calls customers, but customers can call its
number too. An **inbound desk** mainly receives calls, but its team can also
follow up through an outbound Pulse workflow. The campaign's name or creation
mode does not decide who placed a particular call.

**Example: a customer returns a missed call.** Your dialer called Jordan this
morning. Jordan sees the number and calls it back. Jordan placed this new call,
so **Incoming calls** applies, even though the number belongs to an outbound
campaign.

**Example: your team follows up after an incoming call.** Taylor called your
inbound desk yesterday. Today, a configured Pulse follow-up calls Taylor. Your
dialer placed today's call, so **Outgoing calls** applies if Taylor answers
and no agent can connect.

**Example: a customer accepts a callback offer.** Whether the offer was made
during an incoming or outgoing call, pressing 1 creates a requested callback.
That later call follows the shared [Callback policy](#requested-callbacks-accept-first):
careCycle reserves an agent before dialing the customer.

**Voice AI transfer fallback** on the same destination applies to a different
path: a Voice AI campaign's attempt to transfer its live conversation to that
destination. Its appointment and phone-number actions are not Agent Queue
fallbacks.

Outbound No-Agent Callback Offer [#outbound-no-agent-callback-offer]

Under **Outgoing calls**, enable **Offer a callback** to let an eligible
answered customer press 1 for a callback. This has its own switch, independent
of the inbound callback option. It applies after the dialer reaches a person,
not when the customer fails to answer or AMD detects an answering machine.

If no callback is scheduled, the no-agent path plays careCycle's system-managed
no-agent message and hangs up. This fixed message says: “We're sorry, all of our
agents are currently busy. We'll call you back shortly. Goodbye.” It is not
campaign-configurable.

The campaign's outbound voicemail setting, available in **Pulse**, instead
controls what is left on an answering machine. Pulse call steps can inherit or
override that message. Neither that campaign setting nor the destination's
inbound unavailable messages change the live-person no-agent message.

The default outbound callback offer apologizes to the customer; the inbound
offer explains that agents are still helping other callers. The editor shows
the applicable scripts separately.

Which Message Can I Edit? [#which-message-can-i-edit]

Three different situations can sound like a "fallback message," but they have
different owners:

| Situation                                                                         | Message                                                        | Where to configure it                                                                                                                           |
| --------------------------------------------------------------------------------- | -------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------- |
| A customer calls your team and no agent answers, or the office is closed.         | Business-hours or after-hours **inbound unavailable message**. | Routing group > Fallback Handling > Inbound unavailable messages. Organization defaults are under Settings > Organization > Softphone Settings. |
| Your dialer reaches a person, no agent can connect, and no callback is scheduled. | careCycle's **system-managed no-agent message**.               | This message is fixed by careCycle; there is no campaign or destination editor for it.                                                          |
| Your dialer reaches an answering machine.                                         | **Outbound Pulse voicemail**.                                  | Pulse > Global voicemail and individual Call steps. A step can inherit the campaign message, use an override, or hang up silently.              |

Changing the campaign's voicemail message does not change what a live person
hears when no agent can connect. Changing an inbound unavailable message does
not change what your dialer leaves on an answering machine.

Inbound Handling [#inbound-handling]

Agent Queue campaigns can receive calls on their dedicated campaign numbers,
including callbacks to numbers used by an outbound dialer.

* During business hours, the attached destination's eligible agents ring in
  sequence.
* Outside business hours, agents do not ring. Incoming calls use the configured
  AI employee or unavailable handling. If unavailable is selected, careCycle
  speaks the after-hours unavailable message and hangs up.
* If the in-hours agent sequence is exhausted, careCycle offers the
  destination's callback IVR when it is enabled and the caller is eligible.
  If no callback is scheduled, it speaks the business-hours unavailable message
  and hangs up.

Inbound unavailable messages are text-to-speech announcements followed by
hangup. No caller message is recorded. Empty destination fields inherit the
matching message from **Settings > Organization > Softphone Settings >
Unavailable messages**, then the system default for that time window. The
business-hours default asks callers to try again shortly; the after-hours
default explains that the office is closed.

An inbound desk call is a reactive touch and does not automatically enter
Pulse. When a normal Pulse follow-up is scheduled for that customer and
campaign, careCycle links the outbound call to that exact Pulse event and uses
the dial-first flow above. The requested-callback flow below remains separate.
Open **Pulse** in Configuration or its inbound follow-up disclosure to review the sequence. The
inbound follow-up disclosure retains access to configured work; publication and enrollment
remain explicit operations.

Requested Callbacks: Accept-First [#requested-callbacks-accept-first]

An eligible inbound caller or outbound no-agent customer can press 1 to request
a callback. Configure the two entry points independently in the attached
destination's **Incoming calls** and **Outgoing calls**
sections. Both use the same callback timing policy and accept-first callback
process.

<Steps>
  <Step>
    careCycle offers the callback only for an active Agent Queue campaign during
    business hours, before the closing buffer, using the exact enabled destination
    and agent routing that handled the original call.
  </Step>

  <Step>
    The caller must have a valid callback number and customer record, must not be
    on Do Not Call, and must not already have a callback in progress for that
    campaign. No input or a different digit replays the prompt up to five times,
    with a 7-second digit wait per play.
  </Step>

  <Step>
    After the confirmation message, careCycle hangs up and waits for an eligible
    agent in the captured pool.
  </Step>

  <Step>
    Requested callback calls are the Agent Queue exception to dial-first. careCycle rings
    and reserves the browser agent first, then dials the customer only after the
    agent accepts. AMD is off for this explicitly requested callback.
  </Step>
</Steps>

If the caller does not accept or becomes ineligible, careCycle ends the original
call with the inbound unavailable message or system-managed outbound no-agent message, according to
its direction. Calling again while a callback
is pending does not create a duplicate request. If the caller reaches an agent
before callback dialing starts, the pending request is canceled.

Callback settings have these bounds and defaults:

| Setting            |           Allowed |     Default | Effect                                  |
| ------------------ | ----------------: | ----------: | --------------------------------------- |
| **Window**         | 15 to 480 minutes | 120 minutes | Maximum time the request can wait       |
| **Attempts**       |            1 to 5 |           2 | Maximum customer dial attempts          |
| **Retry delay**    |   1 to 60 minutes |  10 minutes | Delay after customer no-answer          |
| **Closing buffer** |  5 to 120 minutes |  30 minutes | Stops offers and callbacks near closing |

The window must be at least the number of attempts multiplied by the retry
delay. Actual expiry is the earlier of the configured window or the end of the
closing buffer. A customer no-answer retries after the configured delay until
the attempt limit or expiry. If agents become unavailable again after dispatch,
careCycle re-arms the request after 60 seconds, still bounded by expiry. A
request that cannot be completed in time expires without dialing again.

Managers can monitor both outbound customers waiting for Agent Queue calls and
inbound callback promises under **Calls > Queues & Callbacks**. Campaign rows
drill into the filtered Customers list, while callback reporting shows queue
age, attempts, fulfillment, and expiry risk without exposing customer contact
details on the wallboard itself.

<Callout>
  This is different from an Inquiry Callback. A requested Agent Queue callback
  connects the customer with a human from the original destination. An
  Inquiry Callback uses an AI employee and its own configurable Pulse workflow.
</Callout>

<Cards>
  <Card title="Pulse for Agent Queue Campaigns" href="/docs/guides/campaign-toolkit/pulse">
    Build the outbound cadence and route each human-selected outcome.
  </Card>

  <Card title="For Agents" href="/docs/guides/agents">
    What your team experiences on the other end of the dialer.
  </Card>

  <Card title="Source Tracking" href="/docs/guides/sources/source-tracking">
    Agent-level performance by source, for the campaigns they dial.
  </Card>

  <Card title="The Wallboard" href="/docs/guides/know-your-numbers/wallboard">
    Monitor outbound queue demand and inbound callback fulfillment.
  </Card>
</Cards>
