Connection Types
Testzilla can reach your agent through four connection types. Each targets a different execution path, so you can verify exactly the surface your users interact with.
Quick comparison
Section titled “Quick comparison”| Connection type | What it tests | Availability | Browser required | Credits per test |
|---|---|---|---|---|
| Phone — Inbound | Your agent receives a call: Testzilla dials in to your agent’s number and runs the tester on the call | Available | No | 40 / call |
| Phone — Outbound | Your agent places a call: Testzilla provisions a dedicated number per test, your agent calls it, a predeployed agent answers, and the transcript is scored via post-call webhook | Coming soon | No | 40 / call + $5/mo per outbound test |
| LLM Chat | Agent’s text LLM directly via the provider’s chat API | Available | No | 1 / round-trip |
| Web Chat | Real chat widget on a live website, driven by a headless browser | Available | Yes | 2 / round-trip |
| Web Voice | Browser WebRTC voice session via the provider’s web-call SDK | Available | Yes | 10 / run |
Phone direction is described from your agent’s (the system under test) perspective: Inbound means your agent answers a call Testzilla places to it; Outbound means your agent dials a number Testzilla provides. Inbound is available today. Outbound is coming soon — the tester does not yet run on the leg your agent calls in to, so it is not usable for testing yet.
Credits are deducted per completed test. If a test cannot start (widget not detected, agent unreachable), no credits are charged.
Phone tests run a real phone call through your configured telephony integration (Retell or VAPI). This is the highest-fidelity path for agents deployed on a phone number: the full voice pipeline — telephony, ASR, LLM, TTS — is exercised exactly as a real caller would experience it.
Call direction is named from your agent’s (the system under test) point of view.
Inbound — your agent receives the call (available today). Testzilla dials in to your agent’s phone number and runs the AI tester on the call. Use this when your agent is deployed on a number that real callers ring, and you want end-to-end telephony coverage: call routing, IVR behaviour, hold music, transfer flows, or anything that depends on the actual phone stack.
Outbound — your agent places the call (coming soon). Outbound works differently from inbound, not just in dial direction. Each outbound test gets its own dedicated phone number (provisioned on test creation, released on archive/delete). Your agent dials that number; the test’s predeployed Testzilla agent answers and runs the call autonomously (Testzilla does not drive it live); then a post-call webhook sends the transcript to Testzilla for evaluation and scoring. This is not yet available. For the full inbound-vs-outbound breakdown, see Phone Testing: Inbound vs Outbound.
What you configure on the channel:
- Provider (Retell or VAPI)
- The agent’s inbound phone number (the number Testzilla dials)
- Provider credentials (API key, agent ID)
Credit cost: 40 credits per call, regardless of duration or number of turns.
LLM Chat
Section titled “LLM Chat”LLM Chat (llmChat) tests your agent’s text LLM directly via the provider’s native chat API — for Retell this is POST /create-chat + POST /create-chat-completion. No browser, no phone, no audio. The AI tester sends messages as text and receives replies as text, turn by turn, up to a configurable maximum.
This is the fastest and cheapest connection type. Use it as a high-frequency sanity check: run LLM Chat tests on every deploy to catch regressions in prompt logic, tool calls, and response content before spending credits on phone or browser tests.
When to use it: You want to verify the agent’s conversational logic, prompt instructions, dynamic variables, or tool responses quickly and cheaply. The agent does not need a phone number. Audio quality, TTS voice, and widget UI are out of scope.
What you configure on the channel:
- Provider (Retell — VAPI text chat is not supported in v1)
- Agent ID (the agent must have chat enabled in the Retell dashboard; voice-only agents will be rejected by
create-chat)
Credit cost: 1 credit per round-trip (one tester message + one agent reply). A 10-turn conversation costs 10 credits.
Web Chat
Section titled “Web Chat”Web Chat (webChat) drives a real chat widget on a live website using a headless browser (Playwright). Testzilla navigates to the URL you specify, detects which chat widget vendor is present, opens the widget, and conducts the conversation by interacting with the actual DOM — the same way a real visitor would.
Widget vendor detection is automatic. Testzilla scores each known vendor against window globals and DOM signatures, then selects the highest-confidence match. Supported vendors with full implementations: Retell, Intercom, Drift, Crisp. Partially scaffolded: Zendesk, Tidio, LiveChat. For any other widget, a heuristic GenericConnector inspects the DOM to locate the input field and message container.
When to use it: Your agent is embedded as a chat widget on your website and you want to test the real end-user experience — widget open/close behaviour, iframe rendering, message display, and the widget’s own UI logic — not just the LLM underneath.
What you configure on the channel:
- The URL of the page hosting the chat widget
- Optionally: a vendor hint (e.g.
retell,intercom) to skip auto-detection - Optionally: a reply timeout (default 30 seconds; widget agents can be slower than direct API calls)
Credit cost: 2 credits per round-trip. A 10-turn conversation costs 20 credits.
Web Voice
Section titled “Web Voice”Web Voice (webVoice) tests a browser-based voice agent through a real WebRTC session — the same path a visitor would use if they clicked a voice button on your website. Testzilla launches a headless Chromium instance, loads the provider’s web-call SDK, establishes a WebRTC call using a just-in-time access token, and conducts the conversation using synthesized tester audio.
The full voice pipeline is exercised: WebRTC media negotiation, the agent’s ASR, LLM, and TTS — in a browser context. This is distinct from a phone call: it validates the web embed rather than telephony.
When to use it: Your agent is deployed as a browser voice widget (e.g. via the Retell web widget) and you want end-to-end coverage of the WebRTC path, including browser media handling, SDK behaviour, and voice quality — not just the LLM.
What you configure on the channel:
- Voice provider — Retell, Vapi, or ElevenLabs. Retell mints the web-call token server-side using
POST /v2/create-web-call; Vapi and ElevenLabs connect the browser SDK directly using the keys you supply. - Voice test mode — SDK (instantiate the provider SDK directly) or Widget (drive the embedded voice widget on the target page)
- Agent ID (used to create the web call session)
- Optionally: sample rate (default 24000 Hz) and TTS voice settings for the tester
Credit cost: 10 credits per run, regardless of call duration.
Choosing a connection type
Section titled “Choosing a connection type”| I want to… | Use |
|---|---|
| Check agent logic on every deploy | LLM Chat |
| Test the exact phone experience end-to-end (agent receives the call) | Phone (Inbound) |
| Verify the chat widget on my website works | Web Chat |
| Verify the voice widget on my website works | Web Voice |
| Catch prompt regressions cheaply | LLM Chat |
| Test IVR routing or call transfer | Phone (Inbound) |
| Test a widget from an unknown vendor | Web Chat (GenericConnector) |