Work

Case study

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.

Related writing

How to Integrate Convoso with Zoom Contact Center