Learn it in 5 minutes
HTMLAbout five minutes of reading
An unconnected error output hangs up. That is a choice, even if you did not mean it.
Lambda has Success, Error, and, when synchronous, Timeout. Lex and Get customer input have error and timeout paths. Hours have in and out. Transfers have capacity and error paths. Connect each one to a prompt a human would accept.
Distribute by percentage is for a measured pilot. It is not a skills router. Loop can spin. Cap it.
- Turn logging on before the first test call.
- The disconnect flow does not save you from an error hang-up. The customer is already gone.
- Wait and Play prompt are how you avoid silence during async Lambda.
- Touchtone buffer lets callers type ahead. Turn it on only if the prompts allow it.
Number on this page: Unconnected Hang up. The default when the error port goes nowhere
Glossary
- Contact flow The visual program a contact runs. The JSON form is the flow language.
- Flow module A published, reusable piece of a flow. Invoke module runs it. Return ends it. Default quota is 200 modules.
- Contact attribute A string key and value stored on the contact. Lambda, Lex, and Set contact attributes write them. Screen pop reads them.
- Customer queue flow The interruptible flow that runs while the customer waits, before an agent joins.
Mind map
Open the Contact flows mind map
Sister technologies
The flow is the product the caller hears. A missing error branch is a dropped call.
Config and troubleshooting
Leaving the red error port empty because the happy path worked once.
AWS::Connect::ContactFlow stores the flow-language document in Content. Type CONTACT_FLOW is the inbound flow. Build the JSON in the flow lab, then paste it here.
AWS::Connect::ContactFlow Flow language
CloudFormation study snippet
Resources:
OrderStatus:
Type: AWS::Connect::ContactFlow
Properties:
InstanceArn: !GetAtt CampusInstance.Arn
Name: OrderStatus
Type: CONTACT_FLOW
Content: '{"Version":"2019-10-30","StartAction":"a1","Actions":[{"Identifier":"a1","Type":"MessageParticipant","Parameters":{"Text":"Thanks for calling."},"Transitions":{"NextAction":"a2","Errors":[],"Conditions":[]}},{"Identifier":"a2","Type":"DisconnectParticipant","Parameters":{},"Transitions":{}}]}'
Integration map
Join records on ContactId. The integration map room lists the seams.
Cross-platform bridges
A CUCM calling search space is not a routing profile, but the profile is the closest idea of 'who can receive what'. A partition is not a Connect object. A UCCX CSQ and a UCCE skill group map to a queue. Precision steps map to routing criteria. A script, an Architect flow, and an Avaya vector map to a contact flow.
Open the mapping room
Future hooks
Hooks you can adopt later: EventBridge contact events, the CTR stream, agent events, Kinesis Video, Customer Profiles events, Cases, Show view, data tables, External Tool, and the flow language JSON in your pipeline. Live Sync and Agentic CX are the 2026 hooks for guided and agentic experiences.