Importing and Exporting CSV
Data Sets can be created from, refreshed from, and exported to CSV files.
Creating a Data Set from CSV
When you attach a CSV file while creating a Data Set, CheckFlow builds the whole Data Set from the file:
- The first row becomes the field names.
- Each column's type is detected from its values.
- Every remaining row becomes a record.
How Column Types Are Detected
Each column is examined independently. Blank cells are ignored while deciding. The first type in this list that every non-blank value in the column matches is chosen:
- Date — every value is in
YYYY-MM-DDformat - Number — every value parses as a number
- True/False — every value is
true,false,yes,no,1or0 - Email — every value is a valid email address
- URL — every value is an absolute
http://orhttps://address - Text — anything else
A column that is entirely blank becomes a Text field.
tip
If a column is detected as the wrong type, you can change it afterwards from the column header menu — see Fields. Changing a type to Text always succeeds.
CSV Format Rules
CheckFlow follows the standard CSV conventions (RFC 4180):
- Values are separated by commas.
- A value containing a comma, a double quote or a line break must be wrapped in double quotes.
- A literal double quote inside a quoted value is written as two double quotes:
"He said ""hello""". - Line endings may be
CRLForLF. - Completely blank rows are skipped.
- Rows with fewer columns than the header are padded with empty cells.
Limits and Errors
| Rule | Message if broken |
|---|---|
| The file must not be empty | The CSV file is empty. |
| Every column in the first row must have a name | The first row must contain a name for every column. |
| Column names must be unique (ignoring case) | Column names in the first row must be unique. |
| Maximum 50 columns | The CSV file has 62 columns. The maximum is 50. |
| Column names maximum 200 characters | Column names must be 200 characters or fewer. |
| Maximum 10,000 data rows | The CSV file has 12000 records. The maximum is 10000. |
| No row may have more columns than the header | The following rows have more columns than the header row: 14, 22. |
| Each row's total cell text must be 5 KB or less | Row 8 exceeds the maximum record size of 5 KB. |
| Quotes must be balanced | The CSV file could not be parsed: a quoted value is not closed. Check for a missing double-quote character. |
| Maximum file size 5 MB | The CSV file exceeds the maximum size of 5 MB. |
Row numbers in error messages count the header as row 1, so they match what you see in a spreadsheet application.
Nothing is imported unless the whole file is valid — a rejected import leaves the Data Set exactly as it was.
Replacing All Records
Import CSV (Replace) in the Data Set toolbar swaps the entire contents of an existing Data Set for the contents of a CSV file. This is the usual way to refresh reference data that is maintained elsewhere.
- Click Import CSV (Replace).
- Choose the CSV file.
- Confirm.
All existing records will be replaced with the contents of 'clients.csv'.
When replacing:
- Columns are matched to existing fields by name (ignoring case), so links, Views and dynamic values that reference those fields keep working.
- Any column in the file that does not match an existing field is added as a new field.
- Fields that are not present in the file are kept, and are left empty in the new records.
- All previous records are removed.
caution
Replace is not a merge and cannot be undone. Existing records are deleted outright, so export a copy first if you may need to refer back to it.
Exporting
Click Export CSV to download the currently selected View.
The exported file:
- Contains only the View's visible columns, in field order.
- Contains only records that pass the View's filters, in the View's sort order.
- Is encoded as UTF-8 with a byte-order mark, so accented and non-Latin characters open correctly in Excel.
- Is named
<data-set>-<view>-<date>.csv, for exampleclients-active-clients-2026-08-10.csv.
True/False values are exported as true / false, whatever form they were entered in.
Spreadsheet Formula Protection
A cell whose value starts with =, +, - or @ would be interpreted as a formula by Excel or Google Sheets. To prevent that, CheckFlow prefixes such values with a single quote on export, which spreadsheets treat as "this is text".
The prefix is not part of your data. Re-importing an exported file strips it again, so an export/import round trip is lossless.
Import and Export via the API
Both operations are also available through the REST API:
POST /api/data-sets/import— create a new Data Set from a CSV file, or replace an existing oneGET /api/data-sets/{dataSetId}/export— download a Data Set or one of its Views as CSV
CSV import through the API is synchronous — the response comes back once the import has completed.
System Data Sets
Built-in System Data Sets are read-only reference data. They cannot be edited, imported into, or exported — those operations return a read-only error.
Related Pages
- Records — the validation rules a CSV must satisfy.
- Creating a Data Set — creating from a CSV rather than importing into one.
- Data Sets API — automating the same job.
- Webhooks API — why a CSV replace raises no record events.