Bulk-import existing data
Import projects, inventory, customers, bookings, vendors and employees from CSV files so you can go live with your historic data in place.
You need the Admin role (or higher) to complete the steps on this page.
Admins can bulk-import data via CSV so a new workspace does not start empty. Each entity type has its own importer with a downloadable sample CSV. Imports run row-by-row with per-row validation — bad rows are rejected and listed, good rows are saved.
Import is for first-time onboarding. For day-to-day editing use the module screens. For moving data from an older system, prefer importing bookings last so the customer and inventory records they reference already exist.
Supported entities
| Entity | Dependencies that must exist first |
|---|---|
| Projects | — |
| Plots | Project |
| Floors / units | Project, plot |
| Plot owners | — |
| Customers | — |
| Vendors | — |
| Partners | — |
| Leads | Project (optional), source (master data) |
| Bookings | Customer, plot or unit |
| Employees | Department, designation (master data) |
| Expenses | Project (optional) |
Run an import
Step 1: Open Admin → Data import
Pick the entity type from the top dropdown. The sample CSV button becomes available.
data-import-01.png
Step 2: Download the sample CSV
Open the sample in Excel, keep the header row, replace the example rows with your real data and save as CSV UTF-8.
Step 3: Upload your file
Click Upload CSV. The system parses the file and shows a preview table with per-row validation status.
Step 4: Review errors
Rows with errors are tinted rose with the exact message ("Email already exists", "Project code not found", etc.). Fix them in your CSV and re-upload, or import only the valid rows.
Step 5: Click Import valid rows
Successfully-parsed rows are written to the database. Each row is wrapped in its own transaction so a failure midway does not corrupt earlier rows.
Imported records cannot be bulk-reverted. If you import against the wrong workspace, the only recovery is to delete rows one by one or restore from a backup. Always run against a staging workspace first.
Column reference
Every importer's sample CSV uses the same conventions:
| Column type | Format |
|---|---|
| Date | YYYY-MM-DD |
| Datetime | ISO 8601 (2026-10-10T09:30:00Z) |
| Phone | E.164 (+919812345678) |
| Amount | Decimal, no commas (150000.00) |
| Boolean | true or false |
| Enum (status, type) | Match the exact option as listed in the UI dropdown. |
Columns marked (required) in the header must be present and non-empty. Columns marked (optional) can be left blank or omitted entirely.
What's next
- Master data — populate dropdowns before importing records that reference them.
- Features → Projects — see how imported projects look in the UI.