Before you move anything Six things worth doing first.
Most of the cost of a migration is decisions, not transfer. These are the decisions, and
every one is cheaper to make before the data lands than after.
Clean the data where it still lives
Duplicates, dead records and inconsistent phone and address formats are cheaper to fix in the system that already has search and merge than in the one you are moving to. BottleCRM has no merge for contacts or accounts, so a duplicate you bring across is a duplicate you keep.
Write down what your custom fields are for
You will recreate them by hand. BottleCRM lets your organisation define fields on every entity, with no code and no migration, and they render on both clients and filter in list views. What it cannot do is guess which of your old CRM’s two hundred fields anybody still uses.
Map your stages onto six
Deals move through six fixed stages: Prospecting, Qualification, Proposal, Negotiation, Closed Won and Closed Lost. You cannot rename them or add your own, so a nine-stage pipeline needs a decision about what collapses into what before any data moves.
Decide who is an admin
There are two roles, ADMIN and USER, and no permission matrix to configure. Access is role plus ownership plus organisation, enforced in the API. That is the whole model, and it is quicker to map onto than it sounds.
Move a hundred rows first
Then look at them in the interface rather than in the response. Formatting, country codes and which field ended up where are all obvious on a record page and invisible in a success message.
Keep the export
BottleCRM has no CSV export of its own, so the file you exported from your old CRM is your only copy of the before state. Keep it until you are certain, and keep a database backup afterwards, because deleting a record here is permanent.