Skip to content

Data Management Reference

Complete reference for database tables, export formats, import options, and data management operations.

Data Management


Description: Real estate broker companies

Record Count: Displayed in overview section

Schema:

FieldTypeDescription
idUUIDUnique broker identifier
nameStringCompany name
emailEmailContact email address
phoneStringContact phone number
addressStringOffice address
license_numberStringBroker license ID
created_atDateTimeRecord creation timestamp
updated_atDateTimeLast modification timestamp

Description: Individual real estate agents

Record Count: Displayed in overview section

Schema:

FieldTypeDescription
idUUIDUnique agent identifier
brokerage_idUUIDAssociated broker (foreign key)
nameStringAgent full name
emailEmailContact email address
phoneStringContact phone number
license_numberStringAgent license ID
bioTextAgent bio/description
specialtiesJSON ArrayAreas of expertise
created_atDateTimeRecord creation timestamp
updated_atDateTimeLast modification timestamp

Description: Scheduled property tour requests

Record Count: Displayed in overview section

Schema:

FieldTypeDescription
idUUIDUnique tour identifier
property_idStringMLS listing ID
user_emailEmailRequestor email
user_nameStringRequestor name
user_phoneStringRequestor phone
preferred_dateDateRequested tour date
preferred_timeTimeRequested tour time
messageTextAdditional notes
statusEnumpending, confirmed, completed, cancelled
created_atDateTimeRequest timestamp

Description: User-submitted property data corrections

Record Count: Displayed in overview section

Schema:

FieldTypeDescription
idUUIDUnique suggestion identifier
property_idStringMLS listing ID
user_emailEmailSubmitter email
field_nameStringProperty field to correct
current_valueStringExisting value
suggested_valueStringProposed correction
reasonTextJustification for change
statusEnumpending, approved, rejected
created_atDateTimeSubmission timestamp
reviewed_atDateTimeReview timestamp (null if pending)
reviewed_byUUIDAdmin who reviewed

Description: API access keys for external integrations

Record Count: Displayed in overview section

Schema:

FieldTypeDescription
idUUIDUnique key identifier
keyStringHashed API key value
nameStringUser-provided key name
roleEnumadmin, broker, agent
brokerage_idUUIDAssociated brokerage (null for admin)
created_atDateTimeCreation timestamp
created_byUUIDUser who created the key
last_used_atDateTimeMost recent authentication
revoked_atDateTimeRevocation timestamp (null if active)
revoked_byUUIDUser who revoked the key

All exports use JSON with metadata headers.

{
"export_type": "full_database",
"exported_at": "2024-12-28T10:30:00Z",
"version": "1.0",
"tables": {
"brokers": [
{
"id": "550e8400-e29b-41d4-a716-446655440000",
"name": "Acme Real Estate",
"email": "contact@acme.example",
...
}
],
"agents": [...],
"tours": [...],
"suggestions": [...],
"api_keys": [...]
}
}

{
"export_type": "agents",
"exported_at": "2024-12-28T10:30:00Z",
"version": "1.0",
"table_name": "agents",
"record_count": 42,
"data": [
{
"id": "660e8400-e29b-41d4-a716-446655440001",
"name": "Jane Smith",
"email": "jane@example.com",
...
}
]
}

Type: Dropdown selection

Values:

  • All Tables — Import from a full database export
  • Brokers — Import only broker records
  • Agents — Import only agent records
  • Tours — Import only tour requests
  • Suggestions — Import only suggestions
  • API Keys — Import only API key configurations

Auto-Detection: The system reads the export file metadata and pre-selects the appropriate target. You can override this if needed.


Type: Boolean checkbox

Default: false (unchecked)

Behavior:

SettingBehavior
UncheckedNew records are added, duplicates (matching IDs) are skipped
CheckedAll existing records in target table(s) are deleted, then import proceeds

Use Cases:

Merge Mode (Unchecked)

Adding new records without losing existing data

Safe for incremental updates

Replace Mode (Checked)

Complete data replacement for migrations

Dangerous - requires backup first


Definition: A duplicate is a record with an id that already exists in the database.

Behavior:

  • Without “Clear existing data”: Duplicate records are skipped, counted in “Records Skipped”
  • With “Clear existing data”: No duplicates possible (table is empty before import)

Records that violate database constraints are rejected.

Common Violations:

ConstraintExampleResult
Foreign KeyAgent references non-existent brokerageRecord skipped, error logged
Unique ConstraintTwo agents with same emailSecond record skipped
Not NullAgent missing required name fieldRecord skipped, error logged

Handling: Import continues, problematic records are skipped and counted in “Errors Encountered”


Full Database Import: Single transaction (all-or-nothing)

  • If any table fails, entire import rolls back
  • Database returns to pre-import state

Single Table Import: Single transaction per table

  • If import fails, table returns to pre-import state
  • Other tables (if part of a multi-table operation) are unaffected

  • JSON (.json) — Primary format, required
  • Maximum file size: 50 MB
  • Character encoding: UTF-8

Drag and Drop

Drag JSON file onto the upload zone

File Browser

Click the upload zone to open file picker


Before import begins, the system validates:

  1. File format — Valid JSON syntax
  2. Structure — Contains required metadata fields
  3. Version — Compatible with current database schema
  4. Data types — All fields match expected types

If validation fails, import is rejected before any database changes occur.


Security measure to prevent accidental deletion.

OperationRequired TextCase Sensitive
Clear All TablesDELETEYes (must be uppercase)
Clear BrokersBROKERSYes (must be uppercase)
Clear AgentsAGENTSYes (must be uppercase)
Clear ToursTOURSYes (must be uppercase)
Clear SuggestionsSUGGESTIONSYes (must be uppercase)
Clear API KeysAPI_KEYSYes (must be uppercase)

Why case-sensitive? Forces the admin to type deliberately, reducing chance of accidental confirmation.


The overview section shows real-time record counts for all tables.

  • Auto-refresh: Every 60 seconds
  • Manual refresh: Click the Refresh button

Counts are retrieved directly from database:

SELECT COUNT(*) FROM brokers;
SELECT COUNT(*) FROM agents;
...

Total Record Count: Sum of all table counts (displayed in top-right)


OperationTypical DurationRecords
Full Database2-5 seconds<10,000 total
Single Table<1 second<5,000
Large Export10-30 seconds>50,000 total

OperationTypical DurationRecords
Small Import<5 seconds<1,000
Medium Import10-30 seconds1,000-10,000
Large Import1-5 minutes>10,000

Note: “Clear existing data” adds deletion time before import starts.