Zoom Wallboard Inside the Dialer
Real-time Zoom Contact Center availability inside the dialer — no second license, no tab-switching
PythonFastAPIGoogle Cloud RunDockerHTMLCSSJavaScript
Result: Dialer agents see which Zoom agents are free for a warm transfer without leaving the dialer; a companion Chrome extension picks the transfer target in one click.
Context
The contact center I work in runs two platforms at once: a predictive dialer for outbound calls and Zoom Contact Center for warm transfers.
The manual problem
When an agent had a live prospect ready to transfer, they had to switch to Zoom, find someone available, switch back and attempt the transfer — seconds of friction in a handoff that’s already under time pressure. Showing Zoom availability inside the dialer couldn’t mean buying every dialer agent a second license.
What I built
- Proof first. Before writing real code, I loaded a public web page inside the dialer’s embedded-website feature to confirm the iframe route worked on a closed platform.
- The wallboard. A FastAPI backend polls Zoom Contact Center’s availability API every few seconds; a static HTML page shows color-coded agent cards that match Zoom’s own look. It runs on Google Cloud Run and loads inside the dialer.
- Auth inside an iframe. Headers can’t be set on a cross-origin embed, so requests authenticate with a token in the URL, validated server-side on every request.
- Per-campaign views. Each campaign gets its own URL from one JSON config file, set once by an operations manager — no code change to add a campaign.
- One-click transfers. A companion Chrome extension lets an agent click a “Ready” card to select that person in the dialer’s transfer dropdown.
Result
Transfer availability is visible where agents already work, at no per-seat license cost beyond one small backend container. Per-agent filtering is documented and deferred: the dialer’s variable-substitution field arrived empty inside the iframe, which I confirmed from live request logs rather than documentation.
Tech notes
Python, FastAPI, Docker, Google Cloud Run, plain HTML/CSS; the transfer helper is a Manifest V3 Chrome extension. Deployed end to end in an afternoon. The code is internal to the contact center.