Google Sheets + Slack: competitor price alerts
Competitor pricing changes always seem to happen when you’re busy. And by the time you notice, you’ve already lost a day of sales, over-discounted, or looked expensive for no good reason.
This price alerts automation hits e-commerce managers hardest, but pricing analysts and small retail owners feel it too. Instead of checking three sites and updating a sheet by hand, you get a clean log in Google Sheets and a Slack alert when something actually changes.
Below, you’ll see how this workflow monitors competitor pages, extracts the current price with AI, compares it to your last value, and pushes an alert to Slack so you can react fast (without living in a browser tab).
How This Automation Works
The full n8n workflow, from trigger to final output:
n8n Workflow Template: Google Sheets + Slack: competitor price alerts
flowchart LR
subgraph sg0["Daily Price Check Flow"]
direction LR
n0@{ icon: "mdi:play-circle", form: "rounded", label: "Daily Price Check Trigger", pos: "b", h: 48 }
n1["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/webhook.dark.svg' width='40' height='40' /></div><br/>Manual Price Check Webhook"]
n2["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/httprequest.dark.svg' width='40' height='40' /></div><br/>Amazon Price Scraper"]
n3["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/httprequest.dark.svg' width='40' height='40' /></div><br/>Best Buy Price Scraper"]
n4["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/httprequest.dark.svg' width='40' height='40' /></div><br/>Target Price Scraper"]
n5@{ icon: "mdi:cog", form: "rounded", label: "AI Price Data Extractor", pos: "b", h: 48 }
n6["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/code.svg' width='40' height='40' /></div><br/>Price Analysis & Intelligence"]
n7@{ icon: "mdi:database", form: "rounded", label: "Google Sheets Price Log", pos: "b", h: 48 }
n8@{ icon: "mdi:swap-horizontal", form: "rounded", label: "Price Change Alert Filter", pos: "b", h: 48 }
n9["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/slack.svg' width='40' height='40' /></div><br/>Slack Price Alert"]
n2 --> n5
n4 --> n5
n3 --> n5
n5 --> n6
n0 --> n2
n0 --> n3
n0 --> n4
n8 --> n9
n1 --> n2
n1 --> n3
n1 --> n4
n6 --> n7
n6 --> n8
end
%% Styling
classDef trigger fill:#e8f5e9,stroke:#388e3c,stroke-width:2px
classDef ai fill:#e3f2fd,stroke:#1976d2,stroke-width:2px
classDef aiModel fill:#e8eaf6,stroke:#3f51b5,stroke-width:2px
classDef decision fill:#fff8e1,stroke:#f9a825,stroke-width:2px
classDef database fill:#fce4ec,stroke:#c2185b,stroke-width:2px
classDef api fill:#fff3e0,stroke:#e65100,stroke-width:2px
classDef code fill:#f3e5f5,stroke:#7b1fa2,stroke-width:2px
classDef disabled stroke-dasharray: 5 5,opacity: 0.5
class n0 trigger
class n8 decision
class n7 database
class n1,n2,n3,n4 api
class n6 code
classDef customIcon fill:none,stroke:none
class n1,n2,n3,n4,n6,n9 customIcon
The Problem: Competitor prices change faster than you can check them
Manual price monitoring is the kind of task that looks “quick” until you add it up. You open Amazon, Best Buy, Target (and whoever else matters in your category), hunt for the exact SKU, confirm it’s the right variant, then paste numbers into a sheet. Do that daily and you’re burning about an hour a day just to keep a baseline. Miss a day, and you miss the context too: was this a one-day promo, a real drop, or a stock-related spike? The worst part is the timing. You usually discover the change after customers have already discovered it.
It adds up fast. Here’s where it breaks down in real teams.
- You end up checking too late, so your price response is always reactive.
- Copy-paste introduces small errors that turn into bad decisions later.
- “Significant change” is fuzzy, so people either over-alert or ignore alerts entirely.
- There’s no consistent history, which makes trend spotting feel like guessing.
The Solution: Automatic competitor price monitoring with Sheets logging and Slack alerts
This workflow runs on a schedule (or on-demand via a webhook) and checks competitor product pages for you. It pulls the latest page content for each competitor you care about, then uses an AI-powered parser (ScrapeGraphAI) to extract the price reliably even when the page layout changes. Next, the workflow runs price logic to calculate differences, label trend direction, and decide if the change is meaningful. Every scan is logged into Google Sheets so you build a real price history over time. If the change crosses your threshold, n8n posts a Slack message so your team sees it immediately and can take action.
The workflow starts with a scheduled price scan (and it can also be triggered via webhook when you want a spot-check). It fetches pricing from competitor URLs, parses and normalizes the numbers, then writes a row to Google Sheets. Finally, an “alert condition” step decides if Slack should get pinged.
What You Get: Automation vs. Results
| What This Workflow Automates | Results You’ll Get |
|---|---|
|
|
Example: What This Looks Like
Say you track 10 SKUs across three competitors (Amazon, Best Buy, Target). Manually, even a “quick” check is maybe 3 minutes per SKU per site once you factor in page loads and variant mismatches, which is about 90 minutes every day. With this workflow, you spend about 10 minutes once to add or update URLs, then the scheduled scan runs in the background and logs results automatically. When a price swings past your threshold, Slack gets the message. Most days, you do nothing at all.
What You’ll Need
- n8n instance (try n8n Cloud free)
- Self-hosting option if you prefer (Hostinger works well)
- Google Sheets for logging and reporting price history
- Slack to notify your team in real time
- ScrapeGraphAI API key (get it from your ScrapeGraphAI dashboard)
Skill level: Intermediate. You’ll connect accounts, paste competitor URLs, and tweak a threshold or two, but you won’t be writing an app.
Don’t want to set this up yourself? Talk to an automation expert (free 15-minute consultation).
How It Works
A scheduled scan (or an on-demand webhook) kicks things off. The scheduled trigger runs at whatever cadence you choose, like hourly or daily. If you need a spot-check before a promo goes live, the webhook trigger can run the same flow instantly.
Competitor pages are fetched automatically. n8n uses HTTP requests to pull the relevant product pages (this template includes Amazon, Best Buy, and Target as examples). You can add more competitors by duplicating that pattern and pointing it at a new URL.
AI extracts the price and normalizes it. ScrapeGraphAI parses the page content and returns structured pricing data, and then the workflow’s logic calculates current vs. previous values, trend direction, and change size. This is the part that reduces brittle scraping headaches, honestly.
Everything gets logged, and Slack only pings when it matters. A row is written to Google Sheets with timestamp, competitor name, product, current price, previous price, and change. An “if” check decides whether to send a Slack message, so your channel doesn’t turn into noise.
You can easily modify the monitored competitors to match your category based on your needs. See the full implementation guide below for customization options.
Step-by-Step Implementation Guide
Step 1: Configure the Schedule Trigger
Set up the scheduled scan that runs daily and the webhook for on-demand scans. Both triggers fan out to the same three pricing fetch nodes.
- Open Scheduled Price Scan and set the schedule rule to run every
24hours. - Open On-Demand Price Webhook and set Path to
price-check-webhookand HTTP Method toGET. - Confirm that Scheduled Price Scan outputs to Amazon Pricing Fetch, Best Buy Pricing Fetch, and Target Pricing Fetch in parallel.
- Confirm that On-Demand Price Webhook outputs to Amazon Pricing Fetch, Best Buy Pricing Fetch, and Target Pricing Fetch in parallel.
Tip: Use the webhook URL to run an immediate price scan without waiting for the daily schedule.
Step 2: Connect the Pricing Fetch Requests
Configure the three HTTP requests that retrieve pricing pages from Amazon, Best Buy, and Target.
- In Amazon Pricing Fetch, set URL to
https://www.amazon.com/s?k=wireless+headphonesand ensure the User-Agent header is present. - In Best Buy Pricing Fetch, set URL to
https://www.bestbuy.com/site/searchpage.jsp?st=wireless+headphonesand keep the User-Agent header. - In Target Pricing Fetch, set URL to
https://www.target.com/s?searchTerm=wireless+headphoneswith the same User-Agent header. - Verify each of these nodes connects into AI Pricing Parser.
⚠️ Common Pitfall: Missing or invalid User-Agent headers can lead to blocked requests and empty results.
Step 3: Set Up AI Parsing and Pricing Analysis
Parse the raw HTML into structured product data, then calculate pricing insights and alert flags.
- Open AI Pricing Parser and set Website URL to
{{ $json.url || 'https://www.amazon.com/s?k=wireless+headphones' }}. - Keep the User Prompt as provided to extract structured pricing data for wireless headphones.
- Credential Required: Connect your scrapegraphAIApi credentials in AI Pricing Parser.
- Open Pricing Insight Logic and keep the provided JavaScript to compute alerts, discounts, and competitive intelligence.
- Ensure AI Pricing Parser outputs to Pricing Insight Logic.
Step 4: Configure Output Destinations and Alert Logic
Store the normalized product data in Google Sheets and send alerts to Slack when conditions are met.
- In Log Prices to Sheets, set Operation to
appendOrUpdateand Authentication toserviceAccount. - Select the Document with ID
[YOUR_ID]and the SheetPrice Data(gid0). - Credential Required: Connect your googleSheetsOAuth2Api credentials in Log Prices to Sheets.
- Open Alert Condition Check and verify it checks any of these:
{{ $json.alert_worthy }}is true,{{ $json.discount_percentage }}≥20, or{{ $json.change_significance }}equalshigh. - In Post Slack Price Alert, set Select to
channeland choose your Channel ID. - Credential Required: Connect your slackOAuth2Api credentials in Post Slack Price Alert.
- Confirm Pricing Insight Logic outputs to both Log Prices to Sheets and Alert Condition Check in parallel, and that Alert Condition Check routes to Post Slack Price Alert.
Tip: Start with a dedicated Slack channel to validate alert formatting before pushing to a production channel.
Step 5: Test and Activate Your Workflow
Run a manual test, confirm data is stored, and validate alert routing before turning the workflow on.
- Click Execute Workflow to run a manual test from On-Demand Price Webhook or Scheduled Price Scan.
- Verify that AI Pricing Parser returns structured products and Pricing Insight Logic outputs enriched records.
- Check Log Prices to Sheets for new rows in the
Price Datasheet. - If conditions match, confirm a message appears from Post Slack Price Alert in your chosen channel.
- When successful, toggle the workflow Active to run automatically every 24 hours.
Common Gotchas
- Google Sheets credentials can expire or need specific permissions. If things break, check the Google connection status in n8n Credentials first and re-authorize the OAuth scopes.
- If you’re using Wait nodes or external rendering, processing times vary. Bump up the wait duration if downstream nodes fail on empty responses.
- Slack alerts can silently fail if the app loses channel access or the token is rotated. Verify your Slack app permissions and confirm the target channel still allows the integration to post.
Frequently Asked Questions
About 20 minutes if your accounts and URLs are ready.
No. You’ll mainly connect Google Sheets and Slack, then paste competitor URLs and set a change threshold.
Yes. n8n has a free self-hosted option and a free trial on n8n Cloud. Cloud plans start at $20/month for higher volume. You’ll also need to factor in ScrapeGraphAI usage and, if you add OpenAI steps, API costs that are usually a few cents per run.
Two options: n8n Cloud (managed, easiest setup) or self-hosting on a VPS. For self-hosting, Hostinger VPS is affordable and handles n8n well. Self-hosting gives you unlimited executions but requires basic server management.
Yes, and it’s a common tweak. You can adjust the threshold logic in the “Alert Condition Check” step so accessories might alert on small changes, while high-ticket items only alert on bigger swings. Many teams also customize the Slack message to include SKU, competitor, previous price, current price, and a direct URL. If you want different alert rules per competitor, you can branch after the parsing step and apply separate conditions.
Usually it’s an expired OAuth session or the spreadsheet permissions changed. Reconnect Google Sheets in n8n Credentials, then confirm the workflow still points to the right spreadsheet and tab name. If you’re working inside a shared drive, make sure the connected Google account actually has edit access to that file.
Dozens to hundreds, depending on how often you run it and how heavy the pages are.
For this use case, n8n is typically a better fit because scraping and data parsing logic get complicated fast. You can branch, merge, and run custom logic without hitting “premium step” limits, and self-hosting avoids per-task pricing when you scale. Zapier or Make can still work if you only track a couple of pages and don’t need trend calculations, but it gets pricey and brittle as soon as you add more competitors. Also, n8n’s workflow structure makes it easier to debug when a competitor page changes. If you’re unsure, Talk to an automation expert and get a recommendation for your volume.
Once this is running, competitor monitoring stops being a daily chore and becomes a quiet signal you can trust. The workflow watches the noise so you can focus on pricing decisions that actually move revenue.
Need Help Setting This Up?
Our automation experts can build and customize this workflow for your specific needs. Free 15-minute consultation—no commitment required.