Skip to content

Voice Agent

The Hadar voice agent answers your virtual number, qualifies the caller against your playbook, and writes a structured transcript into the lead timeline — or places an outbound call from any lead detail page when you click Call lead. To see it end-to-end before you wire it into your own workspace, book a 20-minute walkthrough— we'll place a live call to your phone so you can hear the round trip exactly as a Dubai prospect would.

Voice is on by default for Growth and Enterprise plans. Starter workspaces can enable it from Settings > Plan with a one-click upgrade.

How the pipeline works

Hadar uses Vapi as the realtime orchestrator (SIP trunking, turn detection, streaming STT, latency budget under 800ms) and ElevenLabsfor text-to-speech. Inbound: caller dials your virtual number → Vapi handles the SIP leg → speech is transcribed in chunks → Hadar's reasoning layer drafts a response against your playbook and CRM context → ElevenLabs streams the reply audio back. Outbound calls run the same pipeline in reverse, initiated by a server-mediated handshake — the browser never receives the provider keys.

Every call carries a trace_id end-to-end. If anything goes wrong, that ID is the fastest way for support to find the exact span across Vapi, ElevenLabs, your reasoning run, and the timeline write.

1. Enable voice in your workspace

Go to Settings > Agents > Voice and toggle Voice agent enabled. Confirm the virtual number country (the UAE is the default) and the primary language. Hadar provisions a number and stores the provider mapping in tenant_voice_config. Provisioning takes under two minutes; failures roll back cleanly without leaving a half-configured tenant.

2. Pick a voice ID

Hadar ships a curated catalogue of ElevenLabs voices selected for Dubai-market clarity: bilingual Arabic + English with a neutral accent and a calm cadence that holds up over mobile networks. Pick one from Voice ID and click Preview to hear a twelve-second sample reading your greeting. Enterprise tenants can bring their own ElevenLabs voice ID — paste it into the same field and Hadar will validate it against your ElevenLabs workspace.

3. Test your mic and the round trip

Before going live, click Place test call. Hadar dials the phone number on your operator profile, the agent reads your greeting, listens for a reply, and writes the transcript to your test timeline. The same screen exposes the mic test on the browser side — useful when an agent is troubleshooting headset issues. A green round-trip means SIP, STT, reasoning, and TTS are all healthy.

4. Configure inbound call handling

  • Greeting:a one-sentence opener. The agent substitutes the caller's name when their number matches an existing lead.
  • Qualification script: the playbook that gates an agent transfer. Defaults to budget (AED), area, timeline, and bedrooms — edit for off-plan, secondary, or commercial.
  • Handoff target: route qualified calls to a human agent (SIP) or a phone number, with fallback to voicemail after a configurable ring timeout.
  • Quiet hours: per-tenant inbound and outbound windows. Defaults block outbound calls outside 09:00–20:00 GST.

5. Place an outbound call

From any lead detail page click Call lead. Hadar initiates the outbound call through a server-mediated handshake and streams the audio to the same voice pipeline used for inbound. Outbound calls respect the lead's timezone preference, your tenant quiet hours, and the UAE TRA do-not-call rules.

6. Transcripts, timeline, and search

Every call writes a voice_call record with the bidirectional transcript, sentiment, intent classification, and an AI-generated summary. Transcripts are searchable from the lead timeline and from the global search bar. The summary is what shows up on weekly reports and on the lead score — the full transcript is one click away.

Pricing — the per-minute cost model

Voice is metered per minute on a unit-economics basis. Every plan includes a monthly bundle (Starter 60 / Growth 600 / Enterprise negotiated) and overage is billed per call-minute at the published rate, rounded up to the nearest second internally and shown as decimal-minutes on the invoice. Every call's cost is visible in the lead timeline immediately after it ends — no surprise reconciliation at month-end. A server-side cost ceiling terminates any call that would exceed your daily spend cap and logs a voice_call.budget_exceeded event.

Recording retention — PDPL-aligned

Audio recordings and transcripts are retained for 30 days by default across all tiers. Enterprise tenants can extend to twelve months or opt out of audio retention entirely (the transcript and summary still persist, since they are derived records used to operate the CRM). Retention controls live under Settings > Compliance > Voice Retention. The default aligns with UAE Federal Decree-Law No. 45 of 2021 on the Protection of Personal Data (PDPL): minimum data, defined purpose, bounded retention, documented in your Privacy Notice. Full details are in the Privacy Notice.

Opt-out flow

Hadar respects three opt-out signals. (1) The caller can say “stop calling me” or “do not call” in any supported language — the agent confirms verbally, marks the lead as do_not_contact_voice = true, and ends the call. (2) The caller can press 9 during the greeting to be removed without speaking. (3) Operators can flip the same flag from the lead detail page. Once set, the flag blocks every outbound call attempt at the server boundary; the UI hides the Call lead button entirely on opted-out leads.

Limits and safeguards

  • Per-tenant concurrent call cap — Starter 2 / Growth 10 / Enterprise on request.
  • Per-call duration cap (default 12 minutes) and per-day spend cap.
  • Server-side cost ceiling — call is terminated and logged if exceeded.
  • All outbound numbers must consent under the UAE TRA do-not-call rules.
  • PII redaction on transcripts can be enabled per tenant — masks card numbers, Emirates ID formats, and IBANs before persistence.

Troubleshooting common issues

  • “The voice cuts out mid-sentence.” Almost always a caller-side network issue. Check the voice_call record for jitter_ms and packet_loss_pct; values above 80ms / 3% are the usual culprit.
  • “The agent ignored the playbook.” Open the transcript and check the first three turns. Greeting too long? Playbook missing the slot the caller answered? Update the playbook and replay the test call.
  • “Outbound call won't connect.” The lead's do_not_contact_voice flag or your quiet hours window is the most common cause. Check the lead timeline for a voice_call.blocked event with the reason.
  • Platform-wide failure. Check the status page first. If the status page is clean and the voice agent is unreachable, email support@hadar-ai.com with the trace_id from any recent failed call. We respond inside the SLA window.

Limitations — honest list

  • Long, accented monologues degrade transcription quality. The agent does best with conversational turns under fifteen seconds.
  • Code-switching mid-sentence between Arabic and English works, but rapid alternation (every two words) reduces transcript accuracy.
  • The agent does not yet take payment over the phone. Send a Stripe Checkout link via WhatsApp at the end of the call instead.
  • Video-call use cases (Zoom, Google Meet) are out of scope. Hadar voice is a phone-call surface only.