You want a contact center where an AI agent answers first, qualifies and verifies the caller, and then, when the call needs a person, drops that caller into the same skill queue that a human agent already works. This is not a bot bolted onto a legacy ACD. It is one queue, one routing brain, and one wallboard. AI and human agents are interchangeable resources. That is what you build here. ClutchCall Voice ships a ready-made contact-center console. Agents get a call desktop. Supervisors get live wallboards. Admins get an IVR flow builder and telephony configuration. All of it sits on top of an Avaya-shaped ACD (skills, queues, VDN vectors). The ACD treats an AI voice agent and a human on a softphone as two ways to service the same queued call. There is nothing to scaffold. Sign in, and the surface works. This page walks through the pieces and how they fit.
What each person sees depends on their role. Agents get the desktop and the Ready surface. Supervisors / team leads also get the operations wallboards and drill-downs. The admin area (flow builder, skills, trunks, numbers, telephony tools) is limited to the owner, admin, and developer roles.

What you’re building

Skill-based ACD

Numbers → VDN → IVR vector → skill queues. One picker distributes each queued call to whichever resource is free — AI or human.

IVR flow builder

A drag-and-drop vector builder: announcements, digit collection, skill queuing, and branch logic before a call reaches an agent.

Agent desktop

Go Ready. Take screen-popped inbound calls. Work the live call with an assist rail. Finish with after-call wrap-up.

AI + human in one queue

An AI agent services queued calls directly. It can hand off to the human queue with the same accept signal that a human uses.

Supervisor tools

A live team grid with monitor / whisper / barge to coach or rescue a call in progress.

Live wallboards

Per-skill queue depth, service level, ASA/AHT, occupancy, and agent state. Also a TV wallboard and a VDN routing Sankey.

How the shared queue works

The routing brain is a classic ACD, modeled on Avaya’s shape, with one twist: the queue does not know the resource type.
  • A VDN (vector directory number) maps an inbound DID to a routing program and a default skill.
  • A vector is your IVR program. It is an ordered list of steps (announcement, collect_digits, queue_to_skill, check_skill, route_to_vdn, goto_step, busy, disconnect). The vector decides which skill queue a call lands in.
  • A skill queue holds callers who wait for a matching resource. A picker chooses which agent gets the next call. It uses an Avaya-style algorithm: ead_mia (expected-agent-delay, the default), mia, ucd (round-robin), loa, lar, or manual.
An AI agent and a human agent are both resources against a skill. When an AI agent decides that a call needs a person, it calls its route_to_skill tool. The tool enqueues the caller into a human skill queue through the control-plane ACD endpoint (POST /api/acd/queue). A human agent accepts the offer through the matching accept endpoint (POST /api/acd/accept). That is the same accept signal that the ACD uses to give any queued call to any agent. The queue does not know or care whether AI answered the call first. The caller keeps one call_sid end to end.
The routing data model, picker, and queue/accept endpoints are shipped. A warm handoff carries the AI’s collected context (intent, verification result, notes) into the human’s screen pop. This is the product thesis for regulated verticals. Routing and accept are shipped. The rich context payload is assembled at your application layer. You build it. It is not a turnkey field. See AI ↔ human handoff and Handoffs.

Stand it up

1

Get calls in — trunk and numbers

Point a SIP carrier at the platform. Register the DIDs that callers dial. Every workspace gets its own SIP and WebRTC endpoints, provisioned automatically at signup: <workspace-id>.sip.clutchcall.dev and <workspace-id>.webrtc.clutchcall.dev. Bring your own carrier’s SBC and credentials, or take a managed number.Full walkthroughs: SIP trunking and Number provisioning.
2

Define skills, VDNs, and vectors

Create your skills (e.g. Billing, Retention, Tier-2). Then create a VDN per inbound line that points at a vector. Build the vector in the flow builder (Admin → Flow builder): drag in an announcement, collect account digits, branch on a check_skill condition, and queue_to_skill to land the caller in the correct queue. Map each skill to a hotline. Then the wallboard gets its KPI target bands.The ACD internals — vector step kinds, picker algorithms, VDN mapping — are covered in PBX / ACD.
3

Put AI agents in the queue

Bind an AI voice agent to a number or a skill so that it answers first. Give the agent a route_to_skill telephony tool and an allowlist of skills that it may escalate to. When the model calls the tool, the caller is enqueued for a human on that skill. Build the agent itself in Building voice agents. Wire the tool in Tool calling.
4

Put human agents in the queue

Human agents work the queue in two ways: a browser softphone (they sign in to the console and go Ready) or a real SIP deskphone / softphone registered as an agent endpoint. In both cases, they accept queued offers with the same signal. Thus the picker treats them uniformly. The desktop walkthrough is below. SIP-phone endpoints are covered in PBX / ACD.
5

Watch it live

Open the wallboard and the VDN flow to see queues fill and calls route in real time. Give team leads the Supervisor grid. All are covered below and in Dashboards.

Sign in as an agent

1

Open the sign-in page

Go to your workspace console (agent.clutchcall.dev). You land on Sign in to your queue.
2

Authenticate

Continue with Okta, Microsoft, or Google if your team uses SSO. Or sign in with your work email and password. Complete the human-check if one shows. Then press Sign in.
The console does not self-register agents. A team lead adds them under Admin → Directory.

Work the agent desktop

After sign-in you land on the Ready surface. The top bar shows your presence chip. The center panel shows whether you are in rotation.
1

Go Ready

If you are offline, the center reads “You’re offline — no calls will route to you.” Press Go Ready to enter rotation. The panel then shows how many agents are in rotation with you and how many callers wait.
2

Check your queue and stats

The Ready surface shows live tenant-wide pressure: In queue (all skills), Longest wait, and Service level. It also shows your own Skills assigned and today’s AHT, Calls, ACW avg, and RONA (missed offers). Your Last 5 calls list sits at the bottom.
3

Set an Aux status when you step away

Click your presence chip to open Set status. Pick Ready, an Aux reason (Break, Lunch, Training, plus any that your admin configured), or Sign out & go offline.

Answer a screen-popped inbound call

1

Confirm or decline the offer

When a call routes to you, the desktop flips to an Incoming call card. The card shows the Call ID and a countdown. Press Confirm to take the call. Press Decline to send it back to the queue.
If you let the timer run out, that counts as a missed offer (RONA). Two missed offers in a row move you out of rotation until you go Ready again.
2

Read the caller context and screen pop

After you connect, the call ribbon shows LIVE, the Call ID, the Trunk, and the Dialed number, with a timer. If your tenant has screen-pop rules, a pop appears with the caller’s likely intent and quick links — for example Open invoice or Refund console. If AI handled the call first, the qualification context lands here.
3

Use the Agent Assist rail (optional)

The right rail can stream next-best-action, compliance, and sentiment cards while you talk. Insert a suggested script. Drop a suggestion in as a note. Or dismiss cards that are not relevant.
Live Assist needs the tenant’s ASR / LLM keys. Without them, the desktop still works, but without the streamed suggestions.
4

Control the call

The action grid gives you Hold / Resume, Mute / Unmute, Transfer, DTMF (a keypad to send tones that the caller hears), Conference, Case, and a Supervisor request. Write Call notes as you go. They auto-save. Press End call to move into wrap-up.

After-call wrap-up

When you end a call, the wrap-up screen opens with your ACW elapsed timer in progress.
1

Review the AI-drafted summary

A summary is pre-filled from the transcript. Edit it, or press Regenerate to redraft it.
2

Pick a wrap-up (disposition) code — required

Choose one code from the list. You cannot save without a disposition.
If no codes appear, none are configured. An admin seeds them under Admin → Wrap-up codes → New code.
3

Add tags, CSAT, and a follow-up, then save

Add free-form tags. Tick Send post-call CSAT to send a short survey. Set a Follow-up time if the outcome needs one. Press Save & Ready to go back into rotation. Or press Save & go Aux to save and step out.

Supervisor tools

On the Supervisor surface, team leads watch a live agent grid and step into calls in progress: monitor (listen silently), whisper (coach only the agent), barge (join the call), and an agentic monitor mode. Access is role-gated to owner, admin, and supervisor.
The same presence feed drives the live team grid and the wallboard. Agents can raise a hand with the Supervisor button on the active call. The monitor / whisper / barge audio controls are being added to the console, and the Supervisor screen shows its readiness state when you open it. Until then, use the Wallboard to watch team state live. Use All calls / Call detail to review any specific call.

Monitor the floor live

Skill wallboard

1

Open the wallboard

Go to Operations → Wallboard. It refreshes every few seconds. The top strip aggregates Agents online / ready, In queue, Longest wait, Service level, and Calls today, colour-coded by severity.
2

Read the per-skill cards

Each skill card shows agent-state counts (ready / on call / ACW / aux), in queue, and a KPI grid: SL%, ASA, AHT, Abandon, Occupancy, and Oldest wait. The card compares each KPI against the skill’s target and tints it green, amber, or red.
A skill tagged unmapped has no hotline mapped, so it has no KPI targets. Map it under Admin → Skills to get target bands.
3

Filter, export, and drain AI handoffs

Narrow to one hotline. Switch the window between Daily / WTD / MTD. Press CSV to export the visible rows. When AI agents escalate to a human, an AI handoffs strip appears. Press Drain queue to match those queued callbacks to available agents.

TV wallboard

Open Operations → TV wallboard on a floor monitor. It is a chrome-free, always-dark, oversized display. It shows a live clock, the same aggregates, and skill cards that auto-rotate. Thus a long skill list cycles without a click. It ignores your personal theme. Thus contrast stays calibrated for projection.

VDN call-routing flow

Go to Operations → VDN flow. The three-column Sankey shows how inbound calls travel Hotline → Skill → Disposition. Ribbon width is proportional to call volume. Click any bar to focus the chart on flows that touch that node. Use this view to spot a hotline that funnels everything into one skill, or a skill that ends with too many transferred dispositions. Switch the window and press CSV to export exactly the flows that show.

Next steps

PBX / ACD

The routing internals — VDN vectors, picker algorithms, and SIP-phone agent endpoints.

AI ↔ human handoff

How a call moves from an AI agent to a person, and what the person hears.

Building voice agents

Build the AI agent that answers first and escalates into the queue.

Dashboards & reports

Wallboards, VDN flow, call detail, and the reports behind them.

Telephony overview

Trunks, numbers, and the full inbound/outbound call lifecycle.

Building agent platforms

Host many customers’ voice agents on one multi-tenant platform.