Projects

AdUnity

Multi-Tenant CRM & AI Call Analytics Platform

AI / CRM2023Shipped
Domain
Real Estate CRM
AI
AssemblyAI
Call Alerts
Real-Time
Lead Dedup
Automated

Problem

Real-estate sales teams juggle leads across multiple channels and vendors, and the same prospect frequently gets logged twice by different agents. Meanwhile calls happen and the useful information, what the client actually wants, how the call went: lives only in an agent's memory unless someone manually writes it up. Every tenant (agency/team) needed strict data isolation, since agencies compete with each other on the same platform.

Architecture

Tenant-scoped CRM core: leads, site-visit schedules, and team performance analytics are all filtered through a tenant boundary enforced at the query layer. Communication utilities (Aloha, Knowlarity) provide click-to-call directly from a lead record, and every recorded call is sent to AssemblyAI for automated transcription and sentiment analysis, turning a phone call into searchable, structured data attached to the lead. Incoming calls trigger real-time alerts to the owning agent over Socket.IO so a call is never missed while it's happening. A duplicate-detection pass runs against new leads on ingestion, matching on phone/contact signals: to stop the same prospect from being worked twice, and a lead-expiry job automatically escalates or closes leads that go stale past a configurable window.

Trade-offs

Running sentiment analysis and transcription on every call adds cost and latency versus only transcribing on-demand, but on-demand meant most calls never got transcribed at all because agents rarely went back to request it, defaulting to always-on made the data actually useful. Duplicate detection is a precision/recall tradeoff: too aggressive and it merges genuinely distinct prospects, too lenient and duplicates slip through, we tuned matching to favor fewer false merges since incorrectly merging two leads is harder to undo than missing a duplicate.