How do you connect sales data with financial data?
How to connect CRM data with accounting data: shared keys, a translation table for products, and the agreements that decide which figure counts.
You connect sales data with financial data by settling three things: a key that makes a customer, deal or contract recognisable in both systems, a translation between the products and amounts used by sales and the items and ledger accounts used by finance, and an agreement on which system leads for which piece of data. The technology that moves the data is the easy part after that. Without those three agreements, you are connecting two systems that still do not understand each other.
Why do sales and finance talk about different things?
A CRM and an accounting system describe the same company in a different language. The CRM thinks in deals, opportunities, stages and expected value. The accounting system thinks in debtors, invoices, ledger accounts and periods. A deal worth EUR 120,000 in the CRM can come back in the accounts as twelve monthly invoices of EUR 10,000, as three instalments for a project, or as an order with forty lines of which two were later credited.
That is why the figures from sales and finance are rarely the same, and that is not always an error. The CRM counts what was agreed, at the moment it was agreed. The accounting system counts what was invoiced, in the period in which it was invoiced. The article why CRM data is not the same as financial data works out that difference.
So the goal of the connection is not for both systems to show the same number. The goal is that for every figure in one system you can explain where it ends up in the other, and that you can see when that is not possible.
Step 1: the key
Without a shared key, every connection is guesswork. There are three levels at which you need a key.
Customer. The company in the CRM has to be the same customer as the debtor in the accounting system. What works best is a debtor number held in a field in the CRM, or a CRM ID held in a field on the debtor. A company registration number is a good second key, but not enough on its own: one registration number can cover several branches or debtors, and a holding company often has several operating companies that each invoice separately.
Deal or contract. A won deal has to be traceable to the order, contract or project that comes out of it. A deal number on the order, or an order number back in the CRM, is enough.
Line. To check price or volume you also have to be able to compare products: what the CRM calls "Maintenance Package Plus" is item 40210 in the ERP. This is the hardest key and often the last one you sort out.
Start with the customer. Without a customer link you cannot compare anything. With only a customer link you can already do a lot: revenue per customer according to the CRM next to revenue per customer according to the accounts.
Step 2: the translation
After the key comes the translation. A few questions you need to answer:
- Which CRM products belong to which items or revenue accounts? Build a translation table. One CRM product can map to several items, and the other way round.
- How is a contract value spread over time? A three-year contract worth EUR 90,000 is EUR 2,500 a month for finance. The connection has to know that spread, otherwise you are comparing apples with pears.
- What happens with VAT, currency and discounts? CRM amounts are usually excluding VAT. Is a discount a separate line or built into the price? Is anything invoiced in a foreign currency?
- What is a customer? For sales a customer is sometimes a group or a whole corporate family, for finance it is a debtor that receives an invoice. Decide at which level you compare.
Write this down in an ordinary document. It is dull work and it decides whether the whole connection can be trusted.
Step 3: the agreement on what leads
Which system is right when they disagree? That is not a technical question but an agreement. A sensible split for most B2B companies:
| Data | Leading system |
|---|---|
| What was agreed (price, term, conditions) | The signed contract, with the CRM or a contract module as the digital copy |
| What was delivered | ERP, time tracking or product data |
| What was invoiced and paid | Accounting system |
| What is still expected | CRM |
The figure in the accounts is the truth about what came in. It is not the truth about what should have come in. That difference is exactly where revenue leakage sits. More on this choice in which data source leads for revenue.
Step 4: the technology
Only now comes the question of how the data gets from A to B. There are roughly three routes:
- A direct integration between CRM and accounting. Many packages have standard connectors, for example HubSpot or Salesforce with Xero, NetSuite, Exact or Moneybird. They usually sync customers and sometimes invoices. They are suitable for avoiding double entry, less suitable for finding differences: an integration that overwrites data polishes differences away instead of reporting them. See how to connect CRM to ERP.
- Both systems into a central place. Data from CRM and accounting goes into a data warehouse or a database, where you put them side by side. This gives the most control, but someone has to build and maintain it.
- A platform that reads both systems. A Revenue Intelligence platform connects to the existing systems, sets them side by side and reports the differences. The systems themselves remain leading.
Which route you choose depends less on technology than on who maintains it. An integration breaks when someone renames a field, adds a new product or switches package. The question is not whether that happens, but who notices.
Where does it go wrong?
Confusing syncing with comparing. A sync makes two systems show the same thing. A comparison looks for where they differ. If your integration overwrites the CRM amount with the invoice amount on every invoice, you will never again see that there was a difference.
Wanting too much at once. A project that tries to connect all customers, all products and all history in one go gets stuck on exceptions. Start with customers and revenue per customer per month. Then add contracts, then lines.
Neither cleaning up history nor drawing a line under it. Old records without a key keep turning up as differences forever. Choose a start date. Anything before it you only connect if it still generates revenue.
Nobody owns the translation table. A new product in the CRM without a translation to an item produces the first differences within a month. Record who creates a product and who updates the translation.
Worked example
Worked example: suppose an IT services company has 250 customers. After connecting CRM and accounting on debtor number, it turns out that for 18 customers the recurring revenue in the CRM is higher than what is invoiced each month. For 11 of those 18 the difference can be explained: a postponed start date or an agreed discount that was not in the CRM. For 7 customers it concerns expansions that were recorded in the CRM but never adjusted in billing, averaging EUR 350 a month.
That is 7 times EUR 350 times 12, so EUR 29,400 a year. It could not be seen as long as sales looked at the CRM and finance at the accounts, because both figures were plausible on their own.
Step-by-step plan
- Record the debtor number for each customer in the CRM. Start with the customers that currently bring in revenue.
- Build a translation table from CRM products to items or revenue accounts.
- Agree for each piece of data which system leads, and write it down.
- Compare once by hand: recurring revenue per customer according to the CRM next to invoiced revenue per customer per month.
- Go through the twenty largest differences and note the cause.
- Automate that comparison, with a threshold and an owner for each difference.
- Then extend it to contracts and product lines.
This is one of the building blocks under a single source of truth for revenue: not one system that knows everything, but systems that can be traced to each other.
Frequently asked questions
Do I have to replace my CRM and accounting system to do this?
No. Most companies do not have a problem with their systems, but with the missing connection between them. A customer number in the right field solves more than a new package.
Can I match on company name?
As a temporary solution, yes, but expect errors. "Van der Berg Engineering Ltd" and "vd Berg Engineering" are the same to a person, not to a simple comparison. Use name matching to fill the key once, and the key from then on.
Who owns this connection, sales or finance?
Finance is usually the best owner, because the difference only becomes visible where the money is supposed to come in. Sales does have to be responsible for the quality of the data it enters. Without that split, each points at the other.
How long does it take to set this up properly?
That depends on the number of customers, the state of your data and whether keys already exist. A first comparison at customer level can be done within weeks. A full comparison at contract and line level takes months, because the exceptions are what take the time.
More in this cluster
- How do you get a single source of truth for revenue?Start here
- CRM vs ERP: where does your real revenue come from?
- Why CRM data is not the same as financial data
- CRM-to-billing reconciliation explained
- How do you connect CRM to billing?
- How do you connect CRM to ERP?
- How do you check CRM data automatically?
- How do you check billing automatically?