# A small CRM migration, with reconciliation Version 1, 29 October 2026. Fictional sample data. These files use Flori's column names; they are not native Insightly exports or a one-click migration. No competitor account or export was used in this test. ## Before importing Keep the original export and a read-only record of source counts. Use a test workspace first. If you are moving live records, export your existing Flori data before making changes and arrange a period when nobody else edits the same records. Do not put passwords, private documents or unnecessary personal data in CSV notes. In Accounts, People or Deals, choose Import CSV, review the mapped columns and preview the rows before importing. The importer is a signed-in-person action; the assistant MCP connector does not perform this CSV import. Import in this order: | File | Expected new records | Check after import | | --- | --- | --- | | companies.csv | 1 account | Juniper Studio Client; juniper.example; active; scope notes intact | | people.csv | 2 people and 2 company relationships | Rowan and Casey each linked to Juniper; roles and email addresses intact | | deals.csv | 1 deal | Won; USD 6,000; expected close 2026-11-02; linked to Juniper | The import creates no delivery project, tasks, signed contract, invoice, payment, email history or attachments. Contacts are linked to the company, not automatically selected as contacts on the deal. Set those relationships yourself and verify them. ## Map an external export Export column names differ between products and configurations. Transform a copy of the export, preserving the original. Match by meaning, not by a guessed field position. | External data | Flori import field | Handling | | --- | --- | --- | | Organization/account name and website | Company name; Domain | Normalize to one account per intended business; inspect duplicate names | | Contact full name, email, role | Full name; Email; Job title | Combine first/last names first if separate; retain only needed addresses | | Contact's organization | Company | Use the already-imported company domain or an unambiguous name | | Opportunity title, organization and value | Deal name; Company; Amount; Currency | Keep currencies separate; never silently convert amounts | | Pipeline stage | Stage | Explicitly map to new, qualified, proposal, won or lost; keep the old stage in your migration ledger | | Expected close | Expected close date | Use YYYY-MM-DD; leave unknown dates empty | | Custom fields, notes on people/deals, activities, attachments, project tasks | No matching field in this CRM CSV flow | Preserve in the source system or migrate through a separately verified route; do not silently drop them | Company notes are supported. Deal amount is a value, not revenue collected. The file limit is 1 MB, 2,000 rows and 50 columns; imports run in batches of 100. Your account's record and deal limits still apply, so a valid file can exceed your available capacity. ## What duplicate detection means The preview checks saved records and earlier rows. Company matching uses domain/name; people use matching email or, without email, name; deals use company plus title. These are heuristics, not proof that two people are the same. A duplicate row is skipped, not merged or updated. Unmatched people can import without a company link and carry a warning; a deal needs a matching active company. Resolve warnings before relying on the relationships. The local sample test checks a clean import, relationships, a repeated identical import and changed-file duplicate detection. A repeated identical file adds zero records. This does not promise that every edited export is duplicate-proof. Preview every batch and reconcile created, skipped, invalid and capacity-limited rows. ## Reconciliation and rollback For this sample, the final totals are 1 account, 2 people, 2 relationships and 1 deal, with no duplicate or invalid rows on the first pass. Verify the currency, stage and close date, not just counts. Open each person and deal to check the account link. Add the delivery project only after this passes. There is no dedicated one-click undo for a CSV import. Do not confuse the separate merge undo with import rollback. In an isolated test workspace, remove only the sample records you created after checking their links. For production, stop on discrepancies, preserve the import receipts and original exports, and agree a recovery plan before more batches. A backup is evidence for recovery, not proof that restoration has been tested. Keep Insightly or another source system available until its activities, files, automation, permissions and required reporting have a verified destination. A successful four-record import alone is not a completed migration.