Merge Mode (Unchecked)
Adding new records without losing existing data
Safe for incremental updates
Complete reference for database tables, export formats, import options, and data management operations.

Description: Real estate broker companies
Record Count: Displayed in overview section
Schema:
| Field | Type | Description |
|---|---|---|
id | UUID | Unique broker identifier |
name | String | Company name |
email | Contact email address | |
phone | String | Contact phone number |
address | String | Office address |
license_number | String | Broker license ID |
created_at | DateTime | Record creation timestamp |
updated_at | DateTime | Last modification timestamp |
Description: Individual real estate agents
Record Count: Displayed in overview section
Schema:
| Field | Type | Description |
|---|---|---|
id | UUID | Unique agent identifier |
brokerage_id | UUID | Associated broker (foreign key) |
name | String | Agent full name |
email | Contact email address | |
phone | String | Contact phone number |
license_number | String | Agent license ID |
bio | Text | Agent bio/description |
specialties | JSON Array | Areas of expertise |
created_at | DateTime | Record creation timestamp |
updated_at | DateTime | Last modification timestamp |
Description: Scheduled property tour requests
Record Count: Displayed in overview section
Schema:
| Field | Type | Description |
|---|---|---|
id | UUID | Unique tour identifier |
property_id | String | MLS listing ID |
user_email | Requestor email | |
user_name | String | Requestor name |
user_phone | String | Requestor phone |
preferred_date | Date | Requested tour date |
preferred_time | Time | Requested tour time |
message | Text | Additional notes |
status | Enum | pending, confirmed, completed, cancelled |
created_at | DateTime | Request timestamp |
Description: User-submitted property data corrections
Record Count: Displayed in overview section
Schema:
| Field | Type | Description |
|---|---|---|
id | UUID | Unique suggestion identifier |
property_id | String | MLS listing ID |
user_email | Submitter email | |
field_name | String | Property field to correct |
current_value | String | Existing value |
suggested_value | String | Proposed correction |
reason | Text | Justification for change |
status | Enum | pending, approved, rejected |
created_at | DateTime | Submission timestamp |
reviewed_at | DateTime | Review timestamp (null if pending) |
reviewed_by | UUID | Admin who reviewed |
Description: API access keys for external integrations
Record Count: Displayed in overview section
Schema:
| Field | Type | Description |
|---|---|---|
id | UUID | Unique key identifier |
key | String | Hashed API key value |
name | String | User-provided key name |
role | Enum | admin, broker, agent |
brokerage_id | UUID | Associated brokerage (null for admin) |
created_at | DateTime | Creation timestamp |
created_by | UUID | User who created the key |
last_used_at | DateTime | Most recent authentication |
revoked_at | DateTime | Revocation timestamp (null if active) |
revoked_by | UUID | User 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:
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:
| Setting | Behavior |
|---|---|
| Unchecked | New records are added, duplicates (matching IDs) are skipped |
| Checked | All 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:
Records that violate database constraints are rejected.
Common Violations:
| Constraint | Example | Result |
|---|---|---|
| Foreign Key | Agent references non-existent brokerage | Record skipped, error logged |
| Unique Constraint | Two agents with same email | Second record skipped |
| Not Null | Agent missing required name field | Record skipped, error logged |
Handling: Import continues, problematic records are skipped and counted in “Errors Encountered”
Full Database Import: Single transaction (all-or-nothing)
Single Table Import: Single transaction per table
.json) — Primary format, requiredDrag 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:
If validation fails, import is rejected before any database changes occur.
Security measure to prevent accidental deletion.
| Operation | Required Text | Case Sensitive |
|---|---|---|
| Clear All Tables | DELETE | Yes (must be uppercase) |
| Clear Brokers | BROKERS | Yes (must be uppercase) |
| Clear Agents | AGENTS | Yes (must be uppercase) |
| Clear Tours | TOURS | Yes (must be uppercase) |
| Clear Suggestions | SUGGESTIONS | Yes (must be uppercase) |
| Clear API Keys | API_KEYS | Yes (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.
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)
| Operation | Typical Duration | Records |
|---|---|---|
| Full Database | 2-5 seconds | <10,000 total |
| Single Table | <1 second | <5,000 |
| Large Export | 10-30 seconds | >50,000 total |
| Operation | Typical Duration | Records |
|---|---|---|
| Small Import | <5 seconds | <1,000 |
| Medium Import | 10-30 seconds | 1,000-10,000 |
| Large Import | 1-5 minutes | >10,000 |
Note: “Clear existing data” adds deletion time before import starts.