12 node types covering 95% of use cases
- play — TTS prompt or uploaded recording.
- menu — DTMF options with timeout and retries.
- queue — send to ACD queue.
- transfer — to extension or external number.
- condition — branch by time / schedule / variable.
- hangup — with optional goodbye audio.
- input — capture digits into a session variable.
- voicemail — leave message in mailbox.
- webhook — POST to external system, parse response.
- switch — N-way routing by variable value.
- function — custom JS sandboxed with
isolated-vm. - ai_agent — hand off to a conversational AI agent.
Interactive simulator
Test the flow before publishing. The simulator emulates DTMF presses, evaluates real conditions (current time, mock variables) and shows visited path. Useful for QA before deploying to production.
Versioning
Every save creates a new version. Promote to "active" only when validated. Rollback in one click. Editing history with diff between versions.
Schedules + holidays
The condition.schedule node points to a record in the
schedules table: opening hours by day, configurable timezone
and list of holidays. Result: routing to one flow during business hours and
another out-of-hours / on holidays without DTMF.
Validation prior to publish
- Unreachable nodes detection.
- Missing references (queue that no longer exists, deleted audio).
- Infinite loops without exit.
- Webhook nodes with reachable URLs (preflight HEAD).