Powered by the Voice Agent on the Vertiqa OS

Answer every call. Even the ones after hours.

Vertiqa's Voice Agent picks up your business line when no one else can — answers in your script, knows who's calling when they're already in your CRM, captures who they are when they're not, and leaves a reviewable transcript of every conversation.

Shipped in v1.23 LiveKit voice agent

The spine of every Vertiqa agent

Every agent runs inside the same system of record — bounded by what it remembers, what it is allowed to do, and what gets written down.

Memory

Knows your business when the phone rings

Each org's Voice Agent runs on a per-org phone number with its own greeting, instructions, pipeline, and owner — and matches the caller against existing Contacts in your CRM before the conversation even starts.

Approval

Stays inside the rules you wrote

The Voice Agent only does what your configured instructions, template variables, and pipeline allow. Anything outside that scope is captured as a transcript for you to review — not improvised by the agent.

Audit

Every call is on record

Every call writes a row to voice_call_logs with the full transcript, captured Contact, channel metadata, and the InboundInquiry that landed in CRM. Nothing happens silently.

What it does

Four concrete behaviors, every one traceable to a shipped v1.23 voice-agent capability — no roadmap features, no aspirational claims.

Picks up your business line — with the greeting and rules you wrote

Vertiqa's Voice Agent answers inbound calls on a phone number assigned to your org, using the greeting, instructions, owner, and pipeline you configured in Settings. Template variables let the same script speak in your team's voice across every call, without you having to be on the line.

Knows the caller before the call ends

If the caller is already in your CRM, Vertiqa's Voice Agent matches them by phone and name before the conversation closes — and if they're not, it captures them as a needs-review Contact with the channel and call metadata preserved as an InboundInquiry. The call lands inside your CRM, not inside a voicemail nobody listens to.

Leaves a transcript of every call — visible from one dashboard

Every inbound call is written to a call log with its transcript, raw call data, and captured Contact. The Voice Agent dashboard at /goals/voice-agent surfaces stats, the call table, and a transcript drawer — so you can read what was said, who it was with, and what happened next, without rebuilding the conversation from memory.

Watched for drift, every day

Vertiqa's Voice Agent runs inside the same RAGAS evaluation framework that scores the rest of Vertiqa's AI surfaces, and behavior anomalies trip a daily alert. When the agent starts answering calls in a way that doesn't match its baseline, you hear about it — you don't discover it months later in a churned account.

What this agent will not do

  • Inbound only. The Voice Agent never dials out. Outbound calls are not a Vertiqa surface today — they're not in the v1.23 release and they're not promised in this page.
  • Stays inside your script. The Voice Agent follows the per-org instructions, greeting, pipeline, and template variables you configured in Settings — it does not improvise off-script and it does not make commitments you haven't authorized.
  • Nothing happens silently. Every call is transcribed and visible in the Voice Agent dashboard, every caller is reconciled to a CRM Contact (created as needs-review if they're new), and every conversation flows into the same Timeline your team already uses for review.

Works with the kernels you already use

The Voice Agent reads and writes through the same Kernel surfaces your team uses — no separate vendor system, no shadow data store.

  • CRM Contacts

    Parallel phone-and-name lookup with an 80% match threshold; unmatched callers are created as needs-review Contacts.

  • InboundInquiry

    Every Voice Agent session lands as a normalized inquiry with channel-specific metadata preserved alongside email and conversion-page inquiries.

  • Voice Agent Settings (per org)

    Phone number, greeting, agent instructions with template variables, pipeline, and owner.

  • Voice Agent dashboard at /goals/voice-agent

    Stats, call table, and a transcript drawer for every inbound call.

  • Kernel API

    Org-by-phone routing, voice settings CRUD, call logs CRUD, and the voice_call activity type that surfaces calls on Contact timelines.

  • Admin panel

    Voice settings and call log access per org, gated by admin permission.

Frequently asked

Where is my data stored?
Inside the same Vertiqa Kernel that powers every other agent and surface in your org. Call logs, transcripts, and the InboundInquiry rows the Voice Agent writes live in your organization's Kernel — not in a separate vendor system. Tenant isolation, org scoping, and permission gates are enforced at the endpoint level for every voice route.
What gets stored when a call comes in?
One row in voice_call_logs per call with the full transcript and raw call data, one InboundInquiry on the channel timeline, and one voice_call Activity on the matched (or freshly created needs-review) Contact in CRM. Stats, the call table, and the transcript drawer all read from these rows.
What if the Voice Agent answers a call wrong or misses something?
Every call is reviewable from the Voice Agent dashboard at /goals/voice-agent — open the transcript drawer to read what was said, correct the Contact match if it was assigned to the wrong record, and follow up from the Contact's timeline. The Voice Agent does not silently 'handle' calls outside the script you configured; out-of-scope conversations are captured for review.
Can I review and correct transcripts before they drive a workflow?
Yes. Transcripts and the captured Contact are visible from the moment the call ends, and the InboundInquiry / Activity rows are the same kind your team already reviews from email and conversion pages. Nothing kicks off an automated downstream action without going through the same Timeline + Approval surfaces every other Vertiqa agent uses.
How does the Voice Agent actually answer the call — and which verticals is this built for?
Inbound calls arrive over SIP and are answered by a LiveKit voice agent (a separate Azure Container App container) talking to OpenAI Realtime, with the per-org instructions, greeting, pipeline, and owner you configured in Settings. It is built for service businesses where after-hours and overflow calls cost real revenue — HVAC and plumbing, exterior services (roofing, landscaping, painting, paving), and equipment-financing brokers — see /hvac, /exterior-services, and /equipment-financing for vertical context.

Built for service businesses with after-hours calls

The Voice Agent is configured for the verticals where missed and overflow calls cost the most — pick your industry to see how the OS wraps around it.

Answer every call. Even the ones after hours.

Book a demo to see the Voice Agent answering on your business line, the call log in CRM, and the transcript drawer on a real org.