Building Map
Define sections, floors, and individual units with Condo’s interactive building map editor.
Address Resolution
Addresses are resolved and normalized via an integrated address service to ensure deduplication.
Multiple Types
Supports both apartment buildings (
building) and cottage settlements / villages (village).Import
Bulk-import your property portfolio from Excel files using the built-in export/import tooling.
Property Data Model
AProperty record represents a single address managed by an organization. Core fields:
| Field | Type | Description |
|---|---|---|
organization | Relationship | The managing organization |
name | Text | Human-readable property name (optional) |
type | Select | building or village |
address | Text | Full normalized address string |
addressMeta | JSON | Structured address data from the address service |
map | JSON (BuildingMap) | Full unit map with sections, floors, and units |
uninhabitedUnitsCount | Integer | Number of units with no resident assigned |
unitsCount | Integer | Total unit count derived from the map |
address and addressMeta are both required. The addressMeta object is populated by the external address resolution service and contains structured data (city, street, house number, coordinates, etc.) used for deduplication and display.Address Resolution
Condo integrates an address service plugin (@open-condo/keystone/plugins/addressService) that validates and normalizes addresses on property creation and update. This prevents duplicate properties with slightly different spellings of the same address.
If a property with the same address already exists for the organization, the mutation raises a PROPERTY_ALREADY_EXISTS error identifying the conflicting record.
Building Map
Themap field stores a BuildingMap JSON object that describes the full physical layout of the building. This map is used to:
- Present a visual unit selector when creating tickets
- Validate
unitNameandunitTypefields on tickets and contacts - Display occupancy and section information in the management UI
Map Structure
BuildingMap schema overview
BuildingMap schema overview
The map follows a strict JSON schema validated against Unit types come from the shared
MapJsonSchema.json. At the top level it contains:SECTION_TYPES constant and include flat, parking, warehouse, commercial, and others.getUnitsFromSections to keep the unitsCount and uninhabitedUnitsCount fields up to date.
Property Types
| Type | Use Case |
|---|---|
building | Standard multi-unit apartment building or commercial complex |
village | Cottage settlement or low-rise residential community |
BuildingMap vs. VillageMap).
Organizations & Properties
A property belongs to exactly one organization. When a resident moves in, the system creates aResident record linking the resident’s User account to both the Property and the Organization that manages it.
When a property is soft-deleted, Condo automatically:
- Soft-deletes associated
TicketPropertyHintrecords - Updates ticket address references via
manageTicketPropertyAddressChange - Triggers
softDeletePropertyScopePropertiesto clean up scope assignments
Importing Properties
TheExportPropertiesToExcelService generates an Excel template pre-filled with existing property data. Managers can use this as both an export and an import baseline.
Export existing list
Use the Export action in the Properties section to download your current portfolio as Excel.
Property Hints
Organizations can attachTicketPropertyHint records to properties to display guidance text on the ticket creation form. For example, a hint might remind staff of a building’s access code or preferred contact procedure.
Hints can be linked to multiple properties at once via TicketPropertyHintProperty join records.