Data tables
Importing from CSV
Click "Import CSV" in the table header, map columns, confirm inferred types, import.
Why CSV is the right starting point
Most folks arriving at Kition already have data: a Notion export, an Airtable dump, an Excel sheet, a Linear weekly. CSV is the lowest common denominator: rows are records, columns are fields, UTF-8, comma-delimited.
Kition's importer does two things competitors get wrong: type inference is sharper than Notion's (numbers, dates, booleans get caught), and the schema stays editable after import — you are not locked into "values only, types frozen".
Import steps
- 1. Prepare the CSV — UTF-8, header row, no merged cells
- 2. Table header → "Import CSV" — pick the file, preview the first 20 rows
- 3. Check column mapping — Kition auto-matches by name; unmatched columns can be created on the fly
- 4. Confirm inferred types — numbers, dates, and select values are auto-detected; correct as needed
- 5. Pick a conflict mode — "Append", "Update by key" (upsert by a chosen column), or "Replace"
- 6. Wait for completion — the status bar shows progress; expect a few seconds to tens of seconds for 10K+ rows
A real example
Say you are importing a Linear task export. Here is what Linear gives you:
id,title,status,priority,assignee,due_date,estimate
ENG-101,"Fix login bug",In Progress,Urgent,[email protected],2026-06-15,3
ENG-102,"Refactor payment flow",Todo,High,[email protected],2026-06-22,8
ENG-103,"Add OAuth provider",Done,Medium,[email protected],2026-06-01,5How inference plays out
id→text(a primary key candidate; Kition suggests marking it unique)title→textstatus/priority→select(fewer than 20 distinct values triggers select inference)assignee→email(recognized format)due_date→date(ISO 8601 recognized)estimate→number(pure numeric column)
Common gotchas
- Excel defaults to GBK or Windows-1252 — switch to UTF-8 on export; otherwise non-ASCII (é, ñ, Chinese) garbles
- Mixed date formats —
2026/6/7andJun 7, 2026together fall back to text; normalize to ISO first - Fields with commas — wrap in double quotes:
"hello, world" - Over 50K rows — split into 10K-row chunks to avoid long transactions blocking the UI
- Multi-line fields — RFC 4180 supports them; ensure the writer also quotes them
- Boolean columns —
yes/no,true/false,1/0all infer as checkbox