Shopify Klaviyo Gap Leads Scraper avatar

Shopify Klaviyo Gap Leads Scraper

Pricing

Pay per event

Go to Apify Store
Shopify Klaviyo Gap Leads Scraper

Shopify Klaviyo Gap Leads Scraper

Find contactable Shopify stores that do not show visible Klaviyo/email-SMS retention tools. Enrich leads with products, contacts, socials, and scoring.

Pricing

Pay per event

Rating

0.0

(0)

Developer

Stas Persiianenko

Stas Persiianenko

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

7 days ago

Last modified

Share

Find public Shopify stores that appear contactable but do not show visible Klaviyo or email/SMS retention instrumentation. The actor enriches each store with Shopify evidence, product samples, contact signals, social links, detected retention tools, a gap reason, and an opportunity score.

What does Shopify Klaviyo Gap Leads Scraper do?

This actor checks public ecommerce storefronts and returns one lead row per store.

It helps you answer:

  • ๐Ÿ›๏ธ Is this domain a public Shopify store?
  • ๐Ÿ“ฆ Does /products.json expose product and price signals?
  • ๐Ÿ“ง Is there a visible contact email, phone number, contact page, or policy page?
  • ๐Ÿ’ฌ Is Klaviyo visible in public HTML/scripts?
  • ๐Ÿงฐ Are competing retention tools visible instead?
  • ๐ŸŽฏ Is this a good outreach opportunity for lifecycle, email, or SMS services?

The actor is HTTP-only. It does not log in, use private APIs, or require a browser.

Who is it for?

Ecommerce retention agencies

Use it to build a prospect list of Shopify merchants that may need Klaviyo setup, migration, lifecycle strategy, or SMS/email automation help.

B2B lead-generation teams

Use it to enrich Shopify domains with contact and technology signals before outreach.

Shopify app vendors

Use it to find stores that appear to lack visible retention tooling and could be a fit for your app.

Sales operations teams

Use it to score and prioritize a merchant list before pushing leads into a CRM.

Why use it?

Generic Shopify lead scrapers tell you that a store exists. This actor focuses on a specific buyer pain: missing visible retention/email-SMS instrumentation.

That makes the output more actionable for agencies and SaaS vendors selling lifecycle marketing services.

How the detection works

For each domain, the actor:

  1. Normalizes the URL.
  2. Fetches the public homepage.
  3. Checks Shopify markers such as cdn.shopify.com, Shopify.theme, myshopify.com, and cart/product endpoints.
  4. Fetches /products.json when available.
  5. Scans contact/about/policy pages.
  6. Extracts public emails, phones, social links, and legal/address hints.
  7. Searches public HTML/scripts for Klaviyo and related retention tools.
  8. Calculates gapReason and opportunityScore.

What retention tools are detected?

The actor checks public HTML/script markers for:

  • Klaviyo
  • Attentive
  • Omnisend
  • Mailchimp
  • Postscript
  • Yotpo SMS / SMSBump
  • Privy
  • Justuno
  • Sendlane
  • Drip

Tool detection is based on visible public scripts/domains and should be treated as a strong public signal, not a complete private-tech-stack audit.

Data you can extract

FieldDescription
storeUrlInput/normalized storefront URL
domainStore domain
statusok, not_shopify, blocked, or error
isShopifyWhether public evidence indicates Shopify
platformEvidenceSignals proving Shopify detection
productCountCount of sampled products from /products.json
sampleProductsProduct title, handle, URL, type, vendor, price range, availability
currencyCurrency marker when visible
priceMin, priceMaxPrice range from sampled products
emails, phonesPublic contact signals
contactUrls, aboutUrls, policyUrlsUseful public store pages
socialLinksPublic social profile URLs
addressHintsLegal/address snippets when visible
klaviyoDetectedWhether Klaviyo markers are visible
retentionToolsDetectedOther retention tools detected
gapReasonHuman-readable reason for the lead status
opportunityScore0-100 score for outreach fit
pagesScannedNumber of pages fetched and scanned
scannedAtISO timestamp

How much does it cost to find Shopify Klaviyo gap leads?

The actor uses pay-per-event pricing:

  • Start event: $0.005 per run.
  • Store lead saved event: tiered per result row. BRONZE is $0.00034302 per store row (about $0.34 per 1,000 rows), with lower prices on higher Apify tiers.

The default test input is intentionally small so your first run is inexpensive. For large prospecting lists, set maxStores to the number of domains you want to analyze.

Input options

storeUrls

Add Shopify store domains or URLs directly.

Examples:

[
{ "url": "https://www.allbirds.com" },
{ "url": "gymshark.com" }
]

discoveryUrls

Optional public pages to scan for outbound merchant links. This is useful when you have a directory page or a list of brand websites.

maxStores

Caps unique store domains processed in the run.

maxProductsPerStore

Controls product sampling depth from /products.json.

maxPagesPerStore

Controls how many public pages are scanned for contact, social, policy, and retention-tool signals.

proxyConfiguration

Optional. Start without proxy. If some stores block direct requests, use Apify proxy settings.

Example input

{
"storeUrls": [
{ "url": "https://www.allbirds.com" },
{ "url": "https://www.gymshark.com" }
],
"maxStores": 2,
"maxProductsPerStore": 5,
"maxPagesPerStore": 4,
"requestTimeoutSecs": 20,
"proxyConfiguration": { "useApifyProxy": false }
}

Example output

{
"storeUrl": "https://www.allbirds.com",
"domain": "allbirds.com",
"status": "ok",
"isShopify": true,
"klaviyoDetected": false,
"retentionToolsDetected": [],
"gapReason": "Shopify store appears contactable and no visible retention/email-SMS tool was detected.",
"opportunityScore": 85,
"emails": ["help@example.com"],
"productCount": 5
}

How to run on Apify

  1. Open the actor on Apify.
  2. Paste Shopify store domains into storeUrls.
  3. Keep the default limits for a quick test.
  4. Click Start.
  5. Download the dataset as JSON, CSV, Excel, or use the API.

Tips for better results

  • โœ… Provide clean store domains when possible.
  • โœ… Keep maxPagesPerStore at 4-8 for fast enrichment.
  • โœ… Use direct store lists for the highest precision.
  • โœ… Review gapReason before outreach.
  • โš ๏ธ Treat missing Klaviyo as a public visibility signal, not a guarantee that the merchant has no private integrations.

Integrations

You can connect the output to:

  • Google Sheets for prospect review.
  • HubSpot or Salesforce for sales workflows.
  • Clay for enrichment and email finding.
  • Make or Zapier for automated routing.
  • A data warehouse for market mapping.

API usage with Node.js

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('automation-lab/shopify-klaviyo-gap-leads-scraper').call({
storeUrls: [{ url: 'https://www.allbirds.com' }],
maxStores: 1
});
console.log(run.defaultDatasetId);

API usage with Python

from apify_client import ApifyClient
client = ApifyClient('MY-APIFY-TOKEN')
run = client.actor('automation-lab/shopify-klaviyo-gap-leads-scraper').call(run_input={
'storeUrls': [{'url': 'https://www.allbirds.com'}],
'maxStores': 1,
})
print(run['defaultDatasetId'])

API usage with cURL

curl "https://api.apify.com/v2/acts/automation-lab~shopify-klaviyo-gap-leads-scraper/runs?token=$APIFY_TOKEN" \
-H 'Content-Type: application/json' \
-d '{"storeUrls":[{"url":"https://www.allbirds.com"}],"maxStores":1}'

MCP usage

Use this actor from Claude or other MCP clients through Apify MCP:

https://mcp.apify.com/?tools=automation-lab/shopify-klaviyo-gap-leads-scraper

Add the Apify MCP server in Claude Desktop or Claude Code:

$claude mcp add apify --url "https://mcp.apify.com/?tools=automation-lab/shopify-klaviyo-gap-leads-scraper"

JSON configuration example:

{
"mcpServers": {
"apify": {
"url": "https://mcp.apify.com/?tools=automation-lab/shopify-klaviyo-gap-leads-scraper"
}
}
}

Example prompts:

  • "Check these Shopify domains for visible Klaviyo and rank them by opportunity score."
  • "Find contactable Shopify stores that do not show Klaviyo scripts."
  • "Summarize which stores already use competing SMS/email tools."

Legality and ethical use

This actor collects publicly available website data. You are responsible for using the results lawfully, respecting applicable privacy, marketing, anti-spam, and data-protection rules, and honoring opt-out requests.

FAQ

Is this a private Klaviyo audit?

No. It only checks public storefront HTML, scripts, links, and Shopify endpoints. Treat the output as a public lead signal, not proof of a merchant's private marketing stack.

Can I use this for cold outreach?

You are responsible for complying with applicable email, SMS, privacy, and anti-spam rules in your jurisdiction. Use the data for legitimate business research and honor opt-out requests.

Troubleshooting

Why is a known Shopify store marked blocked?

Some merchants block automated requests or geographies. Try enabling Apify proxy, reduce request depth, or run again later.

Why is klaviyoDetected false when the brand uses Klaviyo?

The actor detects public HTML/script markers. A brand may use server-side, tag-manager-only, or region-specific integrations that are not visible in the fetched public pages.

Why are there no emails?

Many stores hide emails behind contact forms. Check contactUrls and socialLinks for alternative outreach paths.

Output quality notes

The actor favors explicit status fields over hard failures. If one store is blocked or not Shopify, the run continues and saves a diagnostic row.

Performance notes

The implementation is HTTP-only and runs at 512 MB by default. It avoids Playwright to keep costs low and throughput high.

Changelog

  • 0.1 Initial build: direct store/domain input, optional discovery URL scanning, Shopify evidence, product samples, contact/social extraction, retention-tool detection, gap reason, and opportunity scoring.