Import & export
Move data in and out without giving up your Excel habits. From any form you can export its records to Excel, CSV or JSON, and import records back in — say, a price list a supplier sent you. Both work on one form at a time, and the export file is named after the form with _export added (e.g. Invoices_export).
The best way to import is to start from an export. The workbook you uploaded defines the app's structure — its cell values aren't loaded as data. So export the form first, even with no records. The file has exactly the right column headers, including the
Record ID column and any line-item columns. Or skip the export: the Import dialog's Download a blank template (.xlsx) gives you the same header row with no records. Fill in your rows, keep the same columns in the same order, then import.| Your row | What import does |
|---|---|
The form has key fields — an employee number, say — and the row's key values match an existing record | That record is updated |
No key fields, but the row's Record ID matches an existing record | That record is updated |
Nothing matches — new key values, or a blank Record ID | A new record is created |
- Import updates and adds in one pass. A row that matches an existing record updates it; a row that matches nothing creates a new record. You never need separate “update” and “add” files.
- Matching by key. If a form defines
keyfields — an employee number, say — import updates the records whose key values match. Without keys, theRecord IDcolumn decides update-vs-create. - Auto-numbered fields stay in the app's hands. A value in an
autocolumn is used only to find an existing record to update. A new row always receives a freshly assigned value (sequence number orulid/nanoid), even if the cell carries one. So imported rows can never clash with numbers the app has already given out. Leave theautocolumn blank for rows you want created. - Masked values are safe to re-import. Exports show sensitive fields as
••••••. Re-importing that file leaves the stored value untouched — a masked cell means “unchanged” — so you can never overwrite real data with bullets. - Every import ends with a summary. You see the total rows, how many were created, updated or skipped (blank or unrecognized rows), and how many had errors. Each failing row is listed, so you can fix it and import again. Line items are tallied separately as imported vs. skipped. Nothing is silently dropped.
- Your lookup tables travel too. An Excel export — and the workspace backup — carries a sheet for each lookup / master-data table with its current values. Re-importing the whole app (or restoring a backup) brings your Master Data Maintenance edits back. Sensitive master-data columns mask like records (
••••••unless you include sensitive data), and a masked cell never overwrites a stored value.