Who’s missing from where?

You have paying customers who don't exist in your CRM. You have CRM contacts who never made it into your books. Here's how to find the gaps, and what they are costing you.

7 min read

The short answer

Who is missing? Every business has customers who are in one system but absent from another. A Stripe customer with no QuickBooks record means unbilled or unreconciled revenue. A CRM contact with no payment history might be a lead that slipped through. These gaps hide real money problems.


Missing records create invisible problems that compound over time

A customer pays you through Stripe, but they were never added to QuickBooks. That payment sits in your bank account but doesn't show up in your accounts receivable or your revenue reports. Your P&L understates income. Your bookkeeper can't reconcile it. And if you ever need to issue a refund or credit, you have no paper trail.

On the other side, a prospect fills out a form on your website and enters your CRM. Your sales rep never logs the deal. Six months later, the same person signs up through Stripe on their own. Now you have two records for the same person, one in HubSpot (marked as “never converted”) and one in Stripe (marked as a new customer). Your conversion metrics are wrong in both directions.

These gaps do not announce themselves. They accumulate silently until your numbers stop adding up and nobody can explain why.


The five gap patterns that matter most

Not all missing records are equally dangerous. Here are the patterns to look for:

  • In Stripe, not in QuickBooks.Someone is paying you, but your books don't know about them. This is a reconciliation and tax problem.
  • In CRM, not in Stripe or QuickBooks. Leads that never converted, or customers whose payment records were never linked. Could be a sales process gap.
  • In QuickBooks, not in CRM. Customers your sales team does not know about. They cannot upsell, cross-sell, or even reach out if there is a problem.
  • In Google Ads conversions, not in Stripe. Your ad platform is claiming conversions that never resulted in an actual payment. Your ROAS is inflated.
  • In no system except one. Completely orphaned records that exist in a single tool with no connection to anything else. These are the hardest to diagnose and the most common.

How to find missing records manually

This builds on the customer presence map. You need exports from each system and a way to compare them.

  1. 1
    Export from all your systems

    Export contacts from HubSpot (CRM → Contacts → Export). Export customers from QuickBooks (Sales → Customers → Export to Excel). Export customers from Stripe (Customers → Export). Each CSV should include at minimum: name, email, and any unique ID.

  2. 2
    Match by email across all exports

    In your spreadsheet, use VLOOKUP or INDEX/MATCH to flag each record that exists in one system but not another. Create a column for each system pair: “In HubSpot but not QuickBooks,” “In Stripe but not QuickBooks,” and so on.

  3. 3
    Filter for each gap pattern

    Sort or filter your spreadsheet to isolate each pattern. Start with “In Stripe, not in QuickBooks” because that usually has the most immediate financial impact.

  4. 4
    Investigate the biggest gaps

    For each gap, check whether the record is truly missing or just entered under a different email or spelling. This manual verification step is where the real time goes. Some “missing” records are just data entry inconsistencies.

Total time: 3-6 hours depending on how many records you have. The matching is mechanical but tedious. The investigation of each gap is where it becomes genuinely time-consuming, especially when names are spelled differently across systems.


New gaps appear every month and old ones never get fixed

Every new customer, every new payment, every new CRM entry is a chance for a new gap to appear. If you did this analysis once and found 50 missing records, by next month there could be 65. The only way to keep up is to re-run the analysis monthly, and almost no one has the time for that.


Or see who is missing automatically, every month

Bottomline runs identity resolution across all connected systems and surfaces every gap pattern. For each missing record, it tells you which system has it and which system is missing it.

Gap patterns detected
In Stripe, not in QuickBooks47 customers
In HubSpot, not in Stripe or QuickBooks234 contacts
In QuickBooks, not in HubSpot89 customers
Orphaned (single system only)356 records
From a real Bottomline report. Each gap pattern is detected automatically and tracked month over month.

Instead of spending a day in spreadsheets, you get a prioritized list of gaps sorted by business impact. And because Bottomline re-runs the analysis monthly, you can see whether gaps are shrinking or growing over time.

Get your answer. Every month, automatically.

Connect your accounts in 5 minutes. Your first report arrives within 24 hours.

Works with QuickBooks, Stripe, HubSpot, Google Ads, and more
© 2026 Bottomline