VectorLead
Inbound Meta leads called within a minute by a voice agent that qualifies in conversation, scores the outcome and routes it onward. Built so the calling provider can be swapped without the pipeline noticing.
The problem
- Status
- Live
- Channel
- Outbound PSTN over SIP
- Providers
- Retell AI, LiveKit, Vapi
- Role
- Sole engineer, full stack
Paid social produces leads faster than a sales team can triage them, so the good ones sit in a queue behind the noise and go cold. Speed to first contact is the single strongest predictor of whether a lead converts, and it is the thing manual triage is worst at.
VectorLead closes that gap by calling every lead automatically, holding a real qualifying conversation, and handing the sales team a scored lead with the reasoning attached rather than a number from a black box.
Architecture
The three conversation providers implement one interface. Choosing between them is configuration, and an unconfigured provider degrades rather than breaking the pipeline.
Decisions worth defending
The provider is an implementation detail
Telephony pricing and quality move quarterly. Putting the calling provider behind an interface means switching is a benchmark and a config change rather than a rewrite, and the pipeline, scoring and storage never learn which one is in use.
Completion has to be idempotent
Two things can report that a call finished: the platform's own room-finished event and the agent's callback. They can both arrive, and out of order. Correlating on a call identifier and making completion a no-op the second time is what stops one conversation becoming two records and two follow-ups.
Scores carry their reasoning
A score with no explanation gets ignored by the sales team within a week, and the investment is wasted. Every result includes the two or three reasons behind it in plain language, so the rep opens the call already knowing the angle.
Prompt changes ship as pinned versions, not edits
A live voice agent is the worst place to test a prompt. Every call pins an explicit agent version, and traffic splits deterministically between a control and a candidate, so a change can be measured on real calls and rolled back by configuration. Comparison fails loudly if any single scenario regressed, even when the averages improved.
Missing configuration degrades, never breaks
With no provider credentials the system falls back through a defined chain and finally to a mock path. Development and testing work without a telephony account, which is the difference between a system people can contribute to and one only its author can run.
Stack
Application
- Next.js, API routes
- Supabase, with in-memory fallback
- Meta OAuth
- Analytics endpoints
Voice
- Retell AI over a Twilio elastic SIP trunk
- Agent version pinning per call
- LiveKit and Vapi as alternate providers
- Raw-body HMAC webhook verification
Intelligence
- Transcript scoring
- Explanations in plain language
- Rules plus model hybrid
Delivery
- HubSpot contact and deal sync
- Make.com outcome routing
- Notification routing
- Dashboard and live feed