Skip to main content
Card class: Cross-ChannelCategory: Email Marketing
Count of HubSpot contacts that have real ecom purchase history but are missing core CRM properties like name, lifecycle stage, or lead status. A sync gap to fix.

At a glance

Contact Properties Missing vs Ecom Data counts contacts that exist in HubSpot and have a real commerce purchase history, yet are missing the core CRM properties that make a contact usable: a name, a lifecycle stage, a lead status. These are email-only ghost records, often created by a checkout or newsletter sync that captured the address but none of the enrichment. A buyer with no lifecycle stage cannot be segmented, cannot be reported on in the funnel, and cannot be reliably targeted by workflows. The card sizes the population so the team can decide whether to enrich, re-sync, or fix the integration that is writing thin records.
What it countsThe count of HubSpot contacts that have associated commerce-order history but are missing one or more designated core properties (typically name, lifecycle stage, and lead status). The drill-down lists each contact with its email, which core properties are blank, and its ecom order count or value.
Core-property setWhich properties count as “core” is configurable in the profile. The default set covers name, lifecycle stage, and lead status, the fields without which a contact cannot be segmented or funnel-reported.
Ecom-match basisA contact is considered to have ecom history when its email matches a commerce-platform customer with at least one order. Match is by email, with company-domain as a secondary check where applicable.
Why email-only records appearCommon sources: a checkout sync that writes only the email, a newsletter signup that never enriched, a CSV import of buyers without profile fields, or an integration mapping that dropped the name and stage fields.
Cross-channel natureThis is a HubSpot-times-commerce card. It only fires for contacts that are buyers on the store side but thin on the CRM side, which is why it sits in the Revenue at Risk category.
Currencynumber (count of contacts); the drill-down can show associated ecom value.
Time windowRT (real time). Refreshes as contacts and orders sync.
Alert triggerMore than 100 contacts that are buyers but hold an email-only profile.
Rolesowner, marketing, engineering. Marketing loses segmentation reach; engineering owns the sync writing thin records; the owner sees it as data-quality debt that depresses targetable audience.

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 fast-growing DTC supplements brand on Marketing Hub Professional with a Shopify Plus storefront. The checkout pushes buyer emails into HubSpot, but a misconfigured field mapping never carried the name or set a lifecycle stage. Reading on 18 May 26. The card reads 1,840 buyers with email-only profiles. The drill-down by gap:
Gap patternContactsHave ecom ordersRead
Missing name + lifecycle + lead status1,210Yes, allCheckout sync wrote email only
Missing lifecycle stage only430YesImported buyers never staged
Missing name only200YesNewsletter capture before purchase
What this exposes:
  1. The 1,210 fully-thin records are the integration bug. All three core fields blank on contacts that have placed orders points straight at the checkout sync field mapping. Fixing the mapping stops the bleed; a back-fill re-sync recovers the existing records.
  2. These buyers are invisible to the funnel. With no lifecycle stage, none of the 1,840 appear as customers in Contact Lifecycle Stage Distribution. The funnel under-reports customers by 1,840, which makes every downstream conversion rate look worse than reality.
  3. Marketing cannot segment or personalise to them. No name means no first-name personalisation; no lifecycle stage means they fall out of customer-only or VIP segments. A post-purchase upsell workflow keyed on lifecycle = customer will skip all 1,210.
  4. The 430 missing-stage-only records are a quick win. They have names and just need staging. A workflow that sets lifecycle to customer when an associated order exists clears them.
  5. The fix has two halves. Stop the source (correct the checkout field mapping so new buyers arrive complete) and clean the backlog (enrich and stage the existing thin records). Doing only the backlog leaves the bug to refill the pile.
Illustrative numbers only.

Sibling cards merchants should reference together

This is a data-quality card whose damage shows up in segmentation and funnel cards. Pair it with these:
CardWhy pair it with Contact Properties Missing vs Ecom Data
Top Customers Without HubSpot ContactThe harder-edge sibling: buyers with no CRM contact at all. This card is buyers with a thin contact; that one is buyers with none. Together they bound the sync-quality gap.
Lifecycle Stage vs Ecom RevenueThe revenue-impact view. Thin records with no stage are exactly the contacts that distort lifecycle-versus-revenue reconciliation.
Contact Lifecycle Stage DistributionThe under-count this card explains. Missing-stage buyers are absent from the customer bucket, deflating the distribution.
Total ContactsThe denominator. Email-only buyers as a share of all contacts is the data-completeness ratio.
New Contacts (period)The inflow check. If new thin records keep arriving, the source sync is still broken.
Segments OverviewThe reach impact. Thin records silently shrink every property-based segment they should belong to.

Reconciling against HubSpot

Where to look in HubSpot: HubSpot can surface contacts with blank properties via a filtered view, but it has no native concept of “buyer with a thin profile” because order history lives on the store side. The closest native approaches:
HubSpot → CRM → Contacts filtered to a core property (for example Lifecycle stage is unknown / empty). This finds blank-property contacts but cannot, on its own, restrict to buyers. HubSpot → CRM → Lists to save the blank-property filter as an active list. HubSpot → Settings → Integrations to inspect the commerce-sync field mapping that should be writing the missing properties.
The merchant traditionally finds this by exporting blank-property contacts and exporting store buyers, then intersecting them by hand; this card maintains that intersection continuously. Why our count may differ from a HubSpot filter:
ReasonDirectionWhy
Buyer restrictionOur count lowerHubSpot’s blank-property filter counts all empty-property contacts, including non-buyers; we count only those with matched ecom history, which is a smaller, more actionable set.
Core-property set definitionEitherWhich fields count as core is configurable; a different definition changes which contacts qualify as thin.
Email-match precisionOur count lowerA buyer whose store email differs from the contact email is not matched, so a real thin buyer can be missed by the cross-channel join.
Time zoneMarginalOrder-creation timestamps align to the store time zone; contact creation aligns to the portal; edge-case recency reads can differ slightly.
Filter scopeVariableProfile-level filters can narrow our view relative to an all-contacts HubSpot list.
Cross-connector reconciliation: This card is itself the cross-connector view (HubSpot contact completeness times commerce buyer history). The natural triangulations:
CardExpected relationshipWhat causes legitimate divergence
Shopify Total RevenueThe thin records hold real ecom value; their summed order value is revenue that the CRM cannot segment or attribute.Buyers with no HubSpot contact at all (not just a thin one) hold value Shopify counts and this card cannot, since there is no contact to flag.
Top Customers Without HubSpot ContactThin-contact buyers (here) plus no-contact buyers (there) together equal the full set of buyers the CRM cannot properly act on.A buyer can move from the no-contact card to this one once a thin contact is created for them, shifting the count between the two.

Known limitations / merchant FAQs

Why do we even have contacts with no name but real orders? Almost always a sync that captured the email and nothing else. Checkout integrations, newsletter popups, and quick CSV imports frequently write the address while dropping or never mapping the name and lifecycle fields. The record is real, it is just thin. Is this the same as buyers with no HubSpot contact at all? No, it is the next layer in. This card is buyers who do have a contact record but the record is missing core properties. The Top Customers Without HubSpot Contact card is buyers with no contact whatsoever. Fixing both is how you get a complete, segmentable customer base. Why does this matter if the buyer is in HubSpot anyway? Because a contact with no lifecycle stage is invisible to the funnel, falls out of customer-only segments, and is skipped by workflows that branch on stage. The buyer is technically present but practically unreachable for most marketing actions. Can a workflow fix the missing properties automatically? Partly. A workflow can set lifecycle stage to customer when an associated order exists, which clears the missing-stage cases. It cannot invent a name that was never captured; that requires enrichment or a re-sync from the source that holds the name. The count keeps growing even after we cleaned it. Why? Because the source sync is still writing thin records. Cleaning the backlog without fixing the field mapping means new buyers keep arriving incomplete. Fix the integration first, then back-fill. Does this card modify any contacts? No. It is read-only. It identifies thin buyer records; enriching or staging them is a manual action or a workflow you build. Why is the alert set at 100? A hundred email-only buyers is the point where the segmentation and funnel distortion becomes material for most merchants. A very large store may want a higher threshold; a small one cleaning up may want a lower one. Tune it in the Sensitivity tab. Action playbook:
  1. Open the drill-down and group by which properties are missing.
  2. Diagnose the source for the largest group, usually a checkout or import sync with a broken field mapping.
  3. Fix the source mapping so new buyers arrive complete; this stops the pile growing.
  4. Back-fill the backlog: a workflow can set lifecycle stage from order history; names may need an enrichment pass or re-sync.
  5. Re-check Contact Lifecycle Stage Distribution afterward; the customer count should rise as thin records get staged.

Tracked live in Vortex IQ Nerve Centre

Contact Properties Missing vs Ecom Data 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.