QVCCS innovation · Live monitoring

Live Call Map: every active Genesys Cloud conversation on a world map, placed with care

Where are our callers right now, and what is happening to them? Live Call Map plots every active Genesys Cloud conversation on a world map the moment it arrives, alongside live agent presence and queue health – and it is careful, and open, about how each position was worked out and how confident it is.

QVCCS Innovation teamLive Call Map user guide →

Where your callers are, live A simplified world map with rough continent shapes and a light grid. Royal-blue markers, some with pulse rings and some larger to show clusters, sit over North America, South America, Europe, Africa, India and Australia, representing active Genesys Cloud conversations placed from the caller's number. Beside the map, an Unknown column lists conversations that cannot be located, such as emails and withheld numbers, instead of placing them on the map. Positions are illustrative. QVCCS INNOVATION · LIVE MONITORING Where your callers are, live ILLUSTRATIVE ⊘ UNKNOWN Email Withheld Email Never faked onto the map
  • Did you know that Genesys Cloud analytics records the caller’s number as ani and the dialled number as dnis on each session, and that sessionDnis can differ from dnis – for example when the call was transferred?

  • Did you know that Genesys Cloud conversation detail jobs are built for bulk access, but the data they search may be hours to a full day behind real time? For up-to-date results, the conversation detail query is the intended endpoint.

  • Did you know that Genesys Cloud lets an application hold up to 20 notification channels, and when that limit is reached a new channel replaces the oldest one that has no active connection?

01

A floor manager’s view of the whole world

Picture a multinational service desk at 07:30 UK time. Asia-Pacific is winding down, Europe is ramping up, and North America is asleep – or is it? A storm on the east coast, a mobile network outage in one country, a marketing email that lands in another time zone: each shows up first as a change in where calls are coming from. Tables of queue statistics will tell you the volume. They will not show you the shape.

Live Call Map paints that shape. It subscribes to your organisation’s notification streams and puts a clustered marker on a world map for every active conversation – voice, chat, email, messaging, callback, bot, workflow, co-browse, video and social – coloured by media type and state, with long-waiting calls pulsing faster. Around the map sit live agent presence counts, a Queue Health board, a wrap-up code tally, a 24-hour traffic chart, quality alerts, historical replay and a geographic heatmap of up to 30 days.

02

How a position is worked out – and how it is not

This is the part we are most careful to explain, because a map invites people to believe what it shows. Live Call Map never knows where a person physically is. It has no device location and no GPS. Each position is derived only from a telephone number: the caller’s number (ANI) for inbound conversations, or the dialled number (DNIS) for outbound. The map shows where that number is registered, as best a number can say, and every marker’s popup states the method and the confidence tier that produced it.

The lookup runs in order and the first match wins. North American numbers use a curated area-code table that maps to city centroids. For other numbers, an open-source phone-number library decides whether the number is geographic – a fixed line – and if so a bundled gazetteer covering around 150 countries gives a city-level position, with curated sub-country prefixes filling gaps at city or region level. Mobile, VoIP and toll-free numbers are non-geographic, so they resolve only to a country centroid and are labelled with country confidence. Results are cached, up to 10,000 entries.

Withheld and anonymous numbers cannot be located at all. Rather than invent a place, the app gives them a stable placeholder derived from the conversation ID, flags them as hash, lists them in an “⊘ Unknown” column beside the map, never caches them and excludes them from heatmaps and replay. Emails land in that Unknown column too, by design. We tried geolocating the originating IP in email headers and found it located the sending mail service’s data centre, not the customer – misleading, so live email geolocation is switched off. Organisations that receive national-format numbers can set a default country.

Number-based geolocation: first match wins, every result carries a confidence tier A telephone number enters on the left – the caller's number (ANI) for inbound conversations or the dialled number (DNIS) for outbound. Five steps are tried in order and the first match wins: a North American area-code table and a fixed-line gazetteer give city positions, curated sub-country prefixes give city or region, mobile, VoIP and toll-free numbers resolve only to a country centroid, and withheld or anonymous numbers get a hash placeholder and go to the Unknown column. Emails also go to Unknown because email IP geolocation is disabled. On the right, the tiers used by the live map, heatmap and replay. LIVE CALL MAP · GEOLOCATION First match wins INPUT ANI inbound DNIS outbound 1 North American area code CITY 2 Fixed line → gazetteer, ~150 countries CITY 3 Curated sub-country prefixes CITY · REGION 4 Mobile · VoIP · toll-free COUNTRY 5 Withheld or anonymous HASH → UNKNOWN Email → Unknown · originating-IP geolocation disabled WHERE TIERS ARE USED Confidence is data LIVE MAP City, region, country Hash listed in Unknown HEATMAP City and region only No false hotspots REPLAY Hash excluded Placeholders never shown A number says where it is registered – never where a person is. No device location is used.
The number-based geolocation pipeline: first match wins, every result carries a confidence tier, and withheld numbers and emails go to Unknown.
Read this diagram as text

A geolocation pipeline on the left tries five numbered steps in order against an input number, and a panel on the right shows where each confidence tier is used.

  1. Left panel, "Live Call Map · geolocation: first match wins": the input is the ANI for inbound calls or the DNIS for outbound calls, and it enters at step 1.
  2. Step 1, North American area code, gives a city; if it does not match, the next step is tried.
  3. Step 2, fixed line to a gazetteer covering about 150 countries, gives a city.
  4. Step 3, curated sub-country prefixes, gives a city or region.
  5. Step 4, mobile, VoIP or toll-free, gives a country only.
  6. Step 5, withheld or anonymous, gives a hash and goes to Unknown.
  7. A separate note says email goes to Unknown because originating-IP geolocation is disabled.
  8. Right panel, "Where tiers are used: confidence is data": the live map uses city, region and country, with hashes listed in Unknown; the heatmap uses city and region only, so there are no false hotspots; replay excludes hashes, so placeholders are never shown.
  9. A banner says a number says where it is registered, never where a person is, and no device location is used.

03

Push first, poll as a safety net

Inside each worker, the connect sequence loads queues, Architect flows and inbound routes in parallel, then creates a notification channel subscribed to v2.routing.queues.{queueId}.conversations for every queue. Large organisations get overflow channels automatically, because a channel is limited to 1,000 topics. A second, dedicated presence channel subscribes v2.users.{userId}.presence and v2.users.{userId}.routingStatus for queue members, in batches. Active conversations are preloaded through POST /api/v2/analytics/conversations/details/query, and from then on the queue-conversation events drive the map in real time.

Push is fast, but push alone can miss things, so REST pollers reconcile in the background: an analytics active-conversation poll every eight seconds, a users poll every ten seconds that re-seeds presence from /api/v2/users?expand=presence,routingStatus, queue observations every 15 seconds, and a full reconcile every five minutes that picks up new queues, flows and agents. An optional REST poll catches calls still in the IVR, before they reach any queue, when the client has the permission for it.

Two kinds of politeness keep this healthy at scale. Every Genesys call flows through a rate-limit pacer that reads the platform’s rate-limit response headers, slows down as it approaches the ceiling, and honours Retry-After on a 429. Circuit breakers isolate analytics, presence and REST failures so one struggling area cannot take the map down. And because analytics indexing lags slightly behind the live stream, ended conversations are held as tombstones for two minutes so a late poll result cannot bring a finished call back to life.

Notification topics, analytics queries and REST pollers converge on one live map per organisation On the left, the Genesys Cloud sources: notification topics v2.routing.queues.{queueId}.conversations and per-user presence and routingStatus; analytics conversation details queries for preload and an 8-second reconcile, conversation details jobs for the heatmap, and queue observation queries every 15 seconds; and REST reads of users with presence every 10 seconds plus queues and Architect flows on a 5-minute reconcile. In the middle, one isolated worker per organisation applies a rate-limit pacer, circuit breakers, zombie defence and number-based geolocation. On the right, the single Live Call Map view: the map, Unknown column, Queue Health, presence counts and the heatmap and replay. GENESYS CLOUD SOURCES Push first, poll as a safety net PUSH · NOTIFICATION TOPICS v2.routing.queues.{queueId}.conversations v2.users.{userId}.presence · .routingStatus ANALYTICS · READ QUERIES POST …/conversations/details/query · 8 s POST …/conversations/details/jobs · heatmap POST …/queues/observations/query · 15 s REST · RECONCILE GET /api/v2/users?expand=presence · 10 s GET /api/v2/routing/queues · /api/v2/flows · 5 min ONE WORKER PER ORG Rate-limit pacer Circuit breakers Tombstones · 2 min Geolocation Own channels ONE FOCAL VIEW Live Call Map ⊘ Unknown column Queue Health board Presence counts Heatmap · replay Read-only against Genesys: queries and subscriptions only, and one worker per organisation
Queue-conversation and presence topics, analytics queries and REST pollers converge on one live map, per organisation.
Read this diagram as text

A left-to-right diagram shows Genesys Cloud push and poll sources converging on one worker per organisation, which feeds the single Live Call Map view.

  1. Left panel, "Genesys Cloud sources: push first, poll as a safety net", has three groups.
  2. Push, notification topics: queue conversations (v2.routing.queues.{queueId}.conversations) and user presence and routing status (v2.users.{userId}.presence and .routingStatus).
  3. Analytics read queries: conversation details query every 8 s, conversation details jobs for the heatmap, and queue observations query every 15 s.
  4. REST reconcile: users with presence every 10 s, and routing queues and flows every 5 min.
  5. All three groups converge on "One worker per org", which contains a rate-limit pacer, circuit breakers, tombstones (2 min), geolocation and own channels.
  6. The worker feeds the right panel, "One focal view: Live Call Map", showing a world map with call markers, then an Unknown column, a Queue Health board, presence counts and heatmap and replay.
  7. A banner says the map is read-only against Genesys, using queries and subscriptions only, with one worker per organisation.

04

One isolated worker per organisation

A streaming pipeline of channels, pollers and caches is substantial per organisation, so the defining design decision was process isolation. A front door validates each sign-in directly against Genesys OAuth, before anything else is created, and then starts one worker process per credential set – region plus OAuth client. Each worker owns its own Genesys connection, memory and crash domain. Two supervisors who sign in with the same OAuth client share a worker; different clients never share a process, so one organisation’s data can never appear in another’s view.

Lifecycle is managed for the user. Logging out tears the worker down at once if it was the last session, and the logout overlay narrates the real steps as the worker releases its notification subscriptions. Closing the tab without logging out is also safe: when every browser connection to a worker has gone and nothing reconnects within a two-minute grace, the worker is reaped and its sessions purged. A laptop closed overnight does not leave a pipeline running.

05

Caching, heatmaps and replay

The heatmap shows the density of up to 30 days of conversations. A fresh build submits an asynchronous analytics conversation details job, polls its state every four seconds and cursor-pages the results, with a progress bar driven by a quick size probe. Because historical density barely moves hour to hour, completed builds are cached per window – 24 hours, 7, 14 or 30 days can coexist – for six hours by default. Pressing Go is cache-first and the event log says when the build was made; Shift+click forces a fresh pull from Genesys.

Resilience was designed in. If a results page fails after data has started to flow, the build renders what it has and is flagged partial rather than thrown away, and a build presumed hung after 20 minutes is superseded by the next request. Historical replay animates up to 2,000 past conversations across the map on a time scrubber. For support engineers, a capture terminal records raw ingest events, tagged by source, into a 2,000-entry ring buffer that can be downloaded as JSON – the quickest way to answer “what did Genesys actually send?”.

06

Privacy by design, not by policy

Caller numbers are personal data, and a map of them deserves care. Live Call Map is strictly read-only against Genesys: it never modifies conversations, queues or users, and its only deletes are of its own notification subscriptions. Live data lives in worker memory and an ephemeral per-worker cache that is deleted when the worker starts and again when it shuts down. Credentials are never written to disk or sent to the browser.

The only file that outlives a session is the heatmap cache, and it holds aggregated latitude, longitude and count centroids with build metadata only – no numbers, names or conversation IDs – namespaced so that different organisations can never read each other’s points. Diagnostic outputs that do contain live organisation data sit behind the session like everything else, and the guide tells engineers to redact before sharing. Positions are approximate by construction, and we say so on every marker.

07

Beside the native views, and how we built it

Genesys Cloud’s own views remain the system of record for this data. The Interactions view lists conversations with filters including ANI, DNIS, direction, waiting and interacting states and MOS, over ranges of up to 31 days. The Queues Activity Detail view gives real-time queue operations: waiting and interacting conversations, agent statuses including Not Responding, service level, and manual assignment. Live Call Map does not replace these; it adds a geographic lens on the same conversations, live presence and queue health in one place, and quality toasts when MOS drops below 3.5 or RTP latency passes 200 ms.

The app is a product of the QVCCS lifecycle: supervisors’ questions captured as requirements, an architecture decision record for the worker model, a privacy and data-protection design reviewed by design authority, and negative-path testing of reaping, rate limits and division scope. Our Solution Architects, Senior Developers, Systems Integration Testers and Support Engineers built and proved it together, backed by the whole practice.

How it compares

Native views and Live Call Map

The same conversations and queues, seen through different lenses.

AspectNative Genesys Cloud CXQVCCS Live Call Map
Live conversationsThe Interactions view lists conversations, filterable by ANI, DNIS, direction, waiting and interacting states and more.Every active conversation as a clustered marker on a world map, coloured by media type and state.
Caller locationANI and DNIS are recorded and filterable as conversation fields.A position derived from ANI or DNIS with a stated confidence tier; withheld numbers and emails listed as Unknown.
Queue operationsQueues Activity Detail shows waiting and interacting conversations, agent statuses, service level and manual assignment.A read-only Queue Health board of agents, idle agents and waiting conversations, next to the map.
Call qualityThe Interactions view can filter by MOS range, above or below a value.Live toasts when MOS falls below 3.5 or 3.0, or RTP latency exceeds 200 or 400 ms.
HistoryInteractions view date ranges of up to 31 days.Replay of up to 2,000 past conversations and a heatmap of up to 30 days.
Changes to your orgSupervisors can act on interactions and agents, subject to permissions.Strictly read-only; it only manages its own notification subscriptions.

Native capabilities are as described in the Genesys Cloud Resource Center at the time of writing. Map positions are approximate and derived from telephone numbers only.

The takeaways

  • See where conversations are coming from, live, across every media type.
  • Every position states its method and confidence, and the app never fakes a location.
  • Push-first streaming with REST reconciliation keeps the map accurate without hammering the API.
  • One isolated worker per organisation keeps data, failures and quotas apart.
  • Privacy by design: read-only, ephemeral data and only anonymous aggregates at rest.

Live Call Map is part of the QVCCS App Suite, included with every Managed Professional Services tier and built by the same certified team that designs, builds and supports Genesys Cloud CX solutions.

Read the user guide Managed Professional Services

Last reviewed

Questions about what you have read?

Clients, partners and people introduced to us can reach the specialists behind our applications and articles directly.

Who to contact