How a real estate sales team cut proposal turnaround from 2 weeks to 1 minute
A sales team handled more than 3,000 chat conversations a day across WhatsApp, Telegram, and web. Quality slipped as volume grew, and the proposals that actually convert took weeks to assemble by hand. We built Sales Co-Pilot, an AI assistant that reads the live conversation, classifies the client, picks the right corporate scenario, and hands the manager a ready reply to check and send.
Where the old process broke
Commercial real estate sells through conversation. A client opens a thread with a vague brief, and over dozens of messages the manager has to work out the segment, the budget, the intended use, the timeline, and the real level of intent. At more than 3,000 chats a day, that load hit a ceiling fast. The company had the methodology written down: sales scripts, communication rules, objection handling, property information, and standards for each stage of the funnel. That knowledge sat in documents, and the conversation moved faster than anyone could open them. Managers quoted outdated pricing, skipped key script steps, and fell back on generic replies. Requirements mentioned early in a thread got lost by the end of it. Personalized commercial proposals took two weeks, because each one meant assembling CRM data by hand, so most clients received a generic deck instead of an offer built around their brief.
Sales Co-Pilot, an AI assistant for property sales conversations
The system reads the manager's live messenger threads, works out where the client stands, and suggests the next move from the company's own sales methodology. The manager keeps control of the dialogue: the assistant proposes a ready answer, and the manager reviews it, edits it, and sends it.
Unified sales inbox
The system collects messages from managers' messenger threads and merges them into a single conversation context. One workspace holds every active conversation with its lead score, client context, and next action, and new messages pass to the AI agent automatically.

Client classification and scenario selection
The agent reads the conversation history and classifies the client by request type, funnel stage, readiness level, and the other parameters the company defines. Based on that class and the context of the conversation, the system selects one of the corporate sales scenarios, each with its own sequence of questions, arguments, and next actions, then turns the live thread into a summary, a next best action, and a suggested reply.

AI-powered client profile
The system extracts and structures the client's requirements straight from the conversation: property type, intended use, budget, area, location, timeline, and other qualification signals.

Tailored property recommendations
From the client profile, the system matches available properties to the stated requirements and the current qualification context, so the manager offers options that fit the brief instead of scrolling the full inventory.

Personalized proposal generation
From the client profile and the selected options, the system produces a personalized commercial proposal in one minute, built to the company's approved templates and brand style.

The proposal the client receives
The PDF answers the client's specific brief with relevant properties, exact monthly pricing, the reasoning behind each match, and clear next steps.


Sales Co-Pilot inside the CRM
A Chrome extension brings prioritized conversations, context-aware suggested replies, and the structured client card into the CRM the manager already works in, so the assistance arrives without switching windows.

The numbers after the breakthrough
The company's methodology, running in production
Any team can point a chatbot at a sales thread. The defensible part is what the assistant knows about this company.
Proprietary methodology, encoded
The scenarios run on the company's own scripts, communication rules, and standards, refined over years of closed deals. A competitor with the same models still lacks the playbook that makes the suggestions worth following.
Accuracy rules on real property data
The system answers from the company's live property feed under strict rules on numbers, so prices and areas come from the source rather than from a model's imagination.
Institutional memory that compounds
Every conversation, classification, and outcome adds to a record of how this company actually sells. Knowledge that used to leave with a departing top performer now stays inside the system.
Shipped in two layers, now in production
moat8 built both layers and handed them over. They run inside the team's daily workflow, and managers keep the final say on every message that goes out.
The message pipeline across every messenger thread, unified conversation context, and the classification and scenario layer — so a manager opens a chat and already sees who the client is, where they are in the funnel, and what to say next.
Retrieval over the company's knowledge base and live property data, requirement extraction and matching, and the proposal generation service — turning two weeks of manual assembly into a personalized PDF in about a minute.
System components enabled
What it runs on
A production stack built for uneven message volume, multi-step reasoning, and for answers a sales team can trust.
Messenger traffic arrives in bursts, and processing one message means a chain of LLM calls that runs for tens of seconds. Kafka separates intake from processing, so webhooks land instantly and retries plus a dead-letter queue keep every client message safe. PostgreSQL holds dialogue state, MinIO stores the generated PDFs, and Traefik terminates TLS. GitHub Actions builds and deploys the Docker Compose stack through a self-hosted runner.
A consultant works in two places at once: a dedicated web app and the CRM window. The web app lists active chats and streams the suggested reply live over WebSocket. The Chrome extension puts the same suggestions inside the CRM the consultant already uses, and a copy button drops the reply into the messenger in seconds.
A property sales conversation is a multi-step scenario: classify the client, check lead uniqueness in the CRM, run the agency's scripts, answer from the knowledge base, and move toward a meeting. LangGraph models that as a state graph with persistent state per chat, so a dialogue resumes exactly where it stopped. GPT-4.1 does the reasoning and writes the reply, while GPT-4.1-nano handles retrieval over the knowledge base. Embeddings run in Azure OpenAI, and RAG with strict accuracy rules keeps prices and areas exact.
Client messages from WhatsApp and Telegram flow through the gateway into the CRM, then reach the system by webhook. The CRM supplies the client card, the deals, and a uniqueness check by phone number. The proposal service pulls live pricing, layouts, and availability from the developer feed and renders a branded PDF, so the consultant receives a finished proposal with no manual assembly.






