AI Sales Agent For A Real Estate Agency In Dubai
Introduction
While working on this project, we ensured the AI agent was more contextually aware, could handle objections, and was capable of learning from human feedback, allowing us to help my client increase their lead qualification rate.
Client Background
For this project, our client was a mid-sized real estate agency in Dubai with a dedicated sales and telemarketing team that managed hundreds of property leads on a daily basis. The existing AI caller our client had was capable enough of handling basic conversations, but it lacked adaptability and repeated generic responses.
Apart from that, it couldn’t recall past objections and didn’t provide insight into what was working or not. For this setup, our client had:
- Twilio for voice calls
- GoHighLevel (GHL) CRM for lead management
- Manual dashboards for tracking performance
Challenges
To help our client achieve their objective, we had to modernize this setup by introducing the LLM-powered memory, consistent feedback loops, and analytics. However, while doing this, we had to ensure that the overall build was simple, cost-efficient, and could easily be operated by non-technical teams. While working on this project, we faced multiple challenges that included:
- AI agents frequently fail because of poor object handling.
- System lacked a memory layer, meaning that every call started from scratch.
- Manual quality assurance drained human agents with multiple hours of work.
- Structured data needed to train or improve future prompts was not available.
System Design
Given what our client wanted to achieve, we designed the system in multiple components that include:
Transcript Ingestion
For this component, we ensured that the n8n webhook captures each call transcript and metadata and stores it in Supabase for structured access.
Summarize and Embed
In this phase of the project, we used Node.js alongside GPT-4 to summarize calls and embeddings that were generated and stored in pgvector inside Supabase.
Retrieval and Prompt Injection
For this part of the project, we set up the AI agent to fetch past objections and how they were dealt with, and that it could inject them into the call prompts for real-time adaptability.
Prompt Engineering
As far as engineering the prompts is concerned, we made modular prompt templates with introductions, qualifications, objection handling, and closing. Apart from that, we also added guardrails for a professional tone, compliance, and handoff triggers.
Manual Feedback Loop
For this stage of the project, we made sure that human agents could tag transcripts and share any positive or negative feedback, and that it was stored and weighted higher in future retrievals.
Dashboard
For the dashboard, we used both Supabase and Metabase and displayed various metrics like conversion percentage, objection trends, and per-agent performance. Apart from that, we also include a coach console, allowing agents to search transcripts, view tactics, and export data.
Development Process
As far as the development process is concerned, we started out by reviewing the existing agent’s call transcripts, CRM data flow, and voice integrations. As a result of reviewing the material beforehand, we were able to identify various aspects of the system as top priorities that had to be improved. A few common examples of these include missing memory, limited prompt flexibility, and weak reporting.
After that, we configured Supabase and n8n automations for transcript capture and data ingestion, and once that was done, we moved on to developing the summarization and embedding service in Node.js/TypeScript and integrated it with Supabase. Once that was done, we made modular prompts for dynamic injection that functioned based on retrieved embeddings. After completing this, we moved on to building a lightweight Metabase dashboard that was connected to Supabase for live KPIs and ensured that the dashboard was added to the internal CRM for direct access.
Once all this was set up, we ran multiple test calls to verify the retrieval accuracy, tone control, and voice flow. In addition, we added manual tagging within the dashboard to loop human corrections back into the model as part of my testing protocol. Once this was done, we deployed the updated agent to a small subset of leads for two weeks and compared the baseline performance against the new AI system.
Conclusion
This upgrade transformed the AI caller from a static script reader into a self-improving, data-driven assistant. By combining retrieval-augmented memory, human feedback loops, and live dashboards, the client gained a scalable qualification engine that continuously learns from every conversation and lifts conversions, which ultimately helps them reduce manual work and give the sales team actionable intelligence on what truly drives deals.
Launch and Results
Within 30 days of pilot testing, the system delivered measurable gains that include:
- +3.4% increase in qualification rate.
- 42% faster response turnaround due to retrieval-based objection handling.
- 60% reduction in human QA time via auto-summarized transcripts.
- Dashboard adoption by 100% of the sales team within the first week.
- New objection insights helped revise call scripts, improving agent coaching.
Increase in qualification rate.
Faster response turnaround due to retrieval-based objection handling.
Reduction in human QA time via auto-summarized transcripts.
Dashboard adoption rate by the sales team