Repeat customers on the ecom side are open expansion opportunities. If HubSpot deals aren’t tracking them, the sales team is missing the signal.
At a glance
Deal Pipeline vs Repeat Ecom Orders cross-references repeat buyers on the commerce side against the deal activity in HubSpot. A customer who keeps reordering on the store is showing concrete buying intent and is a prime expansion or upsell target. If there is no corresponding HubSpot deal, or the deal has gone stale, the sales team is blind to a signal that is already in the data. The card surfaces repeat-purchasing customers whose CRM deal record is missing or untouched, so the team can open the deal, reach out, and capture expansion revenue that is currently slipping by unworked.
| What it counts | A table of customers who placed repeat commerce orders in the window but have no active HubSpot deal, or a deal with no recent updates. Each row carries the customer, repeat-order count and value, associated contact or company, and the deal status (none, stale, or open). |
| Repeat-buyer definition | A customer with more than one commerce order in the window. The exact repeat threshold and lookback are configurable in the profile to match the merchant’s purchase cadence. |
| Deal-match basis | Customers are matched to HubSpot deals via the associated contact or company (email and company-domain). A customer with no matched deal, or a matched deal whose last-modified date is old, is surfaced. |
| Stale-deal definition | A matched deal counts as untracked if it has had no recent modification, indicating sales is not actively working it despite ongoing purchase activity. The staleness window is configurable. |
| Why it lives in Revenue at Risk | Repeat buyers are the cheapest expansion revenue available, and the risk is silent: nothing breaks, the team simply never sees the opportunity. The cost is opportunity cost, not an error. |
| Currency | currency for the repeat-order value shown per row. |
| Time window | 90D. Long enough to establish a repeat-purchase pattern, short enough to flag currently-active customers. |
| Alert trigger | More than 5 ecom-repeat customers with no HubSpot deal updates. |
| Roles | owner, finance. Finance sizes the un-captured expansion revenue; the owner uses it to push sales toward the warmest, cheapest pipeline available. |
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 B2B office-supplies wholesaler on Sales Hub Professional with a BigCommerce reorder portal. Many accounts reorder consumables monthly through the portal without ever touching a salesperson. Reading on 14 Apr 26 over the trailing 90 days. The card surfaces 11 repeat-buying accounts with no active deal. Top rows:| Customer | Repeat orders 90D | Value 90D | HubSpot deal status |
|---|---|---|---|
| Meridian Architects | 7 | $18,400 | No deal |
| Coastal Dental Group | 5 | $12,100 | Deal exists, untouched 80+ days |
| Brightway Logistics | 6 | $9,700 | No deal |
| Two Rivers Clinic | 4 | $7,250 | Deal closed-lost 6 months ago |
| Apex Print Co | 9 | $6,900 | No deal |
- Meridian Architects is the clearest expansion play. Seven reorders worth $18,400 in 90 days with no deal at all means a steady, self-serve account that nobody is managing. A single account-management conversation could move them onto a contract and grow basket size.
- Coastal Dental Group is the stale-deal case. A deal exists but has not been touched in nearly three months while the account kept reordering. Sales has the relationship but is not working it; the data says the account is active and receptive.
- Two Rivers Clinic was written off prematurely. The deal was marked closed-lost six months ago, yet the account has reordered four times since. The loss was clearly not a real loss; the account should be re-opened.
- Apex Print Co shows that order count and value can diverge. Nine orders but only $6,900 means small, frequent reorders. The expansion angle here is volume consolidation or a larger-pack offer rather than a big new deal.
- The 90-day window is what makes this actionable. These are not historical buyers; they are reordering now. Reaching out while the purchasing habit is live is what converts a repeat ecom customer into managed pipeline.
Sibling cards merchants should reference together
This is an expansion-opportunity card. Pair it with these to size and act on the pipeline it reveals:| Card | Why pair it with Deal Pipeline vs Repeat Ecom Orders |
|---|---|
| Top Companies by Deal Value | The known-pipeline view. Repeat buyers absent from the top-companies list are the expansion accounts sales has not yet built deals around. |
| Open Deal Pipeline Value | The captured total. The value in this card is pipeline that should exist but does not yet. |
| Top Customers Without HubSpot Contact | The upstream gap. A repeat buyer with no contact at all cannot have a deal; fix the contact first, then the deal. |
| Lifecycle Stage vs Ecom Revenue | The classification cross-check. Repeat buyers should read as customers; if they do not, the same data gap that hides the deal hides the stage. |
| Deal Close-Won Without Matching Ecom Order | The mirror-image integrity card: deals with no orders, where this is orders with no deals. Together they bound CRM-to-store alignment. |
| Total Deal Pipeline Value | The forecast base that this card’s un-captured opportunities would grow if worked. |
Reconciling against HubSpot
Where to look in HubSpot: HubSpot knows its deals but has no view of store reorder behaviour, so it cannot natively surface “repeat buyer with no deal”. The closest native approaches:HubSpot → Sales → Deals to review existing deals and their last-modified dates, but this only shows deals that exist, not the buyers missing one. HubSpot → CRM → Companies to check whether an account has any associated deals at all. Store admin (BigCommerce → Customers / Shopify Admin → Customers) to see repeat-order counts per customer on the commerce side.The merchant traditionally builds this by exporting repeat buyers from the store and cross-checking each against HubSpot deals by hand; this card runs that comparison continuously. Why our list may differ from a manual cross-check:
| Reason | Direction | Why |
|---|---|---|
| Repeat-threshold definition | Either | What counts as a repeat buyer (two orders, three, within what window) is configurable; a different threshold changes who appears. |
| Deal-match precision | Our list longer | A buyer whose store email or company domain does not match the CRM record shows as having no deal even when one exists under a different identifier. |
| Staleness window | Either | The cutoff for an untouched deal is configurable; a tighter window flags more deals as stale, a looser one fewer. |
| Time zone | Marginal | Order timestamps follow the store time zone, deal-modified dates follow the portal; edge-case recency reads can shift. |
| Closed-lost handling | Our list longer | A reordering customer whose only deal is closed-lost is surfaced as effectively untracked, which a naive deal-exists check would miss. |
| Card | Expected relationship | What causes legitimate divergence |
|---|---|---|
| Shopify Total Revenue | The repeat-order value in this card is a subset of store revenue, specifically the portion from repeat buyers that the CRM is not actively managing. | First-time buyers and managed accounts are excluded here but counted in store revenue, so this card’s value is always a fraction of the total. |
| Open Deal Pipeline Value | The value here represents pipeline that could exist but does not; adding worked opportunities should grow open pipeline over time. | Some repeat buyers will never convert to a managed deal (small accounts content to self-serve), so not all of this value is realistically capturable. |
Known limitations / merchant FAQs
Why should I care about repeat buyers who already buy without a salesperson? Because a customer reordering on their own is showing buying intent at zero acquisition cost. That is the cheapest expansion revenue available. A managed conversation can grow their basket, move them to a contract, or surface adjacent needs. Leaving them entirely self-serve caps their value at whatever they happen to reorder. A customer is on this list but they do have a deal. Why? Two common reasons. Either the deal is stale (no recent activity while the customer kept buying), which is the point of the flag, or the deal exists under a different contact or company identifier that did not match the store customer. Check the match before assuming the deal is missing. Is a closed-lost deal treated as having a deal? Effectively no. If a reordering customer’s only deal is closed-lost, the card treats them as untracked, because a closed-lost deal means sales is not working the account even though the buying behaviour says they should be. Those are often the best re-open opportunities. How do I set what counts as a repeat buyer? The repeat threshold and lookback are configurable in the profile. A consumables wholesaler with monthly reorders will set a different bar than a furniture retailer where two orders in 90 days is unusual. Match it to your real purchase cadence. Does this card create or modify deals? No. It is read-only. It surfaces the customers worth a deal; opening or re-opening the deal is a manual sales action. Why is the alert at more than 5? Five un-worked repeat accounts is the point where the missed expansion revenue is worth a sales-team conversation for most merchants. High-volume B2B operations may raise it; smaller ones may lower it. Tune it in the Sensitivity tab. Action playbook:- Sort the table by 90-day repeat value and start at the top.
- For no-deal accounts, confirm a contact exists, then open a deal and assign an owner.
- For stale-deal accounts, re-engage the existing owner; the buying signal is live, the relationship is warm.
- For closed-lost accounts still reordering, re-open the deal; the loss was not real.
- Re-check after 30 days; the captured rows should move into managed pipeline and out of this list.