Most people selling to Shopify merchants are working off a list. A static CSV of "Shopify Plus brands in beauty," bought or scraped six months ago, hammered until it's dead. That list tells you an account exists. It tells you nothing about whether they're in the market, what they're frustrated with, or who to call this week.
Justin Michael has a name for the fix: triangulation. No single data point is enough to earn a reply. But when three independent signals point at the same account at the same time, you're not guessing anymore. You're reading a merchant who is actively about to buy. This guide is how you build the data stack that produces those overlaps on a lean team.
Why one signal is noise
Take any signal in isolation. A merchant runs Recharge. So what? Thousands do, and most of them are perfectly happy. A merchant is hiring a retention lead. Interesting, but the req could sit open for four months. A merchant just upgraded to Shopify Plus. Great for them, but that alone doesn't tell you they need your category.
Each of these is a weak prior. Acting on any one of them, you're spraying. You'll email a hundred Recharge users to find the three who are unhappy, and you'll burn your domain reputation doing it. The signal isn't wrong. It's just low-resolution on its own.
Now stack them. A merchant who runs Recharge, and just posted a "Subscription & Retention Manager" role, and left a 2-star review on Recharge's app listing last week. That's not a prospect. That's a merchant standing in the middle of the road with their hand up. The overlap is the gold — and the overlap is what a real data stack is built to surface.
The four layers of a Shopify GTM data stack
A functioning stack has four layers, and they answer different questions. Confusing them is why most "data-driven" outbound still feels like a list.
- Firmographics — the account exists and fits your ICP. Vertical, GMV band, region, employee count, whether they're on Plus. This is the who could ever buy layer.
- Tech-stack detection — what they actually run today. Klaviyo or Omnisend? Recharge or Loop? Gorgias or Zendesk? This is the are they even relevant to my category layer, and it's where competitor displacement lives.
- Intent signals — something is happening right now. An app move, a bad review, a job posting, a Plus upgrade, fresh Meta ad spend. This is the why now layer, and it's the one static lists completely lack.
- Contact data — the human who decides. Name, role, verified email, LinkedIn. This is the who do I actually reach layer that turns a company into an outreach target.
Firmographics and tech-stack tell you where to look. Intent tells you when to move. Contact data tells you who to hit. Triangulation is what happens when all four converge on one row.
Layer 1 & 2: Firmographics and tech-stack detection are your base map
Start with the fixed layer — the stuff that doesn't change week to week. This is your company and firmographic data: which merchants are on Shopify, which are on Plus, what vertical they sit in, roughly how big they are. It's the base map you draw every play on top of.
But firmographics alone is table stakes — everyone selling to Shopify has some version of it. The layer that separates operators is tech-stack detection: knowing which apps each merchant runs live on their storefront right now. This is the difference between "beauty brands on Plus" and "beauty brands on Plus running Yotpo who could be poached to your reviews app."
Tech-stack detection does two jobs at once. It qualifies — if you sell a Klaviyo alternative, a merchant already on Klaviyo is a real prospect and a merchant on nothing isn't. And it disqualifies — no point pitching a loyalty app to someone who installed one last month. We go deeper on this in what tech-stack detection reveals, but the headline is simple: you can't triangulate against a stack you can't see.
Layer 3: Intent signals are the "why now"
Firmographics and tech-stack give you a filtered universe. But a filtered list is still a list until something moves. Intent signals are the pulse. On Shopify, the ones that actually predict a purchase cluster into a handful of types, and each deserves its own play:
- App-move alerts — a merchant installs or uninstalls an app. An uninstall of a competitor is the cleanest displacement signal there is; see when a merchant uninstalls a competitor and timing outreach to install events.
- 1-3 star review alerts — a merchant publicly airs frustration with a competitor's app. It's motive, timing, and pain in one line. The 1-3 star review poaching play breaks it down.
- Hiring signals — a new retention, CX, or growth hire is budget walking in the door. A "Lifecycle Marketing Manager" req means SMS and email spend is coming. More in hiring signals for app sellers.
- Plus upgrade signals — a merchant scaling to Shopify Plus is re-evaluating their whole stack. That re-platform window is a rare open door, covered in selling into Shopify Plus upgrades.
- Meta ad activity — not a buying signal on its own, but a powerful context layer. A brand spending hard on acquisition cares about conversion and retention. Read Meta ad activity as a context signal.
You can watch all of these in one place through the alerts feed. The point isn't to chase every ping. It's to have every intent type flowing in so the overlaps can find you.
Layer 4: Contact data closes the loop
A signal without a name is a dead end. You can know a merchant just uninstalled Route and is hiring a CX lead, and still have nowhere to send the email. That's why decision-maker contact data is a layer, not an afterthought — 92k+ contacts attached directly to brand profiles, so the "who" resolves the moment the "why now" fires.
The sequencing matters. When contact data is stitched onto the profile, you go from signal to a named, verified human in one motion. No CSV exports, no bouncing to a separate enrichment tool, no losing the timing window while you hunt for an email. The signal and the person live on the same record. That's the whole game — because timing decays fast, and the operator who reaches out same-day wins.
Triangulation in practice: from three signals to a meeting
Here's what the stack produces when the layers work together. Picture one merchant profile lighting up:
- Firmographic: Shopify Plus, coffee & supplements vertical, ~$8M GMV band.
- Tech-stack: running Recharge for subscriptions.
- Intent 1: left a 2-star review on Recharge citing failed dunning and churn.
- Intent 2: posted a "Retention & Subscription Lead" role nine days ago.
- Contact: that new-ish Head of Ecommerce, verified email on the profile.
Any one of those is a shrug. All five on one row is a merchant telling you, in writing, that their subscription stack is failing and they're spending money to fix it. Your cold email writes itself — you reference their world (the dunning pain, the new hire's mandate), not your feature list. That's the cold email copywriting discipline: one clear idea, permissionless relevance, their reality not your pitch.
This is also where Justin Michael's sell around the curve idea earns its keep. Triangulation doesn't just catch merchants who are already shopping — it catches them before the RFP, when the frustration is fresh and the shortlist is empty. Get in during that window and you're not competing. You're the one who showed up early. More on that in sell around the curve and from signal to booked meeting.
Architecting the stack for a lean team
You don't need a data engineering pod to run this. You need the layers unified in one place and a way to query the overlaps. That's Justin Michael's tech-powered / superhuman SDR thesis — software leverage plus human judgment doing the work of a whole team. A few architecture principles:
- One source of truth, not five tabs. Firmographics, tech-stack, intent, and contacts should live on a single brand profile. Every tool-hop is a place timing dies.
- Query the intersection, not the list. The winning question isn't "who's on Plus in beauty" — it's "who's on Plus in beauty, running Yotpo, that left a bad review this month, with a marketing hire I can name." Ask that with natural language through the AI assistant and let it stack the filters for you. It also surfaces AI-SDR suggestions on which overlaps to act on first.
- Push and pull, both. Let signals push to you in real time via Slack, and pull on demand when you're building a targeted campaign. Miss the push, you miss the window.
- Build a standing watchlist. Pick the competitors you displace and monitor their entire customer base for movement, per building a competitor customer watchlist.
Done right, this is what lets a two-person team out-prospect a ten-person SDR org — the argument in replace your SDR with signals. The leverage isn't a magic AI. It's the stack surfacing the three-signal overlaps a human would never find scrubbing lists by hand.
Where to go next
Triangulation is the backbone, but it connects to every other play. If you're building the ICP that feeds the base map, start with targeting on steroids: your Shopify ICP. If you want the full taxonomy of what to watch, read the complete guide to Shopify buying signals. And if you're ready to turn overlaps into cadences, the Shopify app seller outbound playbook and the multi-channel sequence take it from signal to sequence.
But the foundation is the data. Firmographics tell you who could buy, tech-stack detection tells you who's relevant, intent tells you when to move, and contacts tell you who to hit. Get all four on one profile and the overlaps do the qualifying for you. Start with the base map — company and tech-stack data — and build the rest of the stack on top of it. One signal is noise. Three is a meeting.
Turn signals into pipeline
Alert surfaces the Shopify merchants ready to buy your app — with the trigger, the context, and the contact attached.
Get started · $199/mo