CSV Import¶
Overview¶
CSV import lets you create records from CSV files directly in the console. You can import into an existing collection or create a new collection from the CSV headers and data.
Starting an Import¶
CSV import is available from two places:
- Collections list — click the dropdown menu and select "Import CSV"
- Collection records page — click the dropdown menu and select "Import CSV"
When starting from the collections list, you can choose to create a new collection or import into an existing one. When starting from a collection's records page, the import targets that collection.
Import Wizard¶
Step 1: Upload¶
Drag and drop a .csv file onto the upload zone, or click to browse. Files must be CSV format, up to 10 MB.
Step 2: Preview¶
The preview shows:
- Column headers with detected type badges (text, number, date, or boolean)
- First 50 rows of parsed data
- Row and column count summary
- Delimiter selector — auto-detected by default, but you can switch between comma, semicolon, or tab if the auto-detection is wrong
Warnings appear for:
- Duplicate column headers — automatically renamed with a suffix (e.g., "Name" becomes "Name_1", "Name_2")
- Row limit — imports are capped at 50,000 rows; excess rows are ignored with a warning
Step 3: Configure¶
Importing into an Existing Collection¶
A column mapping table shows each CSV column alongside a dropdown of collection properties. Columns are auto-mapped by matching header names (case-insensitive). You can adjust mappings or skip columns you don't need.
At least one column must be mapped to proceed.
Creating a New Collection¶
Enter a collection name (auto-populated from the filename). Each CSV column becomes a collection property with:
- Property name — editable text input, pre-filled from the CSV header
- Type — dropdown with Text, Number, Date, or Boolean, pre-filled from type inference
Type Inference¶
Types are inferred from the first 100 data rows:
| Detected Type | Matching Values |
|---|---|
| Boolean | true, false, yes, no, 1, 0, on, off (case-insensitive) |
| Number | Plain decimals (123, -45.67) or thousands-separated (1,234,567.89) |
| Date | ISO 8601 (2026-03-21) or slash-delimited (03/21/2026, 21/03/2026) |
| Text | Everything else (default) |
Empty columns default to text.
Step 4: Importing¶
Records are sent to the backend in batches of 500. The screen shows:
- A progress bar with percentage
- A real-time counter: "{processed} of {total} records"
- A cancel button — you can stop the import mid-process and keep records that were already created
Step 5: Summary¶
After the import completes (or is cancelled), the summary shows:
- Imported — number of records successfully created
- Failed — number of records that failed validation
- Total — total records attempted
If any records failed, a scrollable table shows the first 50 failures with row number and error message. Expand a row to see field-level validation details.
Click Download Failed Rows to export all failures as a CSV file with __error and __row_number columns appended, so you can fix and re-import them.
Limits¶
| Limit | Value |
|---|---|
| Max file size | 10 MB |
| Max rows | 50,000 |
| Batch size | 500 records per request |
| Header row | Required |
| Encoding | UTF-8 |
Supported Delimiters¶
CSV files are auto-detected for delimiter type. If auto-detection is wrong, you can manually select:
- Comma (
,) - Semicolon (
;) - Tab
The delimiter can be changed in the preview step, which re-parses the file immediately.