Top revenue customers with NO contact record in HubSpot, sales-team blind spot. Should be #1 import-list target.
At a glance
The list of high-revenue commerce customers who have NO matching contact record in HubSpot. Each row is a customer the merchant has billed, often repeatedly, but the sales and marketing team has never logged, never emailed, and cannot segment. The #1 import-list target. Computed as commerce.customers WHERE customer.lifetime_value >= $1k AND customer.email NOT IN hubspot.contacts.email.
Calculation
Calculated automatically from your HubSpot data. See the At a glance summary above for what the metric tracks and the worked example below for a typical reading.Worked example
A hybrid B2C agency client running HubSpot Sales Hub plus Shopify Plus. Reading on 14 Apr 26 over the trailing 365 days (15 Apr 25 to 14 Apr 26). Top of the missing-contacts list, top 8 of 47 surfaced:
Roll-up:
Five things this picture reveals:
- The top 4 emails are role-inboxes, not human contacts.
billing@,accounts@,purchasing@,ops@map to teams not people. The sales team can still create a HubSpot company-record and a “primary purchasing contact” placeholder, but personalised outreach needs a human-name lookup. The card flags role-inbox patterns automatically (HS09 audit). Six of twelve $10k+ entries are role-inboxes; the rest are real humans. - **51,480/year. The dollar number is the executive conversation.
- Kowalski (centrale.fr) and Blueoak (blueoak.de) signal an EU cohort. The merchant likely never enabled HubSpot’s GDPR-consent workflow on the Shopify checkout, so EU customer emails were never captured into the CRM. Audit HS10 calls this out: enable the consent-checkbox on commerce checkout and the missing-contacts trickle resolves over the next 60 days.
- The lifecycle-stage backfill lag does not affect this card. The check is “exists in HubSpot at all”, not “at the right stage”. Even mid-backfill these contacts are absent; they were never created in the first place. Compare against
hs_xc_lifecycle_first_purchase_conversionwhich IS lag-sensitive. - 10k threshold the merchant uses; alert fires. The standard alert trigger is “any customer LTV >10k. With 12 customers over the threshold, the card pages the sales lead. First action: bulk-import these 12 into HubSpot, assign each to an account-executive, run a “we have noticed your business with us” reactivation email.
Sibling cards merchants should reference together
This is the missing-contact-list card. Pair with these to size the opportunity and close the gap:Reconciling against the vendor’s own dashboard
Where to look in HubSpot: HubSpot does not natively expose a “customers missing in HubSpot” view; it only knows what it knows. Closest individual views the merchant can compare against:
HubSpot → Contacts → Lists → Static (any custom list of lifecyclestage = customer)
HubSpot → Reports → Analytics tools → Contacts (total customer-stage count)
Shopify Admin → Customers, BigCommerce → Customers, or Stripe Dashboard → Customers (the commerce-side ground truth)
The merchant traditionally exports both lists to CSV and runs a vlookup; this card automates that nightly.
Why our number may legitimately differ from the merchant’s expectation:
Cross-connector reconciliation:
This card IS the cross-connector view. The natural triangulations:
Known limitations / merchant FAQs
Why does Shopify show 12,400 customers but HubSpot only shows 8,200 contacts? The 4,200 gap is the broad shape of this card, but only the high-LTV slice surfaces here (default LTV >$1k). Most-common cause: a Shopify checkout that does not push contacts into HubSpot. Either the marketing-consent checkbox was never wired, or the HubSpot-Shopify sync was paused, or the contact-create webhook fails silently for non-EU consent-required orders. Audit HS09 enumerates the dollar exposure; HS10 traces the sync-failure cause. My missing-list has 12 customers above $10k, what is the priority action? Two-step playbook. Step 1: bulk-import all 12 emails into HubSpot via CSV with a “missing-customer-import” source tag. Step 2: assign each to an account-executive with a “we have noticed your business with us” outreach script. Track conversion inPipeline-vs-Realised Revenue Gap over the next 60 days; well-run reactivation outreach lifts repeat-customer LTV by 8-15%.
Vendor discrepancy with the commerce platform, who is right?
The commerce platform is right about which customers exist and what they spent. HubSpot is right about which contacts have a CRM relationship. This card is the set-difference between the two, and both sides of the difference are legitimate facts. The action is to grow HubSpot to match commerce, not to dispute the count.
List-segment lag, does it affect this card?
Yes, briefly. If the merchant just imported 200 contacts via a workflow, list-membership recalculation can take 15-60 minutes for active lists, longer for static lists. During that window the card may show contacts as missing that are actually now in HubSpot. The 24-hour refresh cadence absorbs this; intra-day spikes are normal post-import.
Lifecycle-stage definitions, what stage do imported contacts land at?
Best-practice on import: set lifecyclestage = customer with a recovered_from_missing_list source-tag. Do not start them at subscriber, the contact has already bought. Do not start them at lead, the deal is already won. Customer-stage with proper source attribution preserves the funnel-conversion math in hs_xc_lifecycle_first_purchase_conversion rather than artificially inflating top-of-funnel cohorts.
Multi-portal aggregation, does a customer in portal B count as missing in portal A?
Yes. Portal-scoped contact namespaces mean a customer recorded in portal B is irrelevant to portal A. If the merchant deliberately runs separate portals per region or per sub-brand, this is correct behaviour. If the merchant intends one consolidated CRM, treat the multi-portal architecture as a separate problem to solve and pin the parent-portal as the canonical source.
Workflow-trigger vs send-time, does this card use either?
Neither. The check is contact-existence, evaluated by crm/v3/objects/contacts/search with email filter. No workflow, no email send, no list. The simplest and least-laggy of the cross-platform HubSpot cards.
Today-volatility, why does this swing?
LTV is a 365D rolling sum, so today-volatility is low. The biggest day-to-day swings come from new customers crossing the LTV threshold (a customer at 50 today crosses $1k and joins the missing-list) or from refunds dropping a customer back below threshold. Daily swings of 5-10 customers are normal for an active commerce store with 100+ orders/day.
Action playbook on alert (any customer LTV >$1k missing):
- Open the missing-list, sort by LTV descending.
- For the top 10, check whether the email is a role-inbox (HS09 flags this) or a human; for role-inboxes, look up a human via the company website.
- Bulk-import the top 10 with full company-record context: industry, website, owner-of-record.
- Assign each to an AE for a personal reactivation outreach.
- Re-baseline the alert threshold if the merchant’s LTV distribution is much higher or lower than $1k.