Skip to main content
Metrics type: Cross-Platform MetricsCategory: Email Marketing
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:
  1. 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.
  2. **343,200ofbuyingrelationshipsisinvisibletosales.EveryoneofthesecustomershasboughtrepeatedlywithoutanyHubSpottouchpoint.IfsalesassistcouldliftLTVby15343,200 of buying relationships is invisible to sales.** Every one of these customers has bought repeatedly without any HubSpot touchpoint. If sales-assist could lift LTV by 15% on warm-existing customers (industry benchmark for personalised outreach), the upside is 51,480/year. The dollar number is the executive conversation.
  3. 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.
  4. 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_conversion which IS lag-sensitive.
  5. 214,800sitsabovethe214,800 sits above the 10k threshold the merchant uses; alert fires. The standard alert trigger is “any customer LTV >1kmissing",butthemerchanthastuneditto1k missing", but the merchant has tuned it to 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 in Pipeline-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 980LTVwhobuys980 LTV who buys 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):
  1. Open the missing-list, sort by LTV descending.
  2. 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.
  3. Bulk-import the top 10 with full company-record context: industry, website, owner-of-record.
  4. Assign each to an AE for a personal reactivation outreach.
  5. Re-baseline the alert threshold if the merchant’s LTV distribution is much higher or lower than $1k.

Tracked live in Vortex IQ Nerve Centre

Top Customers Without HubSpot Contact is one of hundreds of KPI pulses Vortex IQ tracks across HubSpot and 70+ other ecommerce connectors. Nerve Centre runs the detection layer; Vortex Mind investigates the cause when something moves; Ask Viq lets you interrogate any number in plain English. Start for free or book a demo to see this metric running on your own data.