Design systemDraft
Import wizard
- Upload. A drop area for a CSV, and source chips (Clio, Lawmatics, HubSpot, Google Contacts) for the other-system path.
- Match columns. One row per column with an example value and a picker of the type's fields;
guessMappingpre-fills by name (same name first, then a header that holds a field's name; a field is taken once). Skip leaves a column out. - Check.
importIssuesfinds the rows that would be refused (empty required value, repeat in a unique field, not a number, not a date);importSummarysays "3 of 6 rows are ready". A segmented choice sets what to do with a row that matches an existing record (Skip, Update, Add anyway). The button says exactly how many will be imported. - Done. Counts added, updated, skipped, left out; an undo stays for 7 days.
The wizard is the screen. The import tool that does the writing is server-side and needs rc1-d. File: apps/app/ui/records/ImportWizard.tsx. Status: draft, gallery only.