A finance migration rarely fails at the import. It fails at preparation and reconciliation. Here's when to move, what to clean up, how to import without duplicates and how to prove the numbers match.

It's time to move when finances and sales live in different systems and you spend hours reconciling them by hand: which clients paid, who owes, who brought in the revenue, what commission to pay.
| Signal | What happens | Why it's a reason to move |
|---|---|---|
| Payments matched to clients by hand | Names are copied from the statement into the CRM | Errors and delays |
| Client debts are tracked separately | Receivables live in yet another sheet | No single answer to "who owes what" |
| Pay includes sales commission | Calculated from a CRM export plus the statement | Disputed payouts |
| Several people edit one spreadsheet | Formulas break, versions drift apart | Totals can't be trusted |
| Transaction limit outgrown | You pay for the next tier | Paying for two tools |
Preparation takes longer than the import and decides whether reports will be useful. A mess migrates in an hour and takes months to untangle.
Cut income and expense categories down to 20–40, grouped into 5–8 groups. Merge duplicates, delete categories unused for a year, rename vague ones ("Misc," "Other 2"). "Group → category" equals "category → subcategory" in Finmap. See the management accounting guide.
List every place money sits — operating accounts, business cards, currency accounts, cash registers — with currency and bank. A forgotten account shows up later as "missing" money.
One company, one spelling. "Alpha Ltd," "Alpha Limited" and "ALPHA LTD." are three different counterparties to any system. If the CRM links payments to clients by counterparty name, names in the statement and the client base must match.
The cut-off date is the day the new system becomes your book of record. The first of a month works best: the first month is complete, and its P&L can be compared with the old report. Earlier history is optional.
On the cut-off date, record each account's bank balance and count the cash. This anchors every reconciliation. If you import from January 1, use that date's balance.
This order works for any system that imports files. In brackets: how it works in 95sales CRM statement import.
Uploading the same file twice should never create duplicates — test this in any system. In 95sales CRM each transaction gets a fingerprint built from the account, date, amount, counterparty and description, so statements with overlapping periods are safe to upload: transactions already imported are skipped.
A wrong upload should be rolled back as a whole, not line by line. In 95sales CRM the "Cancel" button in "Previous uploads" is available only to the owner: it removes that upload's transactions and the payments and expenses created from them, while accounts and categories stay.
Reconciling balances is the only reliable way to confirm nothing was lost. For each account, calculate the closing balance and compare it with the bank for the same date.
Closing balance = opening balance + inflows − outflows
Transfers between your own accounts must net to zero across the company: total outgoing transfers = total incoming transfers. If they don't, one side of a transfer is missing.
Say a service company moves off Finmap with a September 1 cut-off and runs both systems through September. All figures are illustrative.
| Account | Balance Sep 1, USD | Inflows, USD | Outflows, USD | Calculated balance Sep 30, USD | Bank balance Sep 30, USD | Difference, USD |
|---|---|---|---|---|---|---|
| Operating account | 41,200 | 68,500 | 59,850 | 49,850 | 49,850 | 0 |
| Business card | 3,820 | 5,400 | 7,130 | 2,090 | 2,090 | 0 |
| Second operating account | 9,500 | 12,000 | 14,000 | 7,500 | 7,380 | −120 |
| Total | 54,520 | 85,900 | 80,980 | 59,440 | 59,320 | −120 |
Check for the first row: 41,200 + 68,500 − 59,850 = 49,850. The second account is $120 short. The dry run explained it: a bank fee row had no date and was skipped. Entered by hand, the difference drops to zero.
Reconciling transaction counts catches duplicates and gaps that totals can hide.
| Upload | Rows in file | Skipped (no date or amount) | New | Already imported |
|---|---|---|---|---|
| Statement Sep 1–30, first upload | 412 | 3 | 409 | 0 |
| Same file again | 412 | 3 | 0 | 409 |
| Statement Sep 15–Oct 15 | 437 | 3 | 236 | 198 |
If a repeat upload shows new transactions, descriptions or amounts changed — check before building reports.
| Step | What to do | Done when |
|---|---|---|
| Categories | Merge duplicates, group them | 20–40 categories, each in a group |
| Accounts | List all accounts and cash registers with currency | No money "off the books" |
| Counterparties | One spelling per company | Client names match the client base |
| Cut-off date | Pick the first of a month | Date recorded, team informed |
| Opening balances | Take from the bank, count the cash | Balance table for the cut-off date |
| Files | .xlsx/.csv statement per account | No .xls or PDF files |
| Dry run | Run every file before importing | Skipped rows explained |
| Reconciliation | Calculated balance vs bank | Zero difference on every account |
| Parallel run | One month in both systems | Monthly totals match |
| Retire the old tool | Archive the spreadsheet or Finmap export | The team works in one system |
After the move, payments, debts and expenses live alongside clients, calls and payroll. Incoming payments link to clients by counterparty name; new counterparties can become clients on the spot. You also get a monthly P&L with category groups and projects, budget vs actual and a management balance sheet as of today. There's no transaction limit, and our team handles the transfer from Finmap.
Stay put if finances aren't tied to client work or you need features a CRM lacks.
Excel or Google Sheets are enough with under a hundred transactions a month, one bookkeeper and few clients who pay predictably. More in CRM vs spreadsheets.
Finmap is the better fit if:
The full comparison is on Finmap vs CRM. If your main pain is matching payments to clients, debts and payroll, moving to a CRM removes it — and the budget vs actual step by step guide covers the budgeting side.
You pay nothing and owe nothing.
We discuss a subscription only if you want one after the demo. The price is known before you start.
FAQ
Export transactions from Finmap to Excel and upload the file through statement import; accounts, categories, counterparties, projects and transfers come over too. Do a dry run first and reconcile every account afterwards.
In 95sales CRM, yes: each transaction gets a fingerprint from the account, date, amount, counterparty and description, and transactions already imported are skipped. With other tools, test this on a sample file before you move.
The first of a month: the first month is complete and comparable with the old report. Record all account and cash balances on that date.
For each account, calculate opening balance + inflows − outflows and compare it with the bank statement for the same date. The difference should be zero, and transfers between your own accounts should net to zero across the company.
.xlsx and .csv files. Old .xls files need to be re-saved as .xlsx or .csv; PDF and MT940 aren't accepted.
Usually one full month. If inflows, outflows and balances match in both, archive the old one.
We store a traffic source marker in your browser so we can tell which ad or link brought an enquiry. Nothing is stored without your consent. Learn more