Each step will show the JSON that would be sent to Kazoo.
đž Saved Presets (click to expand)
đ¯ Test Navigator & Node Tools (click to expand)
Jump to any node with pre-filled session data
đ Node Verification (click to expand)
Click: cycle status (âââ âđ§) | Right-click: notes | Double-click: test
đ§ DSL Builder & Validator
Convert Twilio Studio flows, scripts, or descriptions into our DSL format. All prompt sections below are editable - customize them for your specific needs.
đĨ Import LLM Response
After running the prompt through an LLM (Claude, GPT, etc.), paste the response here. The system will extract FLOWS and ENDPOINTS JSON blocks, validate them, and prepare for import.
đ Business Hours Manager
Manage named schedules that DSL check_schedule calls reference
đ Schedule Status
Current status of all named schedules (as referenced by DSL)
đ Weekly Hours
Select a schedule to edit its weekly hours
đĢ Recurring Holidays
These dates are closed every year (affects schedules with shared holidays enabled)
đ Special Closures
One-time closures (e.g., Thanksgiving varies each year)
đ§Ē Test Schedule
Simulate a date/time to test if a schedule would be open
đ Queue Manager
Map DSL queue destinations to Kazoo extensions and CRM callback IDs
đ Queue Mappings
| DSL Destination | Name | Ext | Callflow ID | Queue ID | CRM ID | Aliases | |
|---|---|---|---|---|---|---|---|
| Loading... | |||||||
đ Test Queue Lookup
Test resolving any identifier to its queue info
đ Queue Usage in Flows
Shows which flows use each queue
Traffic Router
Route Kazoo pivot calls across multiple IVR servers with weighted traffic splitting
Servers
Shared pool of IVR server base URLs referenced by route profiles
| Key | Name | Base URL | |
|---|---|---|---|
| Loading... | |||
Routes
Each route is a Kazoo entry point with switchable traffic profiles
Server Base URL
This URL is used by Kazoo to reach your IVR server. Set it in Settings â Server Settings.
đ API Endpoints
CRM API integration health and usage dashboard
Refund Audit Log
Cancel & refund operations with business rule validation| Time | Order # | Caller | Endpoint | Amount | Balance | Delivered | Cancel OK | Status | Flags |
|---|---|---|---|---|---|---|---|---|---|
| Click Refresh to load audit data | |||||||||
Select an endpoint group or endpoint to view details
đē Phase Status / Roadmap
[click to expand]đ Agent Context Bundle
The curated payload sent to the LLM at agent_loop entry â order summary, eligibility flags with block reasons, history, frustration signal, and the in-scope tool catalog. Strips PII, internal IDs, and URLs.
See src/agent_context.py and Section 11.5 of docs/ARCHITECTURE_DECISIONS.md.
// Pick a session above or click a demo to view the bundle.
đ° Usage & Billing
Append-only ledger of every metered upstream call (TTS, Claude, Groq, ASR). Filter by tenant or call. Cache hits show up but bill 0 â only generations bill.
See src/usage_ledger.py ¡ logs/usage_*.jsonl ¡ Section 11.7 of docs/ARCHITECTURE_DECISIONS.md.
đ¤ AI / LLM Mode
Master toggle for the agent_loop on pilot flows (NON_DELIVERY_AI, PRODUCT_QUALITY_AI). When OFF, calls fall back to deterministic CANCEL_ORDER_FLOW / PRODUCT_FLOW (DTMF). Same fallback fires on concurrency-cap rejection or any agent_loop exception. See src/ai_concurrency.py + src/interpreter.py agent_loop branch.
⸠Active AI sessions
⸠Recent acquire/reject/release events
đ Kazoo Integration URLs
Edit the public-facing URLs Kazoo uses to reach this server. Saves to .env and applies live (no restart). The catalog below is auto-derived â copy-paste into your Kazoo Pivot configuration.
See src/env_config_manager.py.
Paths Kazoo connects to:
Defined in the FastAPI routers â paths themselves are not user-configurable, but the BASE_URL above feeds into all of them. Click any URL to copy.
đ LLM API Keys
Anthropic (Claude) for tool-use decisions ¡ Groq for fast utterance generation (Phase 2). Keys are persisted to .env and applied to the running process immediately â no restart required. Values are masked for display.
See src/secrets_manager.py.
đ VAD (Voice Activity Detection) Provider
Detects when the customer is speaking. Silero is the default â free, ONNX, no GPU, ~1ms per chunk. Trained on speech formants â correctly rejects noise/silence even at high amplitude. SoulX-Duplug is a semantic upgrade (returns idle/nonidle/speak/blank where speak means semantic completeness) â skeleton until hosting is decided.
See src/vad/.
đ§ Phase 3 Feature Toggles
Switches for Phase 3 audio-pipeline features. Some are wired to live code paths; others are skeletons until the underlying impl lands. Flipping a flag whose impl isn't ready is a no-op on dead code â safe to toggle ahead of time.
đ§Ē Channel Interrupt Lab â Empirical Testing
Test how Kazoo behaves when you interrupt an in-progress play verb. Documentation is sparse â the only way to know if metaflow / redirect / break actually preempts mid-utterance is to fire the request against a live call and observe.
POST /v2/accounts/{aid}/channels/{call_id}/metaflowâ runtime callflow injection. Documented purpose: hot-key callflow features mid-call (e.g. dial a star-code to mute). Whether it preempts an in-progressplayverb is unverified.POST /v2/accounts/{aid}/channels/{call_id}with action=break/queueâ older API. Behavior under Pivot'splayis unknown.- Pivot redirect: returning a fresh Pivot response with a new
playmay or may not preempt the previous one â depends on Pivot's playback state machine. - The polite barge-in approach (Section 5.4(a) of arch doc) sidesteps this entirely: let the current play finish a short sentence, capture customer speech in parallel, respond on next turn.
Live call selector
Interrupt strategy
- Did the original play stop immediately? Within how many ms?
- Did Kazoo queue the new audio (waited for original to finish)?
- Did the call drop or behave erratically?
- HTTP response code + body from Kazoo
docs/ARCHITECTURE_DECISIONS.md Section 5.4(b).
đ¤ ASR (Speech-to-Text) Provider
Selects the streaming-ASR backend used by Pivot-TAP and Jambonz when those adapters land. Deepgram nova-2 is the production-ready default. Together.ai Whisper is the cost target (Phase 3 verification of streaming pending). Google Cloud is a future skeleton. NoOp bypasses ASR for tests/dev.
See src/asr/.
đī¸ TTS Cache Pre-warm + Hash Registry
Pre-generate audio for common phrases at startup so the first call doesn't pay synthesis latency. Hash registry persistence lets dynamic Groq utterances survive restarts.
See src/tts_prewarm.py ¡ src/adapters/tts_endpoint.py.
đ¨ Frustration Detector
Repeat-call frequency thresholds + keyword signals (BBB, lawyer, chargeback, etc.).
Hard signals skip the AI agent entirely and route to the priority queue.
Soft signals are exposed to the LLM as context flags.
See src/frustration_detector.py ¡ Section 11.6 of docs/ARCHITECTURE_DECISIONS.md.
đ Server Settings
Configure the public URLs that Kazoo will use to reach this server and the TTS endpoint.
đ TTS Provider
Select and configure the text-to-speech engine for IVR prompts.
đŖī¸ Pronunciation Mappings
Map words to TTS-friendly pronunciations. Example: "avas" â "ayvas" so TTS says it correctly.
âī¸ Google Cloud TTS Settings
Configure Google Cloud Text-to-Speech API credentials and voice settings.
Upload your Google Cloud service account JSON key file (e.g., my-project-123456.json)
đ TTS Testing
Test TTS synthesis directly and via the Kazoo-compatible endpoint.
Current Provider: -- (Change above and Save Settings to switch)
đĻ TTS Cache & Hash Registry
Monitor TTS caching and hash registry. Hash registry maps clean URLs to text.
đĸ DTMF Settings
Configure timing for DTMF digit collection. Other settings (max digits, timeout) are defined per-node in the DSL.
đĨ Pivot Session Fields
Select which Kazoo Pivot request fields to store as session variables. These become available as {{variable}} in your DSL flows for branching, API calls, etc.
đ Kazoo Pivot Docs
call_id - unique call identifier (used as session ID)lead_id - alias for call_id (CRM convenience)Custom-Application-Vars - unpacked as individual session vars
đĄ Usage Example
đ Relay Proxy
Configure relay proxy for CRM API calls through a remote server.
đ¤ OSTI Speech Intent Router
Configure the openSpeechToIntent server for voice-based menu navigation. When enabled on a choice node, calls will be redirected to OSTI for speech recognition racing against DTMF.
đ OSTI Redirect Parameters
đĄ Real-time WebSocket
Enable WebSocket event broadcasting for real-time dashboards. When disabled, there is zero performance overhead on the IVR engine.
ws://host/ws/realtime?channels=stats,calls,allGET /api/realtime/summaryđą Twilio SMS
Configure Twilio for sending SMS messages from IVR flows (missing item links, PAN notices, order modification links).
đ SMS Nodes in Flows
đ Security Settings
Basic login protection for the admin console.
Leave blank to keep current password. Default: avas2026
đ File Manager
Browse and manage files on the persistent data disk (config, flows, data).
đ System Diagnostics
Shows which directories the system is using for config and flows. Helps diagnose persistent disk issues.
đ Current Configuration
Showing: Last saved configuration