🎙️ Building a Voice AI agent? Get your prompt reviewed free →
🎙️ Built Agents. Built Prompts. Built chaos? Time for infrastructure. Join Early Access →

Behind the Call: Wirevox

Wirevox AI

An AI receptionist that is honest in language and reliable at capture.

Behind the Call is a series of hands-on teardowns of AI voice platforms. I set up a real agent, place real calls against a scripted probe set, and cross-reference what the agent says against the platform’s own logs, config, and destination systems. Nothing here is inferred from voice behavior alone; every finding below traces to a transcript compared against a prompt, a config screen, or a checked record in a downstream system. This teardown was run on a free beta account with no third-party integrations attached.


Who It’s For

Wirevox sells an inbound AI receptionist for small and mid-market service businesses. Their market is the tireless front desk that captures leads, books appointments, and fires post-call workflows so no call goes to voicemail. Its marketing names real estate, healthcare, law, and home services as core verticals, and its go-to-market leans channel-led: there’s a nascent agency-partner track aimed at resellers who’ll run it under their own brand.

The product is early. One named founder, no public funding or team page, a Calendly link where the “Talk to Sales” button usually goes, and essentially no third-party footprint. That youth is worth stating up front, because Wirevox makes enterprise-grade claims, namely SOC2 and HIPAA compliance, sub-400ms latency, a 100% answer-rate guarantee, 30+ languages, that all sit in tension with the size of the operation behind them. I tested the self-serve free beta, which exposes the Inbound agent type; Outbound and AI Chat are present but greyed out as “coming soon,” as is a separate “Vox” menu item.

Setup Experience

The front door is clean. Google OAuth, then two questions: your industry and your website. I chose Home Services and supplied a fictional house-cleaning business, expecting one or both to shape the agent. Neither does. As you’ll see, the industry selection and the website field reach the agent’s actual configuration not at all. However, they appear to be onboarding segmentation, not agent inputs. That’s the first small gap between what the flow implies and what the platform does with it.

Agent creation runs template → configure → go live. The template step is where Wirevox’s central design decision lives, and it’s an odd one. Rather than pick an industry, you pick a person: a list of 27 named personas, e.g Jake, Sarah, and two dozen others, each with a paragraph of description. The vertical is buried inside the prose. To find the home-services persona I had to read descriptions until one mentioned my trade. Jake’s read: a dispatcher for “HVAC, plumbing, electricians, and cleaners.” It was the only description that named cleaning, so I picked it.

On creation, Wirevox does something most no-code platforms won’t: it shows you the entire system prompt, and it lets you save named versions and revert to any prior one. This is an advanced feature from what I’ve experience thus far in my testing of Voice AI Interfaces. An exposed, editable, version-controlled prompt is the honest opposite of the hollow auto-generated default you find on platforms that hide the artifact from the operator. Credit where it’s due: this is operator-respecting design, and it’s the reason a teardown like this is even possible from the outside.

The configuration surface is competent: General (time zone, model GPT-4o Mini by default), Variables, Call Settings, Language & Voice, Knowledge Base, and Conversation Settings. And Wirevox statically analyzes the prompt: the config flagged five warnings telling me exactly which variables and functions Jake’s prompt references without a destination attached, namely the {{services}} variable and four functions (jobber_create_lead, google_check_availability, google_book_appointment, send_sms_confirmation). That’s real static-analysis craft. Hold onto it; it becomes important later, and not in the way you’d expect.

The First 15 Seconds

Here’s where the persona library’s design decision turns into a problem. Jake’s default variables aren’t a blank slate waiting for my business. Instead they’re the template’s own dummy data, pre-filled and repair-flavored. The business name defaults to “ProServ Home Solutions.” The FAQ variable describes an HVAC, plumbing, and electrical shop offering free estimates over $500. Business hours include 24/7 emergency service. I picked Jake for a cleaning company; the config handed me a fictional emergency-trades contractor.

So the first fifteen seconds of every default call are: “Thank you for calling ProServ Home Solutions, this is Jake. Are you calling about an emergency, or scheduling a service?” The persona sold under a description that named cleaners opens by asking the caller whether they have an emergency, ready to triage for gas leaks and burst pipes. The 27-persona picker promises granular vertical coverage; Jake reveals “home services” collapsed to “emergency trades,” with cleaning stapled to the label but absent from the behavior. I do want to credit the opening line. The agent starts by directing and managing the call. There was no generic, “How can I help you?” here.

Call Flow Design

Jake’s prompt is genuinely well-authored for the trade it’s actually built for. It carries a real emergency-vs-standard triage with specific signals (burst pipe, gas smell, sparking wires, sewage backup versus slow drain, faucet drip, quote request). Standard intake captures name, service address, phone, issue description, and residential-vs-commercial before pushing a lead. There’s a booking sub-flow wired to calendar-check, calendar-book, and SMS-confirm functions. And the guardrails are substantive: no pricing without knowledge-base backing, a dispatch-fee objection rebuttal, a competitor-mention deflection, an out-of-area referral, an honest AI disclosure, and a do-not-diagnose rule that keeps the agent out of the technician’s job.

This is not a script-reader. Someone who understands emergency trades wrote this. The trouble is twofold: the knowledge lives in a hand-authored persona file plus four template variables, not in the “native industry knowledge” injected into a voice model that the marketing describes. The model actually running the flow, GPT-4o Mini, is the cheapest option on offer, which shows up under pressure. Both surface in testing below.

What They Do Well

Give Wirevox its due, because several things work and some work well.

Scope and identity discipline are the sturdiest part of the agent. Asked “what’s the weather,” Jake declined cleanly, named what it can help with, and steered back. No hallucinated forecast, no breaking character into a general-purpose chatbot, which is exactly the failure a lot of GPT-wrapped agents fall into. Asked “am I talking to a real person,” it disclosed honestly: an AI dispatch assistant, with human technicians as the actual point of contact. Asked “who is this,” it re-identified and re-anchored. The same model that stumbles elsewhere holds a bright-line refusal reliably.

Graceful handling of missing data. Asked “how much just to come out and look,” Jake faced a gap. The dispatch-fee value isn’t in the configured FAQ, and neither invented a dollar figure nor leaked the literal placeholder. It gave the fee framing without a number and moved on. That restraint is harder to build than it looks.

A native capture safety net. After a standard-intake call, the caller’s details, e.g. name, correct phone, address, tagged to the Jake agent, landed in Wirevox’s own Contacts, marked New. This happened even though no CRM was connected. Callers don’t vanish just because integrations aren’t wired.

Correct dead-air handling. On a silent call, Jake re-prompted at 15 seconds and hung up after 30 seconds of continued silence. No runaway sessions burning metered minutes on an empty line.

Real per-vertical authoring. The personas aren’t noun-swapped clones. Jake assumes Jobber; the healthcare persona (Sarah) assumes Open Dental. The tooling is genuinely vertical-specific, even where the call-flow skeleton is shared. And Jake’s gas-leak instruction to leave the building, call the gas company’s emergency line is correct, liability-aware, life-safety authoring that most auto-generated prompts never reach.

Exposed, editable, version-controlled prompts, plus static binding warnings. Restating this from setup because it’s a real differentiator: an operator can see the artifact, edit it, roll it back, and get told which of its hooks aren’t connected.

Where It Breaks

The failures cluster with striking consistency at one seam: the boundary between what Jake says and what the platform does. Everything the operator-controlled conversation touches is strong. Everything at the execution edge frays.

The runtime narrates live-action success it doesn’t perform and this is the safety-critical one. In two emergency probes (a gas smell; a heating complaint), Jake recited the transfer language: “let me connect you to our emergency dispatch right now,” “I’ll ensure they reach out to you as soon as possible” but the transfer never fired. There is no transfer destination attached, and transfer_call did not execute. A caller reporting a gas leak was told help was being connected when nothing was wired to connect it. Unlike a lead, there is no local safety net that quietly catches an un-executed transfer. This is the most dangerous failure mode in the teardown, and it is fully sourced: the action was promised in the transcript and confirmed absent in execution.

It’s worth being exact here, because two integration misses look similar and are not. On the standard-intake call, Jake said “I’ve got your information logged in our system.” That statement is arguably true: the lead was captured to Wirevox Contacts. It was not pushed to Jobber because jobber_create_lead had no destination attached, which is a consequence of my un-configured test account, not a defect. The defect isn’t a vanished lead. It’s that the agent doesn’t distinguish “saved to our system” from “synced to your CRM,” and, more sharply, that the platform’s caller-facing success language isn’t gated on whether the live action actually completed. The transfer proves the same mechanism on the path where it matters most.

Here’s the detail that turns this from a fresh-account artifact into a genuine platform finding: Wirevox already knew the bindings were empty. The config flagged all five unattached hooks statically. The platform had, in hand, the exact information needed to make Jake hedge, to say “let me take your details, though I should note our dispatch line isn’t connected yet” and it didn’t wire that knowledge into the conversation. The warning lives in the dashboard; it never reaches the call. The platform detects the broken binding and lets the agent confirm the action anyway.

GPT-4o Mini can’t hold the triage line the prompt draws. A caller whose heat was “not really keeping up, pretty cold in here”, which is a textbook STANDARD signal by Jake’s own prompt, which reserves EMERGENCY for “no heat in winter, below freezing”, was escalated straight to emergency dispatch. The prompt drew a careful boundary; the cheapest model erased it. The same model that holds a scope refusal cleanly fails a graded judgment call, which is the predictable cost of running 27 “expert” personas on a Mini.

Persona logic overrides operator config. Asked about coming-out costs, Jake asserted a “standard dispatch fee” but the configured FAQ says “free estimates for jobs over $500.” Jake ran the hardcoded dispatch-fee script and never consulted the variable. An operator who set “free estimates” gets an agent telling callers there’s a fee. Hardcoded persona behavior beats operator configuration, with a real business consequence.

Sequencing and turn-boundary roughness. Even Jake’s good gas-safety line came in the wrong order when it collected name and address before telling the caller to evacuate, and recited “I don’t want to waste any time” immediately before spending a turn taking down details. Elsewhere the call lifecycle is blunt: “Are you still there?” fired after a clean out-of-scope referral where the conversation was simply over, and a completed call didn’t end on Jake’s own “Goodbye,” leading the agent to break character and explain it wasn’t really on a call anymore. And the otherwise-correct silent hangup exits without a word. There is no “I’m sorry, I can’t hear you, I’ll hang up now” which is poor caller experience the operator cannot fix through the prompt, because the timeout fires outside the conversation entirely.

Two headline numbers the platform’s own panel undercuts. The marketing’s “30+ languages” resolves, in the self-serve UI, to a two-option dropdown: English and French. The sub-400ms latency claim sits beside a Response Speed setting whose fastest default is labeled “low, ~1s.” I’ll grant the language limit may be a beta constraint rather than a false claim but the operator-facing surface consistently delivers a smaller, more honest number than the headline.

Design Takeaways

The instructive pattern here is cleaner than a simple pass/fail, and it’s useful to anyone building a voice agent, on Wirevox or anywhere else.

The “from the ground up” pipeline is an orchestration layer, and that’s fine, but the claim isn’t. The voice picker exposes Deepgram, ElevenLabs, and ChatGPT voices (Grok “coming soon”); the STT dropdown offers Deepgram Nova-3, Deepgram Flux, and Gladia; the LLM defaults to GPT-4o Mini. Nobody who engineered a bespoke pipeline hands the operator a Deepgram-vs-Gladia toggle. This is competent orchestration over named third-party providers (a Vapi/Retell-class abstraction) and there’s nothing wrong with that. The marketing’s insistence on a from-scratch pipeline and industry knowledge baked “into the models” is the part that doesn’t survive contact with the config screen.

The real defect is a behavioral-engineering problem, not a broken integration. Attaching Jobber and a transfer number would make the specific calls I ran succeed, but it would not fix the underlying behavior, which is that caller-facing confirmation language is decoupled from execution result. An agent should not tell a caller an action is done, or a handoff is happening, unless the platform can confirm it happened. This is the single highest-leverage fix in the product, and it sits at the craft layer as much as the platform layer: it’s about how the agent is instructed to speak about actions whose outcome it can verify, versus actions it merely attempted. The platforms that get this right treat every live-action confirmation as conditional on a checked result. Wirevox has the raw signal to do this but doesn’t route that signal into the conversation. (The specific behavioral clauses that close this gap are the kind of thing I build with clients rather than publish; the diagnosis is the point here.)

A picker that hides the vertical inside a persona invites exactly the mismatch I hit. Selecting a person rather than a trade, with the industry buried in prose and no filter, is how a cleaning business ends up with an emergency-dispatch agent. If the personas are going to carry this much industry-specific logic, the industry has to be the primary axis of selection and the description has to match the prompt body. Jake’s picker text sold four trades; Jake’s prompt only speaks three.

The cheapest model is a false economy at the judgment boundary. GPT-4o Mini is fine for scope refusals and scripted intake. It is not fine for the graded emergency-vs-standard decision the prompt so carefully specifies. Either the triage logic needs to be simpler and more deterministic, or the boundary calls need a stronger model. Running nuanced triage on a Mini gets you over-escalation, and over-escalating a lukewarm complaint to “emergency dispatch” erodes exactly the trust the persona was built to earn.

Who This Is Right For

Wirevox is a real product with real craft in its operator-facing layer, held back by a runtime that over-promises live actions and a shelf that mislabels what’s on it. Who should look at it:

A good fit for a single-vertical emergency-trades operator, e.g. HVAC, plumbing, electrical, who will complete setup, attach their functions, and take advantage of the exposed, versioned prompt to tune behavior. For that buyer, Jake is genuinely close to what they need, and the editability means the rough edges are addressable. The native Contacts capture, honest AI disclosure, and disciplined scope handling are real assets.

Once again I see great promise here. I especially like the ability to version your prompts and revert to any previous prompt by name. Overall the UI is clean and modern. If they can fix the biggest stumble of not exposing remote call status to the agent, they would immediately have one of my top picks for a AI Voice agent.


Tested on a Wirevox free beta account, self-serve, defaults unchanged except where noted. No third-party integrations were attached; findings that depend on that are flagged as such and kept separate from platform behavior. Marketing claims referenced here were checked against Wirevox’s published materials. Agent behavior is sourced to call transcripts compared against the deployed prompt, the configuration surface, and downstream records.

Leave a Reply 0