v5.4.0 14 February 2026 Feature

Contact Import with Identity Resolution

Contact Import Wizard

SpeyBooks now supports bulk contact import from CSV files with automatic duplicate detection and identity resolution.

Smart Column Detection

  • Auto-detected columns — Upload any contacts CSV and SpeyBooks automatically maps Name, Company, Email, Phone, Address, City, Postcode, Country, VAT Number, Company Number, Contact Type, and Payment Terms. No manual column selection needed.
  • Generic domain exclusion — Email addresses from shared providers (Gmail, Outlook, Yahoo, etc.) are not treated as identity signals, preventing false matches between unrelated businesses sharing a common email provider.

Identity Resolution Engine

  • Hard key matching — VAT numbers, Companies House registration numbers, and company email domains are used as definitive identity signals. If two records share a VAT number, they are the same entity.
  • Soft similarity — When no hard keys exist, name and email similarity are scored against configurable thresholds to detect probable matches.
  • Three outcomes — Each imported row is classified as Create (new contact), Merge (update existing), or Conflict (needs human review). The preview screen shows every decision with full evidence before anything is written.
  • Idempotent imports — Re-importing the same CSV produces merge outcomes with no data duplication. The system is safe to run repeatedly.

Import Preview

  • Stats summary — See contacts in file, new contacts, merges, and conflicts at a glance.
  • Evidence trail — Every match decision shows why it was made: which hard key matched, or what the soft similarity score was. Fully auditable.
  • Conflict blocking — Imports with unresolved conflicts cannot be confirmed until every ambiguity is resolved.

Identity Graph

  • Identity anchors — Each contact is linked to a unique identity anchor that persists across imports. Future imports, invoices, and bank transactions all resolve to the same anchor.
  • Hard key registry — VAT numbers, company numbers, and email domains are stored as unique keys per organisation. The same key cannot be claimed by two different contacts.
  • Progressive adoption — Existing contacts are linked to identity anchors on first merge, with no migration required.

Bug Fixes

  • Fixed API key authentication scope for new import endpoints — keys with contacts access now work correctly with the import wizard.

Known Issues

  • Conflict resolution UI not yet available — conflicts must be resolved via the API. Frontend conflict resolution will ship in a follow-up release.
  • Import history page not yet linked from the main navigation.