You want a contact center where an AI agent answers first, qualifies and verifies the caller, and — when the call needs a person — drops that caller into the same skill queue a human agent is already working. Not a bot bolted onto a legacy ACD, but one queue, one routing brain, one wallboard, with AI and human agents as interchangeable resources. That is what you build here. TeleQuick 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 — on top of an Avaya-shaped ACD (skills, queues, VDN vectors) that treats an AI voice agent and a human on a softphone as two ways of servicing the same queued call. There is nothing to scaffold: sign in and the surface is working. This page walks 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 additionally get the operations wallboards and drill-downs. The admin area (flow builder, skills, trunks, numbers, telephony tools) is limited to 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 ever 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 and can hand off to the human queue with the same accept signal a human uses.

Supervisor tools

A live team grid with monitor / whisper / barge to coach or rescue a call mid-flight.

Live wallboards

Per-skill queue depth, service level, ASA/AHT, occupancy, agent state — plus 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 is resource-agnostic.
  • A VDN (vector directory number) maps an inbound DID to a routing program and a default skill.
  • A vector is your IVR program — an ordered list of steps (announcement, collect_digits, queue_to_skill, check_skill, route_to_vdn, goto_step, busy, disconnect) that decides which skill queue a call lands in.
  • A skill queue holds callers waiting for a matching resource. A picker chooses which agent gets the next call using 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 just resources against a skill. When an AI agent decides a call needs a person, it calls its route_to_skill tool, which enqueues the caller into a human skill queue via the control-plane ACD endpoint (POST /api/acd/queue). A human agent accepts the offer through the matching accept endpoint (POST /api/acd/accept) — and that is the same accept signal the ACD uses to hand any queued call to any agent. Nothing about the queue knows or cares whether the call was answered by AI first; the caller keeps one call_sid end to end.
The routing data model, picker, and queue/accept endpoints are shipped. A warm handoff — carrying the AI’s collected context (intent, verification result, notes) into the human’s screen pop — is the product thesis for regulated verticals: routing and accept are shipped, and 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 and register the DIDs callers dial. Every workspace gets its own SIP and WebRTC endpoints, provisioned automatically at signup: <workspace-id>.sip.telequick.dev and <workspace-id>.webrtc.telequick.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 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 right queue. Map each skill to a hotline so 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 it answers first. Give the agent a route_to_skill telephony tool and an allowlist of skills it may escalate to; when the model calls it, the caller is enqueued for a human on that skill. Build the agent itself in Building voice agents, and wire the tool in Tool calling.
4

Put human agents in the queue

Human agents work the queue 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. Either way they accept queued offers with the same signal, so 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, and give team leads the Supervisor grid. Both are covered below and in Dashboards.

Sign in as an agent

1

Open the sign-in page

Go to your workspace console (agent.telequick.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 is shown, then press Sign in.
The console won’t 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 tells you whether you’re in rotation.
1

Go Ready

If you’re 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 alongside you and how many callers are waiting.
2

Check your queue and stats

The Ready surface shows live tenant-wide pressure — In queue (all skills), Longest wait, and Service level — plus 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 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 showing the Call ID and a countdown. Press Confirm to take it or Decline to send it back to queue.
Letting the timer run out counts as a missed offer (RONA). Two missed offers in a row moves you out of rotation until you go Ready again.
2

Read the caller context and screen pop

Once connected, the call ribbon shows LIVE, the Call ID, the Trunk, and the Dialed number, with a running 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. When the call was AI-handled first, this is where the qualification context lands.
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 aren’t relevant.
Live Assist depends on the tenant’s ASR / LLM keys being configured; without them the desktop still works, just without the streamed suggestions.
4

Control the call

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

After-call wrap-up

Ending a call opens the wrap-up screen with your ACW elapsed timer running.
1

Review the AI-drafted summary

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

Pick a wrap-up (disposition) code — required

Choose one code from the list; you can’t save without a disposition.
If no codes appear they haven’t been 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 fire a short survey, and set a Follow-up time if the outcome needs one. Press Save & Ready to go back into rotation, or Save & go Aux to save and step out.

Supervisor tools

The Supervisor surface is where team leads watch a live agent grid and step into calls mid-flight — 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 live team grid is driven by the same presence feed as the wallboard, and agents can raise a hand via the Supervisor button on the active call. The monitor / whisper / barge audio controls are being surfaced in the console, and the Supervisor screen calls out its readiness state when you open it. In the meantime, use the Wallboard to watch team state live and 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 — each compared against the skill’s target and tinted green/amber/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, and 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’s a chrome-free, always-dark, oversized display with a live clock, the same aggregates, and skill cards that auto-rotate so a long skill list cycles without anyone clicking. It ignores your personal theme so 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, with ribbon width proportional to call volume. Click any bar to focus the chart on flows touching that node — use it to spot a hotline that funnels everything into one skill, or a skill that ends up with too many transferred dispositions. Switch the window and press CSV to export exactly the flows currently visible.

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.