Skip to content
agentusehub
E-commerceAdvancedRetail

Watch competitor prices and reprice nightly

Scrape competitor product pages every night with Apify, match them to your SKUs, and update Shopify prices within margin and change limits you set.

Time saved
7h / week
Setup time
6 hours
Running cost
$110/mo
Cost range
$100+/mo

The problem it solves

Competitors change prices daily, and checking them by hand across hundreds of SKUs is not realistic. Stores end up either overpriced and losing the sale or discounting blindly and giving away margin. By the time someone notices a competitor’s price drop, a week of orders has gone elsewhere.

How it flows
  1. Nightly scrape
  2. Match to your SKUs
  3. Apply price rules
  4. Update Shopify

Step-by-step setup

  1. Map competitor URLs to your products

    For your top 200–500 SKUs, find the matching product page on two or three competitors. Store the URLs on each product in a list metafield such as `pricing.competitor_urls`, so the mapping lives next to the product.

  2. Schedule the Apify scrape

    Use Apify’s e-commerce scraping Actor, or a site-specific Actor where one exists, and schedule it for 01:00. Output price, currency, in_stock, title, gtin and url. Test on 20 URLs first and check that sale prices are captured rather than struck-through list prices.

  3. Pull results into n8n

    At 02:00, a Schedule Trigger runs the Apify node to get dataset items from the last run. Join them to your products by URL, and fetch each variant’s current price and unit cost from the Shopify Admin API.

  4. Confirm matches with ChatGPT

    When the GTIN is missing or does not match, send both listings to ChatGPT with the match-check prompt. Accept only a “same” verdict with confidence of 0.9 or higher; skip and log everything else.

  5. Apply pricing rules in a Code node

    Target price is the lowest in-stock competitor price minus $0.50, never below unit cost × 1.25 and never more than 10% away from the current price in a single night. Ignore any competitor price that moved more than 40% since yesterday, which usually means a scrape error.

  6. Write prices and log every change

    Update changed variants with the `productVariantsBulkUpdate` GraphQL mutation from an HTTP Request node using your Shopify credential. Log old price, new price, competitor price and rule applied, then send yourself the nightly summary with a Send Email node.

  7. Run in shadow mode first

    For the first two weeks, skip the write step and log proposed prices only. Compare them with what you would have done by hand, then enable writes one collection at a time.

Example prompts

Product match check
You decide whether two product listings are the same item.

Our product:
Title: {{our_title}}
Brand: {{our_brand}}
Variant: {{our_variant}}
GTIN: {{our_gtin}}

Competitor listing:
Title: {{their_title}}
Price: {{their_price}}
Details: {{their_details}}

They are the same only if brand, model, size or capacity, and pack quantity all match. Treat different colours as different unless the competitor prices all colours the same.

Return JSON only: {"verdict": "same" | "different" | "unsure", "confidence": 0.0-1.0, "reason": "one sentence"}
Nightly repricing summary
Summarise tonight's repricing run for the store owner. Here are the price changes and skipped items:
{{changes_json}}

Write, in this order:
1. Total SKUs checked, number of prices raised, number lowered, and the average change in percent.
2. The five largest changes, each with SKU, old price, new price and the competitor that triggered it.
3. Any SKU where we are now more than 15% above the cheapest competitor but are held back by the margin floor. These need a supplier or positioning decision, not a price cut.

Plain text, under 200 words.
E-commerce · BeginnerSponsored
  1. Checkout abandoned
  2. Read cart contents
  3. Pick collection copy

Win back abandoned carts with personal emails

A Klaviyo abandoned-checkout flow with ChatGPT-written copy for each product collection, so every reminder speaks to what the shopper left behind.

Shopify · Klaviyo · ChatGPT
Marketing · Advanced
  1. Keyword in
  2. Scrape top 10 results
  3. Extract page outlines

SEO content briefs from the live SERP

Give it a keyword and get a brief built from the pages that rank today: headings, gaps, questions to answer and a target length.

LangChain · ChatGPT · Apify · Notion
Customer Support · Beginner
  1. Support email
  2. Order-status check
  3. Shopify order lookup

Auto-answer order status emails with live tracking

Spot order-status questions in the support inbox, look up the order in Shopify and reply with live tracking and an honest ETA.

Gmail · Zapier · ChatGPT · Shopify