Lead qualification
Oriki Homes: Real Estate Speed-to-Lead Agent
An AI assistant, Joy, who answers a Nigerian property enquiry in under a minute on WhatsApp or by live voice, qualifies the buyer against a tested scoring rubric, and alerts a human the moment a hot lead appears.
01 / THE PROBLEM
Why this matters.
Leads contacted within five minutes are far more likely to be reached and to qualify than leads contacted after thirty, yet first responses are commonly measured in hours, and nobody answers at 2am, which is exactly when diaspora buyers are awake. Nigerian buyers live on WhatsApp, pay on instalment plans, and worry most about title documents and fraud.
02 / THE DIRECTION
The solution.
Joy reaches every enquiry on the channel the lead chose: WhatsApp, or live voice on the website. She qualifies one question at a time (land or house, location, budget in naira, outright or payment plan, timeline, Nigeria or diaspora, who else decides) and passes the answers to a deterministic scoring function in n8n. Hot leads trigger an instant Telegram alert to a human; warm leads are offered a site or virtual inspection; cold leads go to nurture. Every step lands in a lead table.
My role.
Researched the speed-to-lead market, then designed and built the agent, the scoring rubric and its tests, the n8n workflows, the signature verification, the WhatsApp and browser-voice channels, and the Oriki Homes site. Oriki Homes is fictional; property images are AI-generated and no real listings or customer data are used.
03 / ARCHITECTURE
How the pieces connect.
System flow
- 01Website enquiry (fictional developer, Oriki Homes)
- 02WhatsApp or live voice in under a minute
- 03One-question-at-a-time qualification
- 04Deterministic score and tier in n8n
- 05Signed post-call report
- 06Human alert · inspection · nurture
04 / ENGINEERING DECISIONS
Designed with intent.
- Score in code, not by model judgement. The same answers always give the same tier, and every score stores its reasons.
- Make WhatsApp the default and never place a phone call without explicit consent.
- Match the WhatsApp conversation to the web enquiry with a reference code in the pre-filled first message, falling back to the phone number.
- Verify every post-call report with an HMAC signature and reject forged or unsigned ones.
- Joy states she is an AI, never takes payment, and never guarantees a title or a return. “Stop contacting me” becomes a do-not-contact flag.
- Treat the public voice agent as untrusted: an allowlist of sites, concurrency and daily caps, and a five-minute limit per conversation.
05 / EVALUATION APPROACH
What needs to hold true.
- Scoring rubric covered by an 8-case test suite, including Nigerian payment types and hard disqualifiers.
- A real WhatsApp conversation ran end to end: scored hot (97), matched to its web enquiry, signed report verified, Telegram alert delivered.
- A forged and an unsigned post-call report were both rejected on the live workflow; a correctly signed one was accepted.
- A tool call without the shared secret is refused with 401.
- Not yet verified: phone calls and live transfer (needs a paid telephony account), WhatsApp voice calls (Meta requires a verified 1,000-conversation tier, and business-initiated calls to Nigerian numbers are not permitted), and live calendar booking.
Technology direction.
Challenges & tradeoffs
- n8n Cloud blocks the crypto module in Code nodes, so the first signature check silently accepted forged requests. It was caught by testing with a forged request and moved to the Crypto node.
- Inbound WhatsApp conversations do not carry custom variables, so the agent crashed on greeting until lead context moved to a reference code.
- WhatsApp calling is gated by Meta tiers and country rules, so voice moved to the browser for the demo.
Results
- A working WhatsApp and web-voice speed-to-lead prototype for a fictional Nigerian developer, verified end to end on a real conversation.
- Every lead, score, outcome and transcript is recorded; hot leads reach a human through an instant alert.
Lessons learned
- Test the unhappy path on the live system. The forged signature and the real browser submission each exposed a bug the happy-path tests passed.