docs GitHub

Design systemDraft

Import wizard

  1. Upload. A drop area for a CSV, and source chips (Clio, Lawmatics, HubSpot, Google Contacts) for the other-system path.
  2. Match columns. One row per column with an example value and a picker of the type's fields; guessMapping pre-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.
  3. Check. importIssues finds the rows that would be refused (empty required value, repeat in a unique field, not a number, not a date); importSummary says "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.
  4. 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.