Why our dialer lives in a browser tab.
No desk phones, no installs, no phone app to patch. One tab per agent, one wallboard for the floor, and a plain account of what a browser can't do.
Lede
A call center used to start with hardware. A phone on every desk, a closet of equipment down the hall, and one person who knew which cable went where. Adding an agent meant ordering a handset. Moving a team meant moving the handsets with it.
We started from the other end. Every call in our dialer happens inside a browser tab. The agent signs in, puts on a headset and goes available. There is nothing to install, nothing to plug into the wall and no phone system to maintain. This note explains why we built it that way, how the pieces fit, and where the edges are.
The desk phone
The desk phone was never the point. The point was the call, and everything around it: who is calling, which queue they came from, what happened last time, what the agent should do next. On a desk phone, that context lives somewhere else. In a CRM on another screen, on a sticky note, in a supervisor's head.
In a browser tab, the call and its context arrive together. When an inbound call rings, the agent sees the queue, the caller's number and the matching contact before answering. When the call ends, the wrap-up is already on screen: a disposition, notes, a callback if one is needed, and a choice of what comes next. Ready, break or offline.
The phone itself is WebRTC. The audio runs through the browser's own media stack, the same one that carries video meetings. That is what lets us skip the hardware, and it is why adding an agent is an admin task, not a purchase order. An admin creates the login, with an email address or with a workspace and username for agents who don't have a company email, assigns a queue, and sends the link.
One tab per agent
A browser holds many tabs, and agents open plenty of them. A phone should ring in exactly one place. So the dialer lets a single tab per browser own the phone. If the agent opens a second tab, it says so, "Phone active in another tab", and offers "Use here" to move the phone over. Numbers clicked in the second tab still dial, through the tab that owns the phone.
The phone also survives moving around the app. The softphone sits above the pages, so a supervisor who takes calls can go from the agent workspace to the admin console in the middle of a call without dropping it.
Tabs do close, and laptops do sleep. Every call lives in a conference on the telephony side, not in the browser, so a lost tab doesn't lose the customer. If the agent's connection disappears mid-call, the customer hears hold music and the agent's reloaded tab offers "Rejoin call". If the agent doesn't make it back in time, an inbound caller returns to the queue they came from with a higher priority, and an outbound customer hears a short apology before the call ends.
Click-to-call follows the same idea. Every phone number in the app is a link. A deep link with a number in it opens the agent workspace with the number filled in and asks the agent to confirm. And the agent can make the dialer the browser's handler for phone links, so a tel: link in any web-based CRM opens the dialer instead of an app on the laptop.
The floor, on one screen
Supervisors get a tab too. The wallboard shows every agent's state and how long they have been in it, the calls waiting in each queue, the longest wait, the service level and the calls in progress. It updates live over a single connection, so nobody refreshes anything to watch the floor change.
The wallboard has a full-screen TV mode. Owners and admins can create read-only display links for a screen on the wall: no login on the TV, and a link can be revoked at any time.
From the wallboard, a supervisor can join a live call. Listen silently, whisper to the agent without the customer hearing, or barge into the conversation. Listen and whisper come with the Growth plan; barge comes with Enterprise. Joining a call needs the supervisor's own softphone, so supervisors and admins who take or monitor calls use a seat, the same as agents.
What a browser can't do
A browser dialer doesn't replace every phone, and the most important limit is the simplest one. The dialer does not provide emergency calling. It cannot place calls to 911, 112, 999 or any other emergency number. When someone types one into the dialpad, the dialer refuses the call and shows a notice instead, and the softphone carries a standing reminder at the bottom of the dock: no emergency calling, use a mobile or a landline. Every floor that runs on the dialer needs another way to reach emergency services, and everyone on it should know what that way is.
The agent workspace is built for a desktop or laptop screen. Below a certain width it asks for a larger window rather than squeezing a phone into a small one. We don't offer a mobile app and we don't promise one. The tab also has to stay open, and ideally in front. Close the browser and the phone goes with it.
The browser itself matters. The workspace checks it before the shift starts: we support the current and previous major versions of Chrome and Edge, the current version of Firefox, and Safari 17 or later. The same check asks for microphone permission, because a phone without a microphone is only half a phone.
Headsets and networks
In a browser, call quality comes down to two things we don't control: the headset and the network. A few habits help.
- Use a wired USB headset, or a wireless one with its own dongle. Laptop microphones pick up the whole room.
- Plug in to wired Ethernet where you can. Wi-Fi works, but crowded Wi-Fi turns into clipped words.
- Keep large downloads, backups and video streams off the network your agents share during calling hours.
- Allow voice traffic through your firewall. Browser calls send audio over UDP, and a network locked down to web browsing can struggle to carry it.
- Run the connection test in the workspace before the shift. It measures round-trip time, jitter and packet loss, and says whether the line will hold a call.
None of this is new to anyone who has run a VoIP floor. What is new is that it's the whole list. There is no handset to provision and no desktop app to update. The software is current every time the tab loads.
That's the bet. A call center is a room of people and a queue of calls. The rest should fit in a browser tab.