Case study · Real estate CRM on Odoo

When the CRM adapts to the agency. Not the other way around.

A system built on Odoo to centralize properties, clients, demand, visits and operations — automating the work that normally depends on the team.

40K+

Properties managed

20+

Custom Odoo modules

OdooPythonPostgreSQLAutomationAIAPIs

Real Estate CRM

PropertiesClientsOperationsCalendarVisitsDocumentsWhatsApp

128 results

  • Apartment · North district€ 248,000REF-1042 · 3 bed · 2 bath · 92 m²New
  • Penthouse · City centre€ 195,000REF-2210 · 2 bed · 1 bath · 74 m²Reserved
  • Villa · South district€ 410,000REF-3078 · 4 bed · 3 bath · 180 m²Active

The problem

A generic CRM stores information.

A real-estate business needs a system that understands how it works.

Leads
Properties
Calendar
Portals
Documents
WhatsApp

Generic CRM

Contacts
Records
Data
Data stored

First-contact SLA, follow-up and alerts so an opportunity is never left unattended.

Data inside · operations outside

The kinds of problems this type of system is built to remove:

  • How the CRM solves it

    First-contact SLA

    When a lead is assigned, the CRM starts tracking the first contact in business hours. It can warn before the deadline, mark the SLA as overdue and release the opportunity back to the queue if it remains unattended. Recording the first contact stops the clock.

What it centralizes

The entire operation lives in one system.

Information, people and processes that used to live scattered across tools.

01

Properties

Operational record of the asset

  • Status
  • Price
  • Images
  • Documents
  • Availability

The property record connects data, documents, alerts, matching, visits, portals and operations from a single record.

02

Clients

The complete relationship with each contact

  • Buyer
  • Seller
  • Owner
  • Tenant

Each contact brings together activity, demand, calls, WhatsApp, visits and related operations.

03

Demand

What each buyer or tenant is looking for

  • Area
  • Price
  • Type
  • Bedrooms
  • Surface
  • Financing

The matching engine uses these criteria to find compatible properties automatically.

04

Prospects

Acquisition before the property is listed

The system tracks progress, activity and pending tasks, and helps detect acquisitions that have gone too long without moving forward.

05

Leads

Intake and follow-up of opportunities

Assignment, first contact, response times, activity and alerts help prevent abandoned opportunities.

06

Visits

The full cycle of a visit

The visit stays linked to the property, client, demand, owner, calendar, feedback and any subsequent operation.

07

Operations

The complete commercial closing

Each phase keeps its statuses, tasks, documents and dependencies inside the same process.

08

Documentation

Documents inside the workflow

Requirements, statuses, validations, signature and checklists are part of the operational process.

09

Communication

Conversations inside the client's context

  • WhatsApp
  • Calls
  • Follow-up

Messages and calls stay linked to the contact and their operational context inside the CRM.

10

Calendar

The team's daily operation

  • Tasks
  • Visits
  • Calls
  • Reminders

Dates, owners, deadlines and Google Calendar sync keep activity connected to the CRM.

The information is not only centralized. Each part of the system understands its relationship with the others.

Automation

Work the CRM does on its own.

The system reacts to operational data, states and events to execute work automatically.

Automation engine

Active

01

Automatic matching

Crosses demand and properties and detects matches without manual search.

02

Lead follow-up

The CRM tracks first contact, activity and follow-ups to detect opportunities that need attention.

03

Smart checklists

Requirements update as the system detects that certain steps have already been completed.

04

Alerts & reminders

The CRM detects deadlines, inactivity and pending tasks without relying on the team's memory.

The CRM watches the operation even when nobody is looking at the screen.

05

Operation sync

Relevant events keep the CRM, the calendar and the integrations involved in each process connected.

06

AI-assisted qualification

Conversations and calls can become contacts, demand or structured information inside the CRM.

Automation is not layered on top of the CRM. It is built into how each process works.

Matching

The CRM doesn't just store data. It uses it to find opportunities.

The matching system compares property supply with buyer and renter demand: it evaluates relevant criteria and surfaces compatible opportunities without manual searching.

It works in both directions: from a client toward compatible properties, and from a property toward likely interested parties.

Matching

Demand

Purchase · Home
Area
City centre
Budget
≤ €300,000
Type
Apartment
Bedrooms
3
Surface
≥ 80 m²

Matching

DemandSupply

  • Area
  • Price
  • Type
  • Bedrooms
  • Surface

Compatible properties

3

Compatible criteria

  • Area
  • Price
  • Type
  • Bedrooms
  • Surface

Supply ↔ DemandFinding opportunities no longer depends on someone remembering which client might fit which property.

Integrations

The CRM is part of the agency's ecosystem.

Portals, communication, scheduling and signing connected to the CRM operation.

Portals

Idealista

Property portal

CRM → Idealista
  • Publish
  • Update
  • Withdraw

The property record can manage its portal publication without manually entering the same information again.

Fotocasa

Portal + lead intake

CRM ↔ Fotocasa
  • Publishing
  • Updates
  • Leads

The CRM connects property management with the portal and can bring leads received from Fotocasa into the operational workflow.

MLS

Real-estate network

CRM ↔ MLS
  • Publishing
  • Synchronization

Properties can participate in the connected MLS workflow directly from the system.

CRM system

System connected

  • Property updated
  • Message received
  • Visit synchronized

Communication

WhatsApp

Communication

WhatsApp → CRM
  • Messages
  • Context
  • Follow-up

Messages remain linked to the contact and operational context so the conversation becomes part of the CRM history.

Operation

Google Calendar

Connected calendar

CRM ↔ Google Calendar
  • Tasks
  • Visits
  • Calls

Tasks, visits and call-backs can stay connected with Google Calendar so the external schedule and the CRM record do not live separately.

Odoo Sign

Integrated signing

CRM → Signing → CRM
  • Documents
  • Signing
  • Status

Signing becomes part of the document workflow, keeping the document and its status inside the CRM process.

Portals · Communication · Scheduling · SigningThe CRM does not replace the tools already used in the operation. It connects them.

Odoo engineering

Odoo as the base. The client's operation as the design.

In this project we started from Odoo's infrastructure, then adapted models, logic, automation and interface until the system worked the way the company works.

System architecture

20+Custom Odoo modulesOdoo · Python · PostgreSQL · OWL · APIs

06

Real-estate operation

Result

The business process the system is designed around.

  1. Clients
  2. Properties
  3. Demand
  4. Visits
  5. Operations
  6. Documentation
05

Custom interface

OWL

When the standard interface does not fit the team's work, we build dedicated surfaces for that operation.

  • Dashboards
  • Property detail
  • Matching
  • Operations
  • Navigation
  • Work surfaces
04

Automation

System

Events, rules and actions the system runs on its own on top of the business logic.

  • Matching
  • Alerts
  • Follow-ups
  • Checklists
  • Synchronization

Event → rule → action

EventRuleAction
03

Business logic

Python

Rules, states and validations turn the company's real process into software behaviour.

  • States
  • Rules
  • Validations
  • Assignments
  • Dependencies
Document approvedRule metChecklist updatedProcess continues
02

Data models

Models

The data model represents how the real-estate operation actually works.

ProspectPropertyDemandVisitOperationDocument
01

Platform foundation

Base

Starting infrastructure in this project.

OdooPlatform foundation
  • ORM
  • Users
  • Permissions
  • Modules
  • Shared services
  • PostgreSQL

The platform is an architectural decision, not a limitation.

When a platform such as Odoo provides a useful foundation, we build on top of it. When the product requires greater control, independence or a specific architecture, we design and build the system from scratch with its own architecture.

Business processArchitectural decision

Platform-based

Odoo

  • Adapted models
  • Custom business logic
  • Automation
  • Custom UI
  • Integrations

Custom system

Built from scratch

  • Own architecture
  • Own backend
  • Own data model
  • APIs / services
  • Infrastructure
Custom software around the operation

We don't start with the platform. We start with the operation.On Odoo when it adds value. From scratch when the system needs its own architecture.

Does your CRM not fit your operation?

You don't need to change how your company works to fit the software.

We can design the system around your processes, automations and integrations.