Integration guides

How to integrate a CRM with accounting software

Flow Mesh · · 6 min read

In most firms the CRM knows who the client is and what was sold, and the accounting system knows what was invoiced and paid. When the two are not connected, client details are typed twice, the spelling drifts, and nobody in the client-facing team can answer "have they paid?" without asking finance.

The short answer: connecting them is rarely hard technically. Most popular CRMs and accounting packages have a native connector or work with Zapier, Make or n8n. What makes the integration succeed or fail is three decisions you make before switching anything on: which system owns each type of record, which direction each record flows, and how the integration recognizes a client it has already seen. Get those right and the tool choice is almost secondary.

Decision 1: a source of truth for each record

A source of truth is the one system where a piece of information is created and corrected. Everywhere else holds a copy. Without one, two people edit the same client in two places and the integration has to guess who is right.

A split that works for most professional services firms:

RecordUsually owned byWhy
Prospects, contacts, companiesCRMSales and intake create them first
Deals and proposalsCRMPipeline work happens there
Billing customer (legal name, tax number, billing address)AccountingFinance is accountable for invoices being correct
Invoices, credit notes, paymentsAccountingThe ledger must be authoritative
Products and servicesAccounting, or one agreed listLine items must match the revenue accounts

The handover point matters. A common pattern is that the CRM owns a client until the deal is won; at that moment the integration creates the billing customer in accounting, and from then on billing details are corrected in accounting only. Write this down in one page that the whole team can find. Check the billing customer structure with your accountant, especially if clients have several entities or you bill in more than one currency.

Decision 2: one-way or two-way, per record

Two-way sync sounds better, but it means an edit on either side overwrites the other, and you need rules for what happens when both change at once. One-way sync is easier to reason about and easier to troubleshoot.

A practical default:

  • CRM to accounting, one way: new won client creates the billing customer; optionally a won deal creates a draft invoice for finance to review.
  • Accounting to CRM, one way: invoice status, payments and outstanding balance appear on the CRM record as read-only fields.
  • Two-way only where both teams genuinely edit the same field, and only after you have decided which side wins.

Native connectors often let you choose direction per object. HubSpot's Xero integration, for example, offers one-way or two-way sync for contacts and products, according to HubSpot's setup guide. Our HubSpot and Xero guide covers that setup in detail, and the Clio and QuickBooks or Xero guide covers law firms, where trust accounting adds its own rules.

Decision 3: how the integration recognizes a client

Duplicates are the most common failure in CRM and accounting integrations, and they come from matching on the wrong thing. Each system has its own idea of what makes a record unique:

  • HubSpot automatically deduplicates contacts by email address and companies by domain name, according to its knowledge base.
  • QuickBooks Online requires a customer's display name to be unique across customers, vendors and employees, according to Intuit's Customer API documentation. An automation that tries to create "Smith & Co" when it already exists will error.
  • Xero lets you merge contacts after the fact, but notes that if you use Xero Projects, a project's contact does not update when merged.

Matching on a company name is fragile: "Smith & Co", "Smith and Co" and "Smith & Co Ltd" are three clients to a computer. The reliable approach is to store each system's ID in the other. When the integration creates the accounting customer, it writes the accounting ID back to the CRM record; every later step looks up by that ID instead of searching by name. If your CRM represents people and your accounting system represents companies, decide explicitly which CRM object maps to the billing customer.

Clean before you connect

An integration copies whatever is already there, including the mess. Before going live:

  1. Export clients from both systems into one spreadsheet and match them by hand or with simple formulas.
  2. Merge duplicates on both sides.
  3. Archive clients nobody has billed or contacted in years, following your firm's record retention rules.
  4. Fill in missing billing emails and tax numbers on active clients.
  5. Write the matching IDs into both systems, or into the integration tool's mapping, before the first sync.

This step is tedious and usually the most valuable hour of the project. Our article on what manual data entry really costs explains why the retyping you are about to remove was costing more than it looked.

Native connector or automation platform

Start with the native connector if one exists. It is maintained by the vendor, usually cheaper, and covers the common case of syncing contacts, invoices and payments. Reach for Zapier, Make or n8n when you need logic the connector does not offer:

  • A won deal creating a draft invoice with specific line items.
  • A payment triggering onboarding tasks or a notification to the account lead.
  • A third system in the chain, such as a document signing tool or practice management system.
  • A CRM with no native connector to your accounting package, as with Salesforce and QuickBooks; see our Salesforce and QuickBooks guide.

The one rule for mixing them: never let two tools write the same record. If the native sync creates customers, the automation should look customers up, not create them.

Keep it healthy after launch

  • Name an owner who checks the sync log or error alerts weekly.
  • Use a firm-owned login for every connection, not an individual's account that disappears when they leave.
  • Change fields deliberately. Renaming a CRM field or changing a tax code in accounting can quietly break a mapping. Agree that changes to synced fields go through the owner.
  • Review quarterly whether the mapping still matches how the firm works.

How Flow Mesh helps

Our fixed-fee stack audit (€1,500) looks at your CRM, accounting software and the tools around them, gives each a verdict (keep, configure, consolidate or replace), and sets out in writing which system owns each record and which way it should flow. If you want us to build it, the integration work is scoped and quoted in writing after the audit and done inside your own accounts.

Key takeaways

  • Decide which system owns each type of record before choosing any tool.
  • Default to one-way flows per record; use two-way only where both teams truly edit the same field.
  • Match records by stored IDs, not names; each system has its own uniqueness rules.
  • Clean and merge duplicates on both sides before the first sync.
  • Start with the native connector and add an automation platform only for logic it cannot handle, never with two tools writing the same record.

FREE CHECKLIST

The SaaS stack self-audit: 12 checks

The same questions our paid audit starts with. Work through them in an hour and see whether your stack is costing more than the subscriptions. We'll email you the checklist.

More articles

See all articles →