/file-upload
Bulk upload imports data from a spreadsheet into the platform. It is how a portfolio gets
onboarded, how a month of vendor invoices gets recorded, and how historical payments get migrated.
What you can import
The wizard
1
File information
Choose what you are importing and download the sample template for that type. The sample
matches the real column schema, so starting from it avoids most mapping problems.
2
File upload
Upload the spreadsheet. The file itself is retained, so what you actually submitted can be
reviewed later.
3
Data mapping
Map your columns to the platform’s fields. Mapping is remembered per type, so a recurring
import gets faster.
4
Review & submit
Validation runs before anything is written — on the server as well as in the browser, so a
malformed file cannot slip past.
5
Confirmation
The result: how many rows were created, skipped and failed.
History
History lists every upload run — who ran it, when, which type, and the outcome (succeeded, failed, or partial). Open a run to see:- per-row outcomes — created, skipped or failed, each with a reason;
- the original file, downloadable;
- the option to re-run.
History is scoped to operators and administrators. Imported files are not exposed to residents.
Importing from inside a module
The upload wizard is embeddable, so several modules launch their own import without sending you to/file-upload — for example importing expenses from the expenses list, or leases from the leases
list. It is the same engine, the same validation and the same run history.
Getting an import right
1
Start from the sample template
Not from last year’s spreadsheet.
2
Import in dependency order
Units before leases; residents before leases; leases before invoices; invoices before payments.
Importing out of order is the main cause of mass row failures.
3
Test with a small file first
Ten rows. Check the outcomes, then run the rest.
4
Check the branch
Imports land in your active branch.
5
Read the skipped rows, not just the failed ones
Skipped rows are silent. A run reporting “500 created, 200 skipped” imported 500 records and
quietly ignored 200.
6
Reconcile after the run
Count records in the app against rows in the file, and check a sample end to end.
Common problems
Next steps
Units
The first thing to import when onboarding.
Managing leases
Leases depend on units and residents existing first.