Designing Call Flows
Flow design principles
Keep it short
Handle every outcome
Dial
├── onAnswer → Continue flow
├── onVoicemail → Leave message or hangup
├── onNoAnswer → Hangup (retry later)
├── onBusy → Hangup (retry later)
├── onRejected → Hangup
└── onError → HangupFail gracefully
Common patterns
Simple notification
Menu with options
Confirmation flow
Information collection
Conditional messaging
Working with audio
Sequencing audio items
Dynamic content
Barge-in
DTMF collection tips
Single digit menus
Multi-digit input
Retries
Answering machine detection
Recording responses
Testing your flows
Ad-hoc calls
Test each path
Check reports
Debugging common issues
Best practices summary
Next steps
Last updated

