In many small and mid-sized businesses, the same client exists twice. Once in the CRM, where sales tracks the deals, and once in the accounting software, where the invoices come from. When a deal is won, someone retypes the client details. When the client moves, the address is updated in one system and not in the other. And the account manager sending a follow-up quote has no idea there are still three unpaid invoices.
An integration between your CRM and your accounting software removes that double work. This article explains which data to exchange, why you need to decide per data type which system is the source of truth, the three ways to connect, how you notice when something goes wrong and what it costs.
What an integration actually does
Two systems exchange data automatically, usually through an API: a fixed entry point a software package offers so other software can read data from it or write data to it. No more export files, no more retyping. What changes in one system shows up in the other within minutes, or at a set time of day.
That sounds simple, and the technical part often is. The hard part is the agreements: what goes across, in which direction, and what happens when the two systems disagree.
Which data to synchronise
Not everything needs to move from one system to the other. Start with the data that's currently entered twice, and with the questions colleagues ask each other because the answer lives in the other package.
Clients and contacts
The most obvious flow. When a deal is won, the integration creates a customer account in the accounting software with name, address, company registration number and VAT number. Watch the difference between the visiting address and the billing address, and between the sales contact and the person the invoice goes to. Contacts usually stay in the CRM. The accounting side often needs only one: whoever receives the invoice.
Quotes and orders
When a client accepts a quote from the CRM, the integration can prepare an order or a draft invoice in the accounting software, with the same lines, quantities and VAT rates. That only works if both systems know the same products. If your products and prices live in two separate lists, one in the CRM and one in accounting, aligning them is the first job.
Invoices and payment status
The return trip is often forgotten, even though it gives sales the most. Which invoices have been sent, which are paid, which are outstanding and for how long? If that's visible on the client record in the CRM, an account manager won't cheerfully call about a follow-up job while the last invoice has been open for two months. And revenue per client is visible without anyone pulling a report from accounting.
What to leave where it is
- Journal entries, ledger accounts and VAT returns. They belong in accounting and nowhere else.
- Notes, call reports and email history. They belong in the CRM. Accounting has no use for them.
- Data nobody on the other side uses. Every field you send across is a field that can go wrong.
Which system is the source of truth?
This is the most important choice in any CRM integration, and the one most often skipped. If both systems may change everything, a conflict follows sooner or later: the address was updated in the CRM and in accounting too, but differently. Which one wins? Without an agreement the software decides, and it usually decides wrong.
So decide per type of data which system owns it. A split that works for many businesses:
- Prospects, contacts and deals: the CRM owns them.
- Financial client data such as billing address, VAT number and payment terms: accounting owns them once someone is a client.
- Quotes: the CRM. Invoices and payment status: always accounting.
- Products and prices: pick one, and let the other follow.
One owner per piece of data. An integration where both sides may change everything ends up with duplicate clients and wrong addresses sooner or later.
Also agree how the integration recognises a client. Matching on name goes wrong, because Jansen Installations Ltd and Jansen Installation Services are two different companies to software. A company registration number or a fixed client number stored in both systems is more reliable. If you already have duplicate clients in either package, clean them up before the integration goes live. Otherwise it neatly copies the mess to the other side.
Three ways to connect software
1. A standard integration from the marketplace
Many packages have a marketplace or app store with ready-made integrations. Think of CRM packages such as HubSpot, Pipedrive or Salesforce, and accounting packages such as Exact Online, AFAS, Twinfield or Moneybird. Always look there first. A standard integration is quick to switch on, cheap, and its maker keeps it up to date when one of the packages changes.
The limitation is that it works the way its maker designed it. If it only syncs clients and not payment status, or can't handle your custom fields, you're out of luck. So test it with your own data before you build on it, and check what you get to see when something fails to come across.
2. An integration platform such as Zapier or Make
With an integration platform you build a flow yourself with a few clicks: when this happens in system A, do that in system B. Deal won in the CRM, create a customer in accounting. No programming needed, and for simple one-way flows it works well.
It gets harder with two-way synchronisation, with recognising existing clients and with error handling. A flow like that takes a few hours to build, but maintenance and exceptions often take more time afterwards than expected. And because you pay per executed step, the bill grows with your volume.
3. A custom integration through the API
With a custom build, a piece of software is written that talks to both APIs and follows your rules: how clients are recognised, which field goes where, what happens with an exception, and what gets logged. It costs more to set up, but it does exactly what your process needs. It pays off mainly when you connect more than two systems, such as CRM, accounting, webshop and planning, or when data needs processing along the way. How we approach it is on the page about connecting your software.
How much work it is depends heavily on the APIs. Packages such as Exact Online, Moneybird and HubSpot have a public, documented API. Older or highly specialised packages sometimes don't, or only for a fee. Some vendors also limit how many requests you may make per minute. Check before you start, because it determines what's possible and what it costs.
Error monitoring: the part everyone skips
Every integration fails at some point. An access key expires, a package changes its API, a required field turns out to be empty or one of the systems is down for an hour. The question isn't whether it happens, but whether you notice before a client does.
- Every message that crosses the integration is logged, so you can see what came across and when.
- On an error, a named person gets an alert, not a shared inbox nobody reads.
- On a temporary outage, the integration retries by itself.
- There's an overview of what didn't come across, with the option to send it again.
- Every now and then both sides are checked against each other, for example by comparing the number of active clients.
If you choose a standard integration or an integration platform, ask how you'll see that something went wrong. An integration that fails silently is more dangerous than no integration, because everyone assumes the data is correct.
What about email?
Next to accounting, email is the integration people ask about most: emails with a client automatically attached to the client record in the CRM. Almost every CRM has its own integration for Outlook or Gmail. Use it. A custom build only makes sense once email becomes part of a larger process, for example a request that arrives by email and should land in the CRM as a deal automatically. Then it moves towards workflow automation.
What a CRM integration costs
- Standard integration: often free or a fixed monthly amount on top of your subscription. Check your package's marketplace.
- Integration platform: a subscription that grows with the number of executed steps, plus the time of whoever builds and maintains the flows.
- Custom build at Voortware: a build project from € 9,500 with a fixed price up front. Discovery is free, a first working version is live in four to eight weeks on average, and hosting usually costs € 20 to € 80 per month.
For a single one-way integration between two packages with a good standard integration, a custom build is usually too expensive, and we'll tell you so. It becomes interesting when the integration is part of something bigger, or when the standard routes don't do what you need. All rates are on the pricing page.
Do the maths, too. How many hours a week go into retyping, checking and fixing now? And what does an invoice to the wrong address cost, or a client who exists twice in accounting? How to weigh that up is covered in when workflow automation pays off.
Where to start
- Write down which data is entered twice now, by whom and how often.
- Decide per data type which system is the source of truth. Do it with someone from sales and someone from finance together.
- Clean up duplicate clients and make sure every client has a unique identifier stored in both systems.
- Check both packages' marketplaces for a standard integration, and test it with your own data.
- If it doesn't do what you need, choose between an integration platform for a simple flow or a custom CRM integration.
With that list on paper, one conversation is enough to know which route fits. Examples of what we connect, from CRM and accounting to webshop and planning, are on the page about CRM integration.
