CallVitalz — Call intelligence
The phone is your front door. Start measuring it.
CallVitalz captures every inbound call across every location, transcribes and analyses it, and surfaces the appointments booked, the ones missed, and the sentiment behind both — scoped by role, per location, in one dashboard.
The problem
For a multi-location practice, the phone is the highest-intent channel and the least instrumented one. Calls land with a voice agent or a receptionist, recordings sit in a vendor portal nobody opens, and the only signal that reaches management is the appointment that did or didn't appear in the calendar. Which locations miss calls, what callers actually ask for, and where bookings fall apart stay invisible.
What changes
Every call arrives as a record: transcript, sentiment, topics, and action items attached, with recording and transcript stored durably rather than borrowed from a vendor. Location managers see their own numbers, administrators see the estate, and the people who need to follow up get an email with the context already in it.
Built for
What it does
Inside the platform
Multi-source ingestion
Webhook ingestion from voice-agent and telephony sources with HMAC-SHA256 signature verification on every source, so an endpoint can't be spoofed into the dataset.
AI enrichment
Automatic transcription with sentiment, topic extraction, and action items, plus one-click manual re-enrichment when an upstream provider fails a job.
Appointments and reminders
Appointment records derived from calls, including recurring appointments, public share links, and reminder coverage checks over the schedule.
Reporting and dashboards
Dashboard statistics, search across calls, trend reporting, and exports — with date-range scoping that follows the user's role rather than overriding it.
Tenants, locations, numbers
A tenant → location → phone-number model with per-tenant branding, onboarding progress tracking, department and location management, and granular RBAC.
Routed notifications
Branded email notifications with per-location recipients, so a call at one site reaches the people responsible for that site and nobody else.
How it's built
The stack, specifically
No mystery boxes. These are the actual choices behind the platform — the ones that decide how it scales, who can read what, and how quickly it can change.
Frontend
- React + TypeScript + Vite
- Tailwind CSS + Radix UI
- Role and permission contexts, tenant branding, impersonation for support
Backend
- Supabase Edge Functions (Deno/TypeScript)
- Webhook workers for ingestion and AI enrichment
- Domain APIs for calls, reports, search, notifications, RBAC, tenancy
Data & delivery
- Postgres with row-level security as the tenant boundary
- Supabase Storage for recordings and transcripts
- AI transcription and analysis providers for enrichment
- Transactional email for branded notifications
Our role
Built and operated by Narix Labs
Ingestion, enrichment pipeline, multi-tenant data model and RLS, the admin frontend, and the notification system — plus the operational side: migrations, RBAC test suites, audit-log retention, and release verification runbooks.
Verify the webhook, then trust the call
Every inbound source is signature-verified before a record is written. Ingestion that can't be authenticated is rejected rather than stored and sorted out later.
Enrichment is a job, not a hope
Transcription and analysis run as tracked jobs with retry and manual re-run, so a provider outage degrades a record's completeness instead of losing the call.
RBAC tested at the database
Row-level security policies have their own SQL test suites. Access rules are verified where they're enforced, not asserted in the UI layer.
FAQ
CallVitalz questions
Need something like CallVitalz?
Tell us what you're holding — an idea or a codebase — and you'll have a written proposal for the first step within 48 hours.