Real Estate Module (Immobili)
The Immobili module is a full-featured real estate listing manager for agencies. It supports multi-language content, Strapi CMS synchronization, interactive maps, and an AI-powered user-property matching system.
This module requires the enable_dynamic_entities and enable_immobili feature flags. If you don't see the Immobili section, your administrator hasn't enabled these features.
Property List
Navigate to Immobili from the sidebar to see all listings.
List Columns
| Column | Description |
|---|---|
| Titolo | Property title |
| Codice Interno | Auto-generated reference code (monospace badge) |
| Ultima Modifica | Last modified date and time |
| Stato Immobile | Colored status badge (see below) |
| Stato Pubblicazione | Draft or Published indicator |
| Azioni | Manage and Delete buttons |
A total property count is displayed at the top.
Filtering & Sorting
- Text search — Searches across title, code, date, and status
- Status filter — Dropdown to filter by property status
- Hide Completed — Toggle (on by default) that hides sold, rented, and withdrawn listings
- Sortable columns — Sort preference is remembered across sessions
Creating a New Property
- Click the Nuovo Immobile button
- Fill in the creation dialog:
- Titolo (required) — Property title
- Tipo Annuncio — Sale (
Vendita) or Rent (Affitto) - Prezzo — Asking price (optional)
- Città — City with autocomplete map picker (optional)
- Confirm — A draft is created and you're taken to the detail editor
Deleting a Property
When deleting, you choose between two modes:
| Mode | Effect |
|---|---|
| Local only | Removes from the Flo database, keeps Strapi data |
| Both | Removes from both Flo and Strapi |
Property Status System
Properties follow a lifecycle tracked by colored status badges:
| Status | Color | Meaning |
|---|---|---|
| Available | Green | Open for offers |
| Negotiating | Orange | In active negotiation |
| Reserved | Blue | Reserved by a buyer |
| Under Option | Blue | Option agreement in place |
| Compromised | Dark | Preliminary contract signed |
| Deed Pending | Dark | Awaiting final deed |
| Sold | Red | Sale completed |
| Rented | Red | Rental completed |
| Withdrawn | Gray | Listing removed from market |
When a property reaches a definitive status (Sold, Rented, Withdrawn, Deed Pending, or Compromised), all fields are locked except the status field itself. This prevents accidental edits to completed listings.
Property Detail Editor
Click Manage on any listing to open the detail editor. The editor has three main sections accessible from the navigation tabs:
| Section | Icon | Purpose |
|---|---|---|
| Details | Ad | Public-facing listing data |
| Area Riservata | Lock | Internal/reserved data |
| Matching | Person Search | User preference matching |
Editor Behaviors
- Unsaved changes guard — A browser confirmation prevents accidental navigation away
- Yellow change indicator — Modified fields show a yellow left border
- Slug lock — The URL slug becomes read-only once the property is published
- Multi-language — Non-Italian locales can only edit translatable text fields; numeric and boolean fields are locked with a padlock icon
Details Section
The details section uses an accordion layout (one panel open at a time).
Vetrina & Copertina (Storefront)
The main public listing information:
| Field | Description |
|---|---|
| Slug | URL-friendly identifier (editable only in draft) |
| Codice Interno | Auto-generated reference (read-only) |
| Prezzo | Asking price |
| Tipo Annuncio | Sale or Rent |
| Tipo Proprietà | Apartment, Villa, Studio, Land, Office, etc. |
| Locali | Number of rooms |
| Superficie Abitazione | Living area (m²) |
| Superficie Commerciale | Commercial surface (m²) |
| Bagni | Number of bathrooms |
| Stato | Property status (see status system above) |
| In Evidenza | Mark as featured listing |
| Esclusiva | Exclusive listing flag (requires confirmation dialog) |
Includes a city quick-pick with autocomplete for city, province, and ZIP code.
Storytelling
Rich text editor for the property description. An "AI coming soon" tag indicates upcoming AI-assisted content generation.
Galleria (Gallery)
Unified gallery combining cover photo and public images:
- Max 4 items — First image is the cover photo, items 2–4 are gallery photos
- Upload options — Single or bulk upload (max 5 MB per file)
- Supported formats — Images, video (MP4, WebM, MOV), GIFs
- Each image can have a title and description (translatable per locale)
- Gallery is available only after the first save
Superfici (Surfaces)
Surface detail cards for additional property areas, shown in a 2-column grid:
| Surface Type | Toggle | Fields |
|---|---|---|
| Giardino (Garden) | HaGiardino | Area (m²), Commercial surface |
| Terrazzo (Terrace) | HaTerrazzo | Area, Floor, Commercial surface |
| Balcone (Balcony) | HaBalcone | Area, Floor, Commercial surface |
| Garage | HaGarage | Area, Floor, Commercial surface |
| Cantina (Cellar) | HaCantina | Area, Floor, Commercial surface |
| Soffitta (Attic) | HaSoffitta | Area, Floor, Commercial surface |
Each type has a toggle checkbox — when disabled, the related fields are grayed out. Additional fields include Box Auto, Orientamento (orientation), and Vista (view).
Dettagli Terreno (Land Details)
Shown only for land/lot listings:
- Tipo Terreno — Buildable, agricultural, vineyard, olive grove, forest
- Superficie Terreno / Costruibile — Total and buildable area
- Destinazione Urbanistica — Zoning: residential, commercial, industrial, etc.
- Utilities — Driveway access, water and electricity connections
Caratteristiche (Features)
Technical characteristics in a grid layout:
- Bedrooms, kitchen type, floor level, building floors
- Year of construction (year picker)
- Property condition (new, excellent, good, to renovate, under construction)
- Furnishing level and brightness
Energia (Energy)
Energy efficiency data split into two sub-sections:
General energy:
- Energy class (A4 to G, pending, or exempt)
- IPE index (kWh/m²/year)
- Heating and air conditioning type
- Annual heating costs
Fotovoltaico (Solar):
- Toggle to enable solar panel data
- Power output (kW), installation year, system type
- Energy storage capacity (kWh)
- Annual production (kWh/year)
- Tax incentive details (type, expiry date)
Disabling the solar toggle automatically clears all solar sub-fields.
Spese e Condizioni (Expenses)
- Condominium fees (€/month)
- Deposit amount
- Rent amount and contract type (for rentals)
- Availability date
Comfort e Dotazioni (Amenities)
Boolean checkboxes for: elevator, built-in wardrobe, fireplace, double exposure, fiber optic, jacuzzi, alarm system, armored door, electric gate, video intercom, window type, and TV system.
Area Riservata (Reserved Area)
Internal data visible only to agency staff. Marked with an indigo banner.
Descrizione Interna
Rich text editor for internal notes and comments about the property.
Posizione (Position)
Full address management with an interactive map picker:
- Street address, city, ZIP, province fields
- Click on the map to set GPS coordinates
- Address geocoding support
Dati Catastali (Cadastral Data)
Official registry information: cadastral category, sheet, parcel, sub-unit, urban compliance, cadastral compliance, and certifications.
Planimetria (Floor Plans)
Private floor plan gallery:
- Up to 10 floor plan images
- Each with optional title and description
- Upload/delete restricted to the Italian locale
Galleria Privata (Private Gallery)
Access-restricted photo gallery for internal use:
- Unlimited images
- Requires authentication to view
- Titles and descriptions per image
Matching Section
The matching tab shows how well this property matches registered users' preferences. Scores are computed in real-time by the backend algorithm.
Stats Dashboard
Three clickable summary cards at the top:
| Card | Criteria | Color |
|---|---|---|
| Hot Matches | Score ≥ 70% | Green |
| To Contact | Status = New | Blue |
| In Negotiation | Status = Negotiation | Purple |
Click a card to filter the match list. Click again to reset.
Match List
Each match shows:
- User info — Avatar, name (links to user profile), and preference name
- Score badge — Color-coded percentage:
- Green (≥ 70%): strong match
- Yellow (40–69%): partial match
- Red (< 40%): weak match
- Requirements summary — e.g., "Vendita / Appartamento · Milano · 50–120m²"
- Matching points — Green tags for satisfied criteria
- Missing points — Red tags for unsatisfied criteria
Match Status Workflow
Use the status dropdown on each match to track lead progress:
| Status | Description |
|---|---|
| New | Not yet contacted |
| Contacted | Initial contact made |
| Visit | Property visit scheduled/completed |
| Negotiation | In active negotiation |
| Discarded | No longer interested |
A Show Archived toggle reveals discarded matches at the bottom of the list (dimmed).
How Matching Works
The algorithm scores users against seven criteria groups:
| Group | What's Compared |
|---|---|
| Budget | Price range, listing type (sale/rent), rent amount |
| Property Type | Property type, contract type, condition |
| Location | City, province, or ZIP code match |
| Size | Surface area, rooms, bedrooms, bathrooms, floor |
| Features | 17 boolean amenity flags (garden, elevator, etc.) |
| Energy | Energy class (minimum threshold), heating, A/C |
| Finishes | Furnishing, parking, orientation, view, brightness |
Users assign a priority weight to each group:
| Priority | Effect |
|---|---|
| Indifferent | Group excluded from scoring |
| Nice to Have | 1× weight |
| Important | 3× weight |
| Mandatory | If this group fails, the user is excluded entirely |
The final score is a weighted average of all non-indifferent groups (0–100%).