Integration guides
What is a source of truth, and why does every firm need one before automating?
Flow Mesh · · 6 min read
A client moves offices. The partner updates the address in the CRM, the bookkeeper updates it in the accounting package, and the assistant fixes it in the practice management system, each slightly differently. Six months later the invoice goes to the old address and nobody can say which record is right.
The short answer: a source of truth is the one system where a given piece of information is created and corrected. Every other system holds a copy and takes its updates from that source. You need one per type of record before you automate, because automation copies data at speed. If two systems both think they own the client's address, an integration will not settle the argument; it will spread whichever version changed last into every other tool.
What a source of truth actually means
The idea is simple, and it has three parts:
- One home per record type. Clients live in one system, invoices in another, staff in a third. Each type has exactly one owner.
- Edits happen at home. If something is wrong, it is fixed in the owning system, never in a copy.
- Copies follow the owner. Other systems receive the data, ideally automatically, and treat it as read-only.
It does not mean one system for everything. A 20 person firm will happily run a CRM, an accounting package, a document store and a calendar. The point is that for any single fact, everyone knows where to look and where to fix it.
Sometimes the split goes down to field level. The CRM may own a client's phone number and relationship partner, while the accounting system owns the legal name, tax number and billing address on the same client. That is fine, as long as it is written down.
Why automating without one makes things worse
Manual double entry is slow, but at least a person notices when two records disagree. An integration does not notice. It follows rules, and without a source of truth those rules are guesses. Typical results:
- Overwrite loops. Two-way sync copies an old value back over a correct one, because the copy was edited more recently.
- Duplicates. Each system creates the client on its own, and the integration cannot tell they are the same entity. Our guide to syncing data without duplicates covers the matching rules that prevent this.
- Silent drift. A correction made in a copy is never sent back, so the owning system stays wrong and reports keep using it.
- Blame without answers. When a figure is wrong, nobody can trace where it came from.
Native connectors usually force the question for you. HubSpot's data sync with Xero, for example, asks you to choose which app overwrites the other "when it's unclear which app has the most up-to-date information", according to HubSpot's setup guide. If you have not decided which system is the source of truth, you will be making that call on a settings screen, without context.
A typical ownership map for a professional services firm
Every firm differs, but this split works as a starting point for law, accounting, clinics and consulting:
| Record | Usual owner | Copies often live in |
|---|---|---|
| Prospects and contacts | CRM or intake tool | Email, marketing tool |
| Clients, matters or engagements | Practice management system | CRM, accounting, document store |
| Billing details, invoices, payments | Accounting system | CRM (status only) |
| Time entries | Time tracking or practice management | Accounting, reporting |
| Staff and their access | HR system or Microsoft 365 / Google Workspace directory | Every app with user accounts |
| Documents | Document management or SharePoint | Email attachments, client portal |
| Appointments | Calendar or booking system | CRM, reminder tool |
| Services and rates | Accounting system or one agreed price list | Proposals, CRM products |
Notice the handovers. A prospect starts in the CRM; once they sign, the engagement is created in practice management, and billing details pass to accounting. Each handover is a natural trigger for an automation, which is why the map comes first. For the CRM and accounting handover in detail, see our guide on integrating a CRM with accounting software.
How to choose the owner for each record
When the right home is not obvious, ask four questions:
- Where is it created first? The system where the record is born is usually the easiest owner, because nobody has to copy it in.
- Who is accountable for it being correct? Finance answers for invoices, so the ledger owns them. Whoever answers for a record should edit it in their own tool.
- Which system keeps a history? Prefer the system that records who changed what and when, so mistakes can be traced.
- Which system is hardest to change? Accounting and regulated records (client files, patient records, trust ledgers) should usually stay the owner, with everything else adapting to them. Check with your accountant or compliance lead before changing where regulated records are kept.
If two systems both pass these tests, pick one and move on. A clear decision you can revise beats an open question that every automation has to work around.
Enforce it, or it is just a document
An ownership map on a shared drive changes nothing if people can still edit the copies. Make the rule part of how the tools work:
- Lock the copies. Where an app allows it, make synced fields read-only or hide them from edit forms, so the only way to change them is at the source.
- Sync one way by default. Data flows from owner to copy. Use two-way sync only for fields both teams genuinely edit, and set the conflict rule to favor the owner.
- Store each system's ID in the others. Linking records by ID, rather than by name or email, keeps the copies attached to the right source record even when details change.
- Give people a "where do I fix this?" answer. A one-line note in the team handbook ("billing address: change it in accounting, the CRM updates overnight") prevents most stray edits.
- Review changes to synced fields. Renaming a field or adding a new dropdown value in the owning system can break mappings downstream. Route those changes through one person.
Signs you do not have one yet
- Staff ask "which one is right?" about client details more than once a week.
- Reports from two systems give different client counts or revenue figures.
- The same correction is made in several places, or in none.
- A new automation was paused because it "kept overwriting things".
- Nobody can say which system to trust when a client disputes an invoice.
A one-afternoon exercise
You can draft your map without any new software:
- List every type of record the firm handles: contacts, clients, matters, invoices, time, documents, appointments, staff.
- Next to each, list every system that holds a version of it.
- Mark the owner using the four questions above.
- For each copy, note how it gets updated today: typed by hand, synced, imported, or not at all.
- Highlight every place where a copy is edited directly. Those are your first fixes, and often your first automations.
Keep the result to one page. It becomes the brief for any integration work and the reference everyone uses when a record looks wrong.
How Flow Mesh helps
Our stack audit starts from exactly this question: it maps which system owns each record and how data moves between your tools, gives every tool a verdict (keep, configure, consolidate or replace), and sets out a written scope for the integrations that follow. Any build is quoted in writing after the audit and done inside your own accounts.
Key takeaways
- A source of truth is the one system where a piece of data is created and corrected; every other system holds a read-only copy.
- Decide it per record type, and sometimes per field, before you connect anything.
- Without one, integrations spread conflicts faster: overwrite loops, duplicates and silent drift.
- Choose the owner by where the record is born, who is accountable for it and which system keeps a history.
- Enforce the decision with read-only copies, one-way sync, stored IDs and a clear "where to fix it" rule.