QVCCS innovation · Configuration and DevOps

Flow Mapper: see every Architect flow whole, audit it, and document it as built

Architect is where flows are built, one flow at a time. Flow Mapper is where they are understood: every published flow drawn whole from its raw configuration, a virtual call walked through it, the organisation's supporting objects inventoried, a four-tier audit across everything, and a Word as-built document generated rather than typed.

QVCCS Innovation teamFlow Mapper user guide →

Flow Mapper: see the whole flow An Architect flow drawn as a diagram with its happy path as a straight vertical spine: Start, a Menu, a Data action with Success and Failure port chips, and a Transfer to ACD whose queue reference does not resolve and is flagged in red. The Failure port branches off to the side to an exit. On the left, two tiles stand for the configuration audit and the as-built Word document. INNOVATION · BUILD AND GOVERNANCE See the whole flow Four-tier audit As-built document Start Menu Data action Success Failure Transfer to ACD Exit
  • Did you know Architect's Dependency Search covers only checked-in and published flows, and does not include prompts fetched through an expression, because those dynamic prompts are evaluated only when the flow runs?

  • Did you know that from inside a common module, bot, in-queue call or secure call flow, Architect's Find consuming flows lists the other flows that consume it?

  • Did you know Architect's Dependencies pane, under a flow's Resources, lists every resource the flow uses, such as queues, skills, users and wrap-up codes, with a link to each place it is used?

01

The question every review starts with

A design review is booked for Thursday. The client's new Head of Contact Centre wants to see what the IVR actually does, the operations team wants to know which queues it can send callers to, and an auditor has asked for a point-in-time record of the configuration. The organisation has dozens of flows, common modules called from several of them, data tables that drive routing, and participant data written by flows that three different teams have touched over the years.

Everyone in the room can open Architect. Few want to click through nested tasks and action panels on a projector, and nobody wants to assemble the as-built by hand from screenshots. We built Flow Mapper, called Flowmapper inside the app, to make the configuration legible: one place to see a flow whole, walk a call, check every reference against what really exists in the organisation, and hand over a document that matches the build.

02

What Architect shows natively, and where we start

Architect is an editor, and a good one. You open a flow, work on its tasks, menus and actions, then check it in and publish it. Two native features answer the where-is-this-used question. Under Resources, the Dependencies pane lists every resource the flow uses, with its type and links to each usage. And the Dependency Search tab on the Architect home page lists the flows that contain a particular resource, across more than 25 dependency types including queues, data actions, data tables, user prompts, schedules and scripts. Find consuming flows does the reverse for common modules, bots, in-queue and secure call flows.

Genesys documents the scope of Dependency Search carefully: it applies to checked-in and published flows, and it does not include prompts fetched through an expression, because those are evaluated only at runtime. It is a search for a resource you can name. What clients asked us for sat alongside it: the whole flow on one canvas with prompt wording and queue targets in place, references that do not resolve to anything, names that nearly match, the same attribute spelt two ways in different flows, and a document they can sign off.

03

The insight: a published flow is data

Every Architect flow version is stored as configuration that the Platform API returns as JSON. Flow Mapper does not use the Architect Scripting SDK to draw diagrams. The server reads the flow, chooses the published version, falling back to checked-in and then saved for a flow that has never been published, and fetches that version's configuration over REST, following a configuration link where Genesys provides one, still authenticated and still a GET.

The configuration is parsed locally into a normalised flow model: lookup tables from the UI metadata, a start node, task and menu containers with their action chains, edges wired from each action's next action and output paths, jump edges for call-task, transfer and menu-choice targets, loop back-edges, synthetic end nodes wherever a chain falls through as Architect does at runtime, return edges from task ends to their callers, and finally the variables and a manifest that catches references a per-action walk would miss. Two enrichment passes then run against the organisation's inventory: prompt tokens in communicate expressions resolve to per-language text and audio, and transfer targets resolve to real queue records. A name that matches nothing is stamped unresolved, and the diagram paints it red.

How Flow Mapper builds one flow model Five Genesys Cloud CX Platform API sources on the left: the flow version configuration from the flows API, user prompts, routing queues, integration data actions and data tables. The flow configuration is parsed into a flow model of containers, actions, edges, jumps, loops, returns, variables and a manifest; the prompts and queues enrich it, resolving prompt tokens to text and audio and queue names to records, with names that match nothing stamped unresolved, while data actions and data tables supply the inspector contracts and the audit inventories. The single model feeds four outputs on the right: the diagram, the Walker, the four-tier audit and the as-built Word document. Every request is a GET. FLOW MAPPER · FROM RAW CONFIGURATION Five Genesys sources, one flow model, four views. FLOW VERSION CONFIGURATION GET /api/v2/flows/{flowId}/versions/{versionId} USER PROMPTS GET /api/v2/architect/prompts QUEUES GET /api/v2/routing/queues DATA ACTIONS GET /api/v2/integrations/actions DATA TABLES GET /api/v2/flows/datatables PARSE Flow model containers · actions · edges jumps · loops · task returns variables · manifest ENRICH Prompt tokens → text and audio Queue names → queue records No match → unresolved (red) Inspector contracts and the audit check against every inventory DiagramHappy path pinned · port chips WalkerVirtual call · caller transcript Four-tier auditReferences · tables · naming As-built documentWord · scopes · diagrams GET only: the shared Genesys client refuses any other method before the request leaves the server
Flow configuration and the organisation's prompts, queues, data actions and data tables converge on one parsed flow model behind every view.
Read this diagram as text

A left-to-right diagram showing five Genesys sources feeding a parsed and enriched flow model, which in turn feeds four outputs.

  1. The panel is labelled "Flow Mapper · from raw configuration" and headed "Five Genesys sources, one flow model, four views."
  2. Five read requests are listed on the left: "Flow version configuration", "User prompts", "Queues", "Data actions" and "Data tables".
  3. A solid arrow leads from the flow version configuration to "Parse": "Flow model" made of "containers · actions · edges", "jumps · loops · task returns" and "variables · manifest".
  4. Curved lines from user prompts and queues lead to an "Enrich" box attached below the model: "Prompt tokens → text and audio", "Queue names → queue records" and "No match → unresolved (red)".
  5. Fainter lines from data actions and data tables lead to the note "Inspector contracts and the audit check against every inventory".
  6. From the flow model, arrows fan out to four outputs: "Diagram" ("Happy path pinned · port chips") and "Walker" ("Virtual call · caller transcript").
  7. The other two outputs are "Four-tier audit" ("References · tables · naming") and "As-built document" ("Word · scopes · diagrams").
  8. The banner beneath reads: "GET only: the shared Genesys client refuses any other method before the request leaves the server".

04

See a flow whole, then walk a call through it

Flows lists every Architect flow the OAuth client can see across all 17 REST-listable flow types, from inbound call and bot flows to workflows, common modules, surveys and voicemail, with division, published version and publish date, a search box and an exclude box for hiding staging or test flows. Open one and the diagram fills the screen. Containers stack in call order; within each, actions are ranked into layers and the happy path is pinned to a straight centre column, so the primary story reads top to bottom while error branches hang off the sides. Edge crossings render as small bridge hops so lines never read as merged.

Multi-output actions show port chips, Success, Failure, Timeout or case labels, so every branch is visible at a glance, and an unresolvable queue name is flagged in red on the node before any audit runs. Click a node and the inspector shows its full configuration: prompt wording per language, pretty-printed expressions, data action input and output contracts, queue records with members, division and wrap-up codes, and every incoming and outgoing edge as a clickable jump. A raw JSON download gives the exact Architect configuration for diffing or archiving.

From the inspector, the Walker steps through the flow like a virtual call. At each junction it offers the outgoing branches as buttons, Yes or No, case values, Success or Failure, menu choices, and as it lands on communicate nodes it builds a caller-facing transcript of the text-to-speech or prompt content, with inline players for recorded audio. Reusable tasks offer return-to-caller branches, so round trips read naturally. In a design review, that is how we narrate a call path without touching Architect.

05

A four-tier audit, and the Task.IsBlocked problem

Press Run audit and an organisation-wide sweep streams live: the inventory of queues, data tables with their schemas, data actions, user prompts and all flows is loaded, every flow is parsed with the same parser the diagrams use, and findings arrive grouped by severity while a progress log scrolls. Tier one checks direct references: every queue, data table, data action, prompt and target flow in every flow must resolve, by id, then exact name, then ignoring case. Nothing matching is a High broken reference; a close match is a Medium typo suggestion; a match that differs only by case is a High case mismatch.

Tier two reads inside the data tables that so often drive routing: every cell is checked against the queue, data action, prompt and flow inventories, and near-misses are flagged as likely typos, scanning up to 2,000 rows per table. Tier three looks for drift across the whole organisation: participant-data attribute names and flow variable names are gathered from every flow, and groups that differ only by case or sit within one or two edits of each other surface as clusters. That is the classic Task.IsBlocked versus Task.isBlocked problem, where two teams wrote the same idea two ways and a downstream report, data action or screen pop reads only one of them.

Tier four attaches to every unresolved reference the closest inventory match by edit distance, with the distance shown. Dynamic references, expressions that build a queue name or read a variable at runtime, are deliberately skipped, because they cannot be validated statically and are not typos. Every finding carries its severity, category, the referencing flow and node or table and cell, the attempted name and any suggestion, and a deep link that opens the flow with the offending node focused and flashing. Findings export to CSV for the change backlog.

Flow Mapper's four-tier configuration audit Illustrative findings in four columns. Tier 1, direct references: a transfer to a queue named Billing Queu raises a medium typo suggestion, and billing queue in lower case raises a high case mismatch. Tier 2, data-table content: a cell value Sales_Queue that nearly matches a queue name raises a medium data-table-cell finding. Tier 3, naming consistency: Task.IsBlocked and Task.isBlocked in different flows form a medium naming cluster. Tier 4, suggestions: the closest inventory match, Billing Queue, is attached with an edit distance of 1. Dynamic references are skipped, and every finding deep-links to the node or cell and exports to CSV. CONFIGURATION AUDIT · ILLUSTRATIVE FINDINGS Four tiers, every flow and every data table. TIER 1Direct references TIER 2Data-table content TIER 3Naming consistency TIER 4Suggestions Transfer to ACD “Billing Queu” MEDIUM · TYPO-SUGGESTION Transfer to ACD “billing queue” HIGH · CASE-MISMATCH Data table · routing row Cell “Sales_Queue” MEDIUM · DATA-TABLE-CELL Every cell checked against queue, data action, prompt and flow names Up to 2,000 rows per table Drift cluster across flows Task.IsBlocked Task.isBlocked Differs only by case, or by 1–2 edits MEDIUM · NAMING-CLUSTER Closest inventory match Billing Queue EDIT DISTANCE 1 Attached to every unresolved reference, with the distance shown Dynamic references such as Flow.x, Task.x and MakeQueue(…) are skipped: they cannot be checked statically Every finding deep-links to the offending node or table cell · filter by severity · export to CSV
Illustrative findings from the four tiers: broken references, data-table cells, naming drift clusters and closest-match suggestions.
Read this diagram as text

An illustrative diagram of four side-by-side columns, one per audit tier, each with example findings, above two notes that apply to all tiers.

  1. The panel is labelled "Configuration audit · illustrative findings" and headed "Four tiers, every flow and every data table."
  2. Tier 1, "Direct references": a Transfer to ACD naming "Billing Queu" is a "Medium · typo-suggestion" finding, and a Transfer to ACD naming "billing queue" is a "High · case-mismatch" finding.
  3. Tier 2, "Data-table content": "Data table · routing row", cell "Sales_Queue", is a "Medium · data-table-cell" finding. A note reads "Every cell checked against queue, data action, prompt and flow names" and "Up to 2,000 rows per table".
  4. Tier 3, "Naming consistency": a "Drift cluster across flows" groups "Task.IsBlocked" and "Task.isBlocked", which "Differs only by case, or by 1–2 edits" – a "Medium · naming-cluster" finding.
  5. Tier 4, "Suggestions": "Closest inventory match" "Billing Queue", "Edit distance 1", "Attached to every unresolved reference, with the distance shown".
  6. A dashed note beneath reads "Dynamic references such as Flow.x, Task.x and MakeQueue(…) are skipped: they cannot be checked statically".
  7. A final note reads "Every finding deep-links to the offending node or table cell · filter by severity · export to CSV".

06

Inventories and an as-built that writes itself

Around the diagrams sit inventory pages for prompts with per-language text and playable audio, data tables with schema and rows, data actions with their input, success and failure contracts, integrations with the actions each provides, and queues with skill evaluation method, calling-party settings and wrap-up codes. Twenty-odd further inventories, from users, groups and skills to schedules, divisions, telephony, outbound, quality, workforce management, knowledge, recording policies and canned responses, are read through the Platform API for the as-built document.

The As-Built page configures a generation job: executive scope for totals and a section map, standard scope as the recommended handover set with personal data redacted and data-table rows capped, or full scope, unredacted with all rows, for controlled environments only. A section picker adds or removes any section; including the audit runs a full sweep inside the generation, and its findings become the document's configuration-health appendix. With diagrams included, a headless browser captures each flow's own diagram for embedding, and a per-flow failure simply omits that image rather than failing the run.

Generation runs as a detached server-side job, so a page reload re-attaches to it, and the finished Word document is held only in memory behind a one-time download for about 30 minutes. Redaction masks email addresses, international phone numbers and long digit runs in section bodies and table rows, while deliberately leaving identifiers that are structural cross-references. In the QVCCS method, that document is part of the operational handover pack at Transition, generated from the live configuration rather than typed from memory.

Generating an as-built document with Flow Mapper On the left, the three scopes: executive, for totals and a section map; standard, the recommended handover set with personal data redacted and data-table rows capped; and full, unredacted with all rows for controlled environments only, with Redaction and Include diagrams options. In the middle, the detached job's phases from organisation and inventories through flow parsing, people, outbound, quality and workforce management, the audit and diagram capture to the document build. On the right, the resulting Word document with its sections, from the cover and executive summary to flows, queues, data actions and tables, users and divisions, telephony and a configuration-health appendix, with embedded diagrams. AS-BUILT · DETACHED GENERATION JOB Generated from the live configuration, not typed. SCOPE EXECUTIVE Totals and a section map No per-item detail, no table rows STANDARD · RECOMMENDED The full handover set Personal data redacted · rows capped FULL Everything, unredacted, all rows Controlled environments only Redaction Include diagrams PHASES Organisation Inventories Data tables, data actions, prompts Parsing flows · the longest phase People and organisation Outbound, quality, WFM Audit · becomes the health appendix Diagram capture, flow by flow Document build AS-BUILT · WORD Cover · executive summary Flows and routing Queues · wrap-up codes · skills Data actions and data tables Users, groups, divisions Telephony · outbound · WFM Configuration-health appendix Flow diagrams embedded A reload re-attaches to the running job · the finished file is a one-time download, held in memory for about 30 minutes
From scope to Word document: the as-built job reads the organisation, parses every flow, audits it and embeds the diagrams.
Read this diagram as text

A three-column diagram, read left to right: the chosen document scope and options feed an ordered list of generation phases, which produces a Word as-built document.

  1. The panel is labelled "As-built · detached generation job" and headed "Generated from the live configuration, not typed."
  2. Left column, "Scope", offers three choices: "Executive" – "Totals and a section map", "No per-item detail, no table rows"; "Standard · recommended" – "The full handover set", "Personal data redacted · rows capped"; and "Full" – "Everything, unredacted, all rows", "Controlled environments only".
  3. Two ticked options sit below the scopes: "Redaction" and "Include diagrams". An arrow leads from the standard scope to the phases.
  4. Middle column, "Phases", lists in order: "Organisation", "Inventories", "Data tables, data actions, prompts" and "Parsing flows · the longest phase".
  5. The phases continue: "People and organisation", "Outbound, quality, WFM", "Audit · becomes the health appendix" (highlighted), "Diagram capture, flow by flow" and "Document build".
  6. An arrow leads to the right column, "As-built · Word", listing the document's sections: "Cover · executive summary", "Flows and routing", "Queues · wrap-up codes · skills", "Data actions and data tables", "Users, groups, divisions" and "Telephony · outbound · WFM".
  7. The document ends with the "Configuration-health appendix", and a box notes "Flow diagrams embedded".
  8. The banner beneath reads: "A reload re-attaches to the running job · the finished file is a one-time download, held in memory for about 30 minutes".

07

Read-only by construction, and part of a family

Flow Mapper cannot modify, publish, check out or delete anything. Its shared Genesys client refuses any request other than a GET before it leaves the server, so the guarantee is enforced in one place rather than feature by feature. It signs in with an OAuth client-credentials grant, keeps the client secret encrypted, never sends a Genesys token to the browser, stores no organisation configuration data at rest (only an encrypted sign-in credential and token are kept, so a restart doesn't sign users out), and paces every session at 200 requests a minute with retries that honour Retry-After. Read-only role bundles cover everything it reads, and each inventory page degrades on its own with the missing permission named.

It is the design-time member of a family of QVCCS flow tools. Flow Mapper shows what the flow can do; Flow Journey shows what it did on one call; IVR Sankey shows what it did for every caller in a window; and Journey Analyser measures the paths that matter as funnels. We designed it for the moments our multidisciplinary squads meet the configuration: the Solution Architect's design authority review, the Senior Developer's four-eyes peer review, the Systems Integration Tester's path-by-path test design and the Trainer's handover session. It is part of the QVCCS App Suite, included with every Managed Professional Services tier, and backed by the whole practice.

How it compares

Architect's native views and QVCCS Flow Mapper

Native facts are as documented in the Genesys Cloud Resource Center.

AspectNative Genesys Cloud CXQVCCS Flow Mapper
Seeing a flowThe Architect editor for the flow you open, with its resources under the Dependencies pane.An interactive diagram of any flow with the happy path pinned, prompt wording, queue targets and data action contracts inline.
Where a resource is usedDependency Search lists checked-in and published flows containing a named resource; Find consuming flows for modules, bots, in-queue and secure flows.Inventory pages for prompts, data tables, data actions, integrations and queues, plus deep links from every audit finding.
References that resolve to nothingDependency Search works from resources that exist and can be named.Tier 1 audit: broken references, case mismatches and typo suggestions across every flow.
Data tablesData tables appear as a dependency type in Dependency Search.Tier 2 audit: every cell checked against queue, data action, prompt and flow names.
Naming driftVariables and participant data are defined flow by flow in the editor.Tier 3 audit: attribute and variable names that differ by case or one or two edits, clustered across all flows.
Walking a pathReplay Mode plays back recorded flow executions, where execution data is stored.The Walker steps through the design itself, building a caller-facing transcript, with no call needed.
As-built recordConfiguration is viewed flow by flow in Architect, or retrieved through the Platform API.A Word document with scope presets, redaction, a configuration-health appendix and embedded diagrams.

Flow Mapper reads the most recent published build of each flow, or the latest checked-in or saved configuration for a never-published flow; it never sees an in-progress editor state.

The takeaways

  • Every published flow drawn whole from its raw configuration, with prompts, queues and contracts inline.
  • The Walker narrates a call path for design reviews and test design without touching Architect.
  • A four-tier audit finds broken references, near-miss names in data tables and cross-flow naming drift.
  • As-built Word documents are generated from the live configuration, with redaction and diagrams.
  • Read-only by construction, enforced in one place, with no organisation configuration data stored at rest.

Flow Mapper 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