🔓 Unlock all 10,000+ workflows & prompts free Join Newsletter →
✅ Full access unlocked — explore all 10,000 AI workflow and prompt templates Browse Templates →
Home n8n Workflow
January 22, 2026

Google Sheets to Discord, competitor price alerts

Lisa Granqvist Partner Workflow Automation Expert

You shouldn’t have to keep opening competitor pages just to confirm what you already suspect: you’re being undercut again. But when prices move daily, “quick checks” turn into a routine that steals attention and still misses changes.

This hits ecommerce managers first. A marketing lead running promos feels it too. And if you’re a founder watching margins, Sheets Discord alerts can be the difference between reacting fast and reacting late.

This workflow watches competitor prices, compares them to your own prices in Google Sheets, then pings your Discord channel only when action is needed. You’ll see how it works, what you need, and what to tweak safely.

How This Automation Works

The full n8n workflow, from trigger to final output:

n8n Workflow Template: Google Sheets to Discord, competitor price alerts

The Problem: Competitor prices change faster than you can check

Price monitoring sounds simple until you do it for real. You keep a Sheet of products, open a competitor link, scan the page for the price, copy it back, then decide if you need to move. Now multiply that by 20 products, three competitors, and a week where prices bounce every day. The worst part is the mental load. You’re never sure you checked everything, and when you miss a drop, you usually find out after sales slow down.

It adds up fast. And the “almost automated” approach (a tab open, a reminder, a quick copy-paste) is where mistakes love to hide.

  • A quick “10-minute” daily check can become about 2 hours once you include interruptions and re-checking.
  • People copy the wrong price, grab the shipping price, or miss a sale badge, then the Sheet becomes unreliable.
  • You only notice undercutting after you’ve already lost a day of conversions or momentum on an ad.
  • If you hand this off, you end up managing the checker instead of managing pricing.

The Solution: Google Sheets + Discord price monitoring that runs itself

This n8n workflow turns your Google Sheet into a lightweight pricing “control center.” On a schedule (daily, or as often as you choose), it pulls the next unchecked product row, visits the competitor product page, and extracts the current displayed price from the HTML. It then cleans that value into a usable number and compares it with your own price stored in the Sheet. If the competitor is lower, the workflow sends a clear Discord alert through a webhook so you can react immediately. Either way, the row gets marked as checked, and the automation moves on until there’s nothing left to process.

The workflow starts with a scheduled run and a Google Sheets lookup. Then it uses an HTTP request plus HTML extraction and a small code cleanup to get a real numeric price. Finally, an If check decides between sending a Discord alert or quietly marking the row and continuing.

What You Get: Automation vs. Results

Example: What This Looks Like

Say you track 30 products in a Google Sheet and each one has a competitor URL. Manually, even 4 minutes per product (open page, find price, copy, sanity-check) is about 2 hours per run, and you still have to remember to do it. With this workflow, you spend maybe 5 minutes keeping the Sheet updated, then wait for the scheduled run. Discord only interrupts you when you’re undercut, which means most days you just get on with your work.

What You’ll Need

  • n8n instance (try n8n Cloud free)
  • Self-hosting option if you prefer (Hostinger works well)
  • Google Sheets to store products, URLs, and your prices
  • Discord to receive alerts in a team channel
  • Discord webhook URL (create it in your Discord channel settings)

Skill level: Beginner. You’ll paste a webhook URL, connect Google Sheets, and confirm the correct price element to extract.

Don’t want to set this up yourself? Talk to an automation expert (free 15-minute consultation).

How It Works

A schedule kicks it off. n8n runs this daily (or on your preferred cadence), so monitoring happens even when you’re busy or out of office.

Your Sheet provides the queue. The workflow pulls one unchecked row from Google Sheets, which typically includes the product name, competitor URL, your price, and a simple “checked” flag.

Competitor data is fetched and cleaned. n8n loads the competitor page using an HTTP request, extracts the price from the page HTML, then converts it into a plain number so comparisons are consistent.

Discord only gets the important stuff. If the competitor price is lower than yours, a Discord webhook message posts the details, then the row is marked checked so it won’t be reprocessed in the same cycle.

You can easily modify the schedule frequency and the price rules (for example, alert only if the gap is more than a dollar) 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 the schedule that starts your price monitoring cycle.

  1. Open Scheduled Automation Kickoff.
  2. Set your preferred schedule in Rule (use the built-in interval selector).
  3. Confirm Scheduled Automation Kickoff connects to Fetch Unchecked Entry as the first data step.

⚠️ Common Pitfall: If the schedule is too frequent, you may hit rate limits on competitor sites. Start with a longer interval and adjust after testing.

Step 2: Connect Google Sheets

Configure the Google Sheets nodes to read product data, track check status, and reset the check flag.

  1. Open Fetch Unchecked Entry and set Document to your sheet ID (currently [YOUR_ID]) and Sheet to Sheet1 (gid 0).
  2. Confirm the filter in Fetch Unchecked Entry is set to checked = 0 with Return First Match enabled.
  3. Open Mark Row Checked and confirm Operation is update, with column mapping for checked = 1, Product Name = {{ $('Fetch Unchecked Entry').item.json['Product Name'] }}, and competitor price = {{ $('Convert Price to Number').item.json.price }}.
  4. Open Fetch Checked Entry and ensure the filter is checked = 1 with Return First Match enabled.
  5. Open Reset Check Flag and confirm Operation is update with checked = 0 and Product Name = {{ $json["Product Name"] }}.
  6. Credential Required: Connect your googleSheetsOAuth2Api credentials in Fetch Unchecked Entry, Mark Row Checked, Fetch Checked Entry, and Reset Check Flag.

Tip: Keep column names in your sheet exactly as used in the workflow (Product Name, my Price, Competitor URL, competitor price, checked).

Step 3: Set Up Price Extraction and Comparison

Configure the competitor page fetch, HTML extraction, number conversion, and threshold comparison.

  1. Open Retrieve Competitor Page and set URL to {{ $json['Competitor URL'] }}.
  2. Open Extract Price Element and confirm Operation is extractHtmlContent with CSS Selector = .price_color and key price.
  3. Open Convert Price to Number and keep the provided JavaScript that strips £ and parses a float.
  4. Open Compare Price Threshold and confirm the condition is number < with Left Value = {{ $json.price }} and Right Value = {{ $('Fetch Unchecked Entry').item.json['my Price'] }}.

⚠️ Common Pitfall: If the competitor site changes its HTML class, update Extract Price Element to match the new selector.

Step 4: Configure Notifications and Looping Logic

Send Discord alerts and manage the loop that continues checking until all rows are processed.

  1. Open Discord Price Alert and set Content to competitor has decreased price on product: {{ $('Fetch Unchecked Entry').item.json['Product Name'] }} our price: {{ $('Fetch Unchecked Entry').item.json['my Price'] }} competitor's price:{{ $('Convert Price to Number').item.json.price }}.
  2. Credential Required: Connect your discordWebhookApi credentials in Discord Price Alert.
  3. Open Discord Completion Notice and set Content to Price checks complete..
  4. Credential Required: Connect your discordWebhookApi credentials in Discord Completion Notice.
  5. Confirm the logic flow: Compare Price Threshold sends alerts to Discord Price Alert when true, and sends directly to Mark Row Checked when false.
  6. Confirm the loop: Mark Row Checked returns to Fetch Unchecked Entry to process the next row.
  7. Confirm the completion flow: Verify Unchecked Exists routes to Discord Completion Notice when no unchecked rows remain, then to Fetch Checked Entry, Validate Row Presence, and Reset Check Flag to reset checked rows for the next cycle.

Tip: The Flowpast Branding sticky note is informational only and does not affect execution.

Step 5: Test and Activate Your Workflow

Validate the end-to-end cycle and enable the schedule.

  1. Click Execute Workflow to run a manual test starting from Scheduled Automation Kickoff.
  2. Verify a row with checked = 0 is fetched and processed through Retrieve Competitor PageExtract Price ElementConvert Price to Number.
  3. Confirm the comparison in Compare Price Threshold correctly routes to Discord Price Alert (true) or straight to Mark Row Checked (false).
  4. Check that Mark Row Checked updates checked to 1 and writes the competitor price to the sheet.
  5. When no unchecked rows remain, confirm Discord Completion Notice fires and Reset Check Flag resets checked to 0.
  6. Turn the workflow Active to enable scheduled execution.
🔒

Unlock Full Step-by-Step Guide

Get the complete implementation guide + downloadable template

Common Gotchas

  • Google Sheets access can fail if the connected Google account loses permission. If things break, check the n8n credential and the Sheet sharing settings first.
  • If you’re using Wait nodes or external rendering, processing times vary. Bump up the wait duration if downstream nodes fail on empty responses.
  • Web scraping is fragile when page layouts change. If Discord alerts stop suddenly, inspect the competitor page and update the HTML selector in the Extract Price Element step.

Frequently Asked Questions

How long does it take to set up this Sheets Discord alerts automation?

About 30 minutes if your Sheet and Discord channel are ready.

Do I need coding skills to automate competitor price alerts?

No. You will connect Google Sheets and paste a Discord webhook URL. The only “technical” part is confirming the correct price element to extract from the page.

Is n8n free to use for this Sheets Discord alerts workflow?

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 OpenAI API costs if you enable any AI steps (often just a few dollars a month at low volume).

Where can I host n8n to run this automation?

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.

Can I customize this Sheets Discord alerts workflow for monitoring a different website?

Yes, but you’ll update the competitor URL and the HTML selector used in the “Extract Price Element” step. If the new site formats prices differently, adjust the “Convert Price to Number” code so it strips currency symbols and commas correctly. Common customizations include running it twice per day, adding a “minimum difference” rule, and including the product SKU in the Discord message for faster handling.

Why is my Discord connection failing in this workflow?

Usually the webhook URL is wrong, deleted, or tied to a channel you no longer have access to. Regenerate the Discord webhook in the target channel, then update it in the Discord nodes in n8n. If it still fails, check n8n execution logs for a 401/403 response, which points to permissions, or a 404, which often means the webhook was removed.

How many products can this Sheets Discord alerts automation handle?

Plenty for small catalogs.

Is this Sheets Discord alerts automation better than using Zapier or Make?

Often, yes, because this workflow includes scraping, HTML extraction, and conditional logic, which is where no-code tools can get awkward or expensive. n8n is also easier to extend: you can loop through rows, add retries, and store state in Google Sheets without turning the scenario into a mess. If you self-host, you’re not paying per task in the same way, so daily monitoring stays predictable. Zapier or Make can still be fine if you’re not scraping and you only need basic “Sheet row changed → send message.” If you’re unsure, Talk to an automation expert and describe your catalog size and sites you monitor.

Once this is running, price monitoring becomes background noise instead of a daily chore. You get the signal in Discord, skip the busywork, and stay competitive without living in a spreadsheet.

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.

Lisa Granqvist

Workflow Automation Expert

Expert in workflow automation and no-code tools.

×

Use template

Get instant access to this n8n workflow Json file

💬
Get a free quote today!
Get a free quote today!

Tell us what you need and we'll get back to you within one working day.

Get a free quote today!
Get a free quote today!

Tell us what you need and we'll get back to you within one working day.

Launch login modal Launch register modal