Real-Time Customer Queue Management
Visitors join the queue and see their position live; representatives accept with a single click when ready. No page refresh, real-time via WebSocket.
- 1AKAyşe K.ayse@ornek.comAccept
- 2MDMert D.+90 532 •• •• 14Accept
- 3SBSelin B.selin@ornek.comAccept
- 4EYEmre Y.+90 505 •• •• 77Accept
Managing multiple visitors simultaneously without losing them, in a fair order, is the most critical part of live support. Bitenta Queue Management does exactly that: as soon as a visitor submits a support request, they are added to the room's queue and see their live position; a new call card simultaneously appears on the representative's panel — without any page refresh. Built on Laravel Reverb (WebSocket), it works with a private channel for each room (room.{uuid}), enabling sub-second notifications. The acceptance process is executed atomically with database transactions: a visitor is assigned to only one representative, and two representatives cannot accept the same person. When one is accepted, the others' queue numbers are recalculated automatically.
From joining the queue to the call
Visitor Joins the Queue
They enter their information and submit their request; they are added to the queue and see their live position.
Instant Drop to Representative
A new call card appears on the panel; a sound notification plays (via WebSocket).
Single-Click Acceptance
The "Accept" button is clicked; an atomic assignment is made, and the WebRTC call begins.
The customer sees their position live
The moment the visitor submits their request, they see their position in line and are kept informed while waiting. As the people ahead are taken into calls, the position number shrinks automatically — without any refresh. No uncertainty; the customer stays on the page and the abandonment rate drops.
You’re in the queue
2 in line
Our agent will be with you shortly. Please don’t close the page.
What’s under the hood?
The queue is built to be real-time and race-condition-safe for speed, fairness and reliability.
Real-time over WebSocket
Sub-second notifications over Laravel Reverb, with a private per-room channel (room.{uuid}). The moment a visitor joins the queue, they appear in the agent’s panel — without a page refresh.
Race-condition-safe acceptance
Acceptance is atomic via a database transaction: a visitor is assigned to a single agent only while still “waiting”. Two agents can’t take the same person, and no double connection occurs.
Automatic queue numbering
When a visitor is taken into a call, the queue numbers of the others waiting are recalculated instantly by arrival order; everyone sees their current position.
Multiple agents & rooms
Several agents watch the same queue; the first available one accepts. For each department you can set up a separate room, a separate queue and a separate embed code.
What you gain with queue management
Live Queue Number
Visitors see their live queue position in real-time; it updates automatically when someone is accepted.
WebSocket Real-Time
Laravel Reverb private channel (room.{uuid}) enables sub-second notifications; no refresh needed.
Race-Condition Safe Acceptance
Atomic DB transaction: two representatives cannot accept the same visitor, preventing double connections.
Multiple Representatives
Multiple representatives share the same queue; the first available one accepts the visitor.
Multiple Rooms / Departments
Separate queues, representatives, and embed codes for each department.
Availability Status
Representative status: Online / Busy / Offline; routing is done according to status.
Auto-Accept
When enabled and the representative is online, visitors connect directly to the call without waiting.
Waiting Count
The number of waiting and active visitors in each room is displayed live on the panel.
Frequently asked questions
Does the queue work in real-time, or do I need to refresh the page?
It works in real-time; no refresh is needed. As soon as a visitor joins the queue, the card drops onto the representative's panel. Built on Laravel Reverb (WebSocket), it broadcasts instantly via a private channel (room.{uuid}) for each room.
What happens if two representatives accept the same visitor at the same time?
It doesn't happen. The acceptance process is executed atomically with database transactions: if the visitor is still in the 'waiting' state, they are assigned to only one representative. The second representative's acceptance is safely rejected — no double connections or conflicts occur.
What happens to the queue numbers when a customer is accepted?
They are updated automatically. When a visitor is taken into a call, the queue numbers of the other waiting visitors are recalculated instantly (according to their arrival order); everyone sees their current position.
How many representatives can handle the same queue?
Multiple representatives can share the same room's queue; the first available one accepts the incoming visitor. The number of concurrent representatives is determined by your plan (e.g., up to 50 in Professional).
Can I set up separate queues for different departments?
Yes. You create separate rooms for each department/topic; each room has its own queue, representatives, and embed code. Representatives only see the queue of the rooms they are assigned to.
What is auto-accept?
When the representative is 'Online' and auto-accept is enabled, incoming visitors connect directly to the call without waiting — the manual 'Accept' step is skipped. Ideal for busy teams that require fast responses.
What happens when the representative is not available?
The representative sets their status to Online / Busy / Offline. When offline, the visitor is shown the room's offline message; when busy, new calls are not routed. If there are no online representatives, the visitor is informed.