A real estate agency selling properties and land plots needed leads, clients, properties, deals, and showings in one CRM. Land sold differently: buyers chose plots on a map. We built the real estate CRM in Go and Vue.js with a custom mapping module where each plot is a clickable polygon with its own status.
This project is presented in a generalized form. Some details and identifying elements are intentionally omitted due to confidentiality requirements and NDA restrictions.
Real estate CRM from lead workflows to visual land sales
Leads arrive from the website, phone, email, and messengers and move through the funnel to a deal, with showings, tasks, and reminders in the calendar. For land, agents work on a map: zoom to the territory, click a plot, see its card and whether it is sold or available.
Project Context
Interaction history, statuses, documents, showings, and tasks had to stay attached to the lead, client, property, or deal they belonged to. Land plots needed a separate workflow: selection and sales ran through a map rather than a list of records.
What Was Delivered
CRM for Leads, Clients, and Deals
The platform included a connected CRM layer for managing leads, clients, and deals. It gathered incoming requests from multiple channels and supported the sales funnel from first contact to deal completion.
- lead capture from website, phone, email, messengers, and manual input;
- client profiles with full interaction history;
- sales funnel by deal stage;
- lead and deal statuses;
- comments, notes, and action history;
- follow-up and reminders for leads and deals.
Property Database
A dedicated property layer handled real estate records and matching workflows. The system made it possible to maintain property data, connect properties to clients, and match listings against customer requirements.
- property database with structured parameters;
- linking properties to clients;
- property matching for client requests;
- property filters;
- property records and statuses;
- photos and related files.
Calendars, Showings, and Agency Workflows
The platform included calendar-based workflows for agency operations: showings, meetings, tasks, reminders, and other everyday processes connected to leads, properties, and deals.
- showing calendar;
- meeting calendar;
- task calendar;
- reminders and follow-up;
- control over day-to-day team workflows.
Custom Land Mapping
The mapping module for selling land plots and houses is a visual layer built into the platform rather than an embedded third-party map service.
- map zooming and navigation;
- polygon-based plot visualization;
- clickable land plots;
- plot cards and plot details;
- color-based status highlighting;
- visual indication of sold and available plots;
- administrative control over mapped territories.
Analytics and Reporting
A dedicated analytics layer handled leads, sources, agents, and conversion data. Reports and metrics were important for understanding sales effectiveness and lead processing speed.
- lead reports;
- source analytics;
- agent analytics;
- deal conversion analysis;
- processing speed metrics;
- efficiency indicators and action history.
Automation and Internal Workflows
The platform also automated routine internal workflows, including reminders, follow-up steps, notifications, and other repetitive lead and deal-related operations.
Technology Architecture
The platform was built on a microservice architecture using Go for backend logic and Vue.js for user-facing interfaces. It included a CRM layer, a property management layer, an analytics layer, a mapping module, and admin workflows with role-based access control.
- Go, Vue.js;
- Kubernetes, GitLab CI/CD;
- Redis, RabbitMQ;
- ClickHouse for analytics;
- S3-compatible object storage;
- Prometheus, Grafana, and Loki.
How Redis, RabbitMQ, and ClickHouse Were Used
Redis served as a cache layer for faster CRM workflows, records, filters, and frequently accessed data. RabbitMQ handled background jobs, notifications, follow-up automation, and asynchronous internal events.
ClickHouse was used for analytics, reports, conversion metrics, lead processing speed, agent performance indicators, and other aggregated business data.
Roles, Access, and File Storage
The platform supported role-based access for the agency team. Permissions were applied across CRM workflows, properties, deals, documents, and administrative scenarios.
Photos, files, and related materials for properties and deals were stored in a centralized S3-compatible storage layer, supporting consistent access and controlled file workflows across the platform.
Business Value
Sales, properties, deals, and the agency’s daily coordination moved into one system.
- one connected CRM layer for leads, clients, properties, and deals;
- better visibility into the sales funnel;
- less manual follow-up and task coordination;
- more efficient property matching for client requests;
- centralized storage of documents and related materials;
- clearer analytics for leads, sources, agents, and conversion;
- a visual sales tool for land plots.