Ready
Conversation
Debug
DSL:
πŸ”§ Kazoo Pivot Output
Start a simulation to see Kazoo Pivot JSON output here.

Each step will show the JSON that would be sent to Kazoo.
Select a flow to edit
Select a node to edit
✏️
Select a node from the left panel to edit its properties
πŸ“ Node Location
-
πŸ“Š Available Variables
Select a node to see available variables
πŸ”— Connections
-
⚠️ Warnings
βœ“ No issues
πŸ—ΊοΈ Mini Map
-
βš™οΈ Flow Settings (click to edit)
Transfer here on errors
πŸ” Analyze Flow:
πŸ’Ύ Presets:
Traces all reachable flows from selected root
Loading analysis...
πŸ“Š Flow Statistics
Click a flow to see stats
🌳 Branch Coverage Tester
πŸ—ΊοΈ Flow Connection Map
πŸ”Œ Endpoint Dependency Map
Run analysis to see endpoint usage
πŸ’Ύ Saved Presets (click to expand)
🎯 Test Navigator & Node Tools (click to expand)
🎯 Test Navigator

Jump to any node with pre-filled session data

Preset:
πŸ“Š Coverage Progress
πŸ“ Node Verification (click to expand)

Click: cycle status (β“β†’βœ…β†’πŸ”§) | Right-click: notes | Double-click: test

❓ Not Tested | πŸ‘οΈ Visited | βœ… Verified | πŸ”§ Needs Fix

πŸ”§ 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.

Core rules for the LLM - edit to adjust strictness
DSL node specifications - add/modify as needed
Expected output format for flows and endpoints
Real example from our system - helps LLM understand patterns
Paste Twilio JSON, script code, or describe the flow you want

πŸ“₯ 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

Server Base URL

This URL is used by Kazoo to reach your IVR server. Set it in Settings β†’ Server Settings.

πŸ“Š Today's Stats
0
Calls Today
0
Active Now
0
Peak Concurrent
0
Avg Steps
Avg Response: 0ms
Last Call: --
Errors: 0
🎯 Flow Hits Today
No data yet
🟒 Active Calls
No active calls
🚨 Error Log
No errors
0 entries
πŸ“‘
Loading call logs...

🌐 API Endpoints

CRM API integration health and usage dashboard

-
Total Endpoints
-
Used in Flows
-
Orphaned
-
Local Handlers
πŸ“ API Groups
⚠️ Orphaned Endpoints
🌐

Select an endpoint group or endpoint to view details

🌐 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.

☁️ Google Cloud TTS Settings

Configure Google Cloud Text-to-Speech API credentials and voice settings.

No file uploaded

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 Pronunciation Mapping

Map words to TTS-friendly pronunciations. Example: "Avas" β†’ "Ayvas" so TTS pronounces it correctly.

Current Mappings:
Click "Refresh" to load mappings

πŸ“¦ TTS Cache & Hash Registry

Monitor TTS caching and hash registry. Hash registry maps clean URLs to text.

πŸ”— Hash Registry
--
Registered Hashes
--
Max Capacity
🎡 Audio Cache
--
Hit Rate
--
Entries
--
Hits
--
Misses
--
Memory
--
Bytes Saved
--
Evictions
Recent Cache Entries:
Click "Refresh Stats" to load entries

πŸ”’ DTMF Settings

Configure timing for DTMF digit collection. Other settings (max digits, timeout) are defined per-node in the DSL.

Time between key presses before input is accepted. Increase if callers need more time to type order numbers or zip codes.

πŸ“₯ 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

Standard Fields (every request)
Optional Fields (after certain actions)
Always included:
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
// In your DSL flow, branch based on caller:
{
"type": "branch",
"input": "{{caller_id}}",
"branches": {
"+15551234567": "vip_greeting",
"_default": "standard_greeting"
}
}

πŸ”€ 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.

The OSTI server receives Kazoo pivot redirects, streams audio, races DTMF vs speech, and returns results.
Template URL OSTI uses to return results. Use {session_id} placeholder.
Confidence score (0-1) required to accept speech intent
How long OSTI listens for speech
WebSocket URL for Kazoo to stream call audio to OSTI
πŸ“‹ OSTI Redirect Parameters
Parameters sent TO OSTI:
session_id
- Current call session ID
return_url
- URL to redirect back with results
prompt_url
- TTS audio URL for speech prompt
dtmf_prompt_url
- TTS audio URL for DTMF prompt
intents
- JSON: {key: {dtmf:["1"], phrases:[...]}}
threshold
- Confidence threshold
timeout
- Speech timeout in ms
session_vars
- Base64 encoded session variables
flow_id
- Current flow ID
node_id
- Current node ID
Parameters returned FROM OSTI:
Digits
- Matched DTMF digit (for DSL compatibility)
source
- "osti" or "dtmf"
intent
- Intent key if from speech
confidence
- Match confidence (0-1)
transcript
- What caller said
session_id
- Session ID (echoed back)

πŸ“‘ Real-time WebSocket

Enable WebSocket event broadcasting for real-time dashboards. When disabled, there is zero performance overhead on the IVR engine.

When enabled:
β€’ WebSocket endpoint: ws://host/ws/realtime?channels=stats,calls,all
β€’ REST API: GET /api/realtime/summary
β€’ Events published for: call start/end, flow changes, node execution
Use for external dashboards that need real-time call counts.
Status: Checking...

πŸ“± Twilio SMS

Configure Twilio SMS for sending text messages from IVR flows. Used for order confirmations, delivery updates, and customer support links.

Checking SMS status...
Your Twilio Account SID from the console
Keep this secret - used for API authentication
Messaging Service for automatic number selection

πŸ“‹ Current Configuration

Showing: Last saved configuration


                    
πŸ€–

AI Website Chatbot

This is an AI-powered chatbot that automatically learns from your website. It crawls your pages, understands the content, and answers customer questions naturally.

πŸ›’ Sales Assistant
Helps customers browse products, get recommendations, and learn about your offerings.
πŸ“‹ Policy Assistant
Answers questions about shipping, returns, FAQs, and company policies.
πŸ“– How does it work?
CrawlAndExtract β†’ AgentDecision β†’ DraftAnswer
       β†‘                  β”‚
       β””──── explore β”€β”€β”€β”€β”€β”˜
  1. Crawl: Fetches and extracts text from your website pages
  2. Decide: AI determines if it has enough info or needs to explore more
  3. Answer: Generates a helpful response based on what it learned
Powered by Telephone.org AI - intelligent website crawling and Google Gemini for AI responses.

βš™οΈ Global AI Settings

These settings apply to all AI Chat profiles. Per-profile settings are in Profile Manager.

🌟 Gemini (Google)

πŸ€– OpenAI

πŸ’‘ Tip: Each profile can choose which LLM provider to use (Gemini or OpenAI). Configure both here, then select per-profile in Profile Manager.

RAG Mode: For large sites, enable RAG mode in Profile Manager. It chunks content into a vector database for better retrieval.

πŸ”‘ API Key Validation

Test your API keys to make sure they're working correctly.

Click a test button to validate your API key...
Gemini: Loading...
OpenAI: Loading...

🧹 Content Processing Rulesets

Configurable Rules System

Rulesets define what patterns to match/remove. Domain assignments define which domains get which rulesets. This allows full customization without code changes.

πŸ“‹ Available Rulesets

Loading rulesets...

πŸ”— Domain Assignments

Loading domain assignments...

βž• Add Domain Assignment

Regex tips: Use \\. for dots, (a|b) for alternatives. Example: shop\\.(com|net)

πŸ“¦ Page Cache

Cache crawled pages to avoid re-fetching. Dramatically improves response time for repeat questions.

Pages re-crawled after this time
Oldest removed when exceeded
⚠️ If prices seem wrong: Clear ALL to remove old cached content that was crawled before sanitization rules were added.
Click "Refresh Stats" to see cache status...

πŸ—‚οΈ Vector Store

Persistent vector database for Indexed mode. Stores embeddings of crawled content for semantic search. Grows over time as you use the chatbot.

Relative to project root. Keep outside zip for persistence.
Sentence transformer model
Click "Refresh Stats" to see vector store status...
πŸ’‘ How it works: When a profile uses Indexed mode, crawled pages are chunked and stored as vector embeddings. When you ask a question, only the most relevant chunks are retrieved and sent to the LLM. The index persists between sessions and improves over time.

πŸ“ Profile Configuration

Open Profile Manager β†’

Configure individual chatbot profiles (URLs, instructions, crawl settings) in the Profile Manager. Each profile can be either a AI Chat (AI website crawler) or DSL (voice/chat flow) type.

AI Chat Profiles
AI crawls your website to answer questions. Configure start URLs, instructions, and crawl limits.
DSL Profiles
Structured flows for voice/SMS/chat. Uses your existing JSON flow files and interpreter.
πŸ’‘ Tip: Global settings here (API key, model, cache) apply to all AI Chat profiles. Per-profile settings (URLs, instructions) are in Profile Manager.

Test your profiles in the Company Chat interface. Configure profiles in Profile Manager.

πŸ“‹ Current AI Configuration


                    
πŸ“Š
Server Analytics
Mission-Critical Service Monitoring
Loading...

🟒 Health Status

All systems operational

πŸ’Ύ Memory

--
RSS Memory
--%
Of System
Memory Usage 0%
Trend: --

⚑ CPU

--%
CPU Usage
--
Cores
CPU Usage 0%
Trend: --

🧡 Threads & Connections

--
Threads
--
Connections
--
File Desc.
Trend: --

πŸ–₯️ Server Info

--
Uptime
--
Workers
--

πŸ–₯️ System Resources

--
Total RAM
--
Available RAM
--%
RAM Used
--
Disk Free
--%
Disk Used
--
Load (1m)

πŸ”§ Admin Actions

🐍 Python Runtime

--
GC Gen0
--
GC Gen1
--
GC Gen2
--
Py Threads
Object Counts (Top 20)
πŸ’¬

Chat Analytics

Real-time session tracking, crawler management, and geographic insights

πŸ“Š Today's Summary

--
Active Sessions
--
Sessions Today
--
Avg Steps/Session
--
Avg API Calls
--
Messages Today
--
Unique IPs

πŸ•·οΈ Web Crawler Management

--
Active Crawlers
--
Available Slots
--
Crawls Today
--
Failed
--
Avg Wait (s)
Active Crawlers Detail
No active crawlers

πŸ—ΊοΈ Geographic Distribution

0 active sessions with location

Top Countries

--

Top Cities

--

πŸ“‹ Active Sessions

Session Tenant Profile Duration Steps API Location Current Node
No active sessions

πŸ“ Session Logs

Select a date and click Load to view session logs
Last updated: --
Copied!