Reviewing a flow before go-live: a worked example
The Connect flow designer is good for building a flow but poor for reviewing one. Large flows sprawl across the canvas, and it is easy to miss a branch that leads nowhere. Exporting the flow and loading it here gives you a clean diagram you can walk through with the team. This is the review checklist we use, applied to a typical main IVR.
The example flow
A main inbound flow that: sets logging and the voice, checks hours of operation, plays a greeting, offers a three-option menu (Sales, Support, Billing), sets the working queue for each option and transfers to queue. Load the Advanced sample from the dropdown (queue transfer, Lambda and a loop-back) to follow along.
1. Start at the entry point
The first blocks should be Set logging behavior (logging enabled) and Set voice. If logging is not enabled at the very start, the first part of every contact will be missing from CloudWatch exactly when you need it for troubleshooting.
2. Follow every branch to an end
Each path must finish at a terminal action: Transfer to queue, Transfer to flow, Disconnect or a phone transfer. The diagram highlights blocks with no outgoing connection. A Get customer input block needs a path for every option, plus Timeout, Default and Error. A missing timeout branch is the classic cause of callers hearing silence and then being dropped.
3. Check the order of routing blocks
- Check hours of operation should run before the caller is queued, with a separate path for closed hours and holidays.
- Set working queue must run before Transfer to queue on every branch. A branch that skips it transfers to whatever queue was set earlier, or fails.
- Set contact attributes that routing depends on (language, tier, intent) must come before the block that reads them.
4. Look for loops
Retry loops ("Sorry, I didn't get that") are normal, but each one needs an exit after a fixed number of attempts, usually through a Loop block or a counter attribute. An unbounded loop keeps a caller in the IVR until they hang up, and every minute is billed.
5. Check every Error branch
Invoke AWS Lambda function, Get customer input with Lex, and Transfer to queue (queue full or closed) all fail sometimes. Route Error branches to a sensible fallback, such as a default queue or a short apology and a callback offer, rather than straight to Disconnect.
Flow insights: beyond the diagram
Below the diagram, the Flow insights panel analyses the flow in five ways. None of them are available in the Amazon Connect flow designer.
- Checks: lists every block that can fail but has no error branch connected (Lambda calls, customer input, queue transfers, Lex bots), missing Default, Timeout and At capacity branches, links to blocks that no longer exist, and loops with no Loop block to limit retries. Choose Error handling to colour the diagram green, amber or red.
- Path tracer: pick any block to highlight every route that leads to it and everything that can happen after it, with the shortest route from the start listed step by step. That answers "how does a caller end up here?" in seconds.
- Dependencies: every Lambda function, Lex bot, queue, prompt, flow, module, hours of operation and contact attribute the flow uses, with the blocks that use them. Download it as CSV for a migration or change-review checklist.
- Prompt script: every prompt in the order a caller hears it, including menu options and where each one goes. Download it as text or CSV for business sign-off, translation or a recording vendor.
- Compare versions: load an older export of the same flow to see which blocks were added, removed or changed, and exactly which parameters and branches changed. Choose Changes to colour the diagram.
Common design problems this view exposes
- Orphan blocks: blocks left on the canvas with no incoming connection. They are harmless, but they confuse the next person who edits the flow, so remove them.
- Duplicate logic: the same set-attribute and prompt sequence copied into several branches. Move it into a flow module so a change happens in one place.
- Hardcoded ARNs: queue, prompt and Lambda ARNs that point at one instance. They break when you import the flow into another environment. Run the flow through the ARN Parameterizer before promoting it.
- Very large flows: flows with hundreds of blocks are hard to test and slow to edit. Split them into a main flow and modules by function: authentication, menu, queueing.
Getting the JSON
In the flow designer choose Export flow (this downloads JSON), or use the API: aws connect describe-contact-flow --instance-id <id> --contact-flow-id <id>. The tool accepts both the raw flow content and the full API response. Everything is drawn in your browser, so you can safely review production flows.