Build a full contact center where AI and human agents share one skill queue: ACD, agent desktop, IVR flow builder, supervisor, and live wallboards.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.