Google Sheets + Slack alerts for Shopify launches
You spot a competitor launch… two days late. Not because you’re asleep at the wheel, but because checking product pages manually is the kind of busywork that quietly steals your week.
This is the headache that e-commerce marketers complain about in Slack, and it’s just as painful for product strategists and founders running lean. With Shopify launch alerts, you stop “keeping an eye on competitors” and start getting notified only when something actually changes.
This workflow monitors competitor Shopify stores on a schedule, logs product lists to Google Sheets, and pings Slack when a new product appears. You’ll see how it works, what you need, and the parts you can tailor to your team.
How This Automation Works
The full n8n workflow, from trigger to final output:
n8n Workflow Template: Google Sheets + Slack alerts for Shopify launches
flowchart LR
subgraph sg0["Schedule Flow"]
direction LR
n0@{ icon: "mdi:play-circle", form: "rounded", label: "Schedule Trigger", pos: "b", h: 48 }
n1@{ icon: "mdi:database", form: "rounded", label: "Get row(s) in sheet", pos: "b", h: 48 }
n2@{ icon: "mdi:database", form: "rounded", label: "Create sheet", pos: "b", h: 48 }
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/slack.svg' width='40' height='40' /></div><br/>Send a message"]
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/merge.svg' width='40' height='40' /></div><br/>Merge"]
n5@{ icon: "mdi:database", form: "rounded", label: "Get row(s) for Compare", 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/>Compare Datas"]
n7["<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/>Parse Json"]
n8@{ icon: "mdi:cog", form: "rounded", label: "Get workflow Data", pos: "b", h: 48 }
n9@{ icon: "mdi:cog", form: "rounded", label: "Run a workflow", pos: "b", h: 48 }
n10@{ icon: "mdi:database", form: "rounded", label: "Store Data", pos: "b", h: 48 }
n11@{ icon: "mdi:database", form: "rounded", label: "Get Data For Compare", pos: "b", h: 48 }
n12@{ icon: "mdi:swap-horizontal", form: "rounded", label: "Check New Product", pos: "b", h: 48 }
n13@{ icon: "mdi:swap-vertical", form: "rounded", label: "Loop Over Items", pos: "b", h: 48 }
n4 --> n6
n7 --> n5
n7 --> n10
n10 --> n11
n2 --> n9
n6 --> n12
n9 --> n8
n3 --> n13
n13 --> n2
n0 --> n1
n12 --> n3
n12 --> n13
n8 --> n7
n1 --> n13
n11 --> n4
n5 --> n4
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 n12 decision
class n1,n2,n5,n10,n11 database
class n6,n7 code
classDef customIcon fill:none,stroke:none
class n3,n4,n6,n7 customIcon
The Problem: Competitor launches show up after you needed them
Competitive tracking sounds simple until you do it for real. Someone has to open each competitor store, click into “New,” scroll, compare what they remember from last week, then tell the team what changed. And that’s the best-case scenario. In practice, the check gets skipped, people disagree on what’s “new,” and the one day you don’t look is the day a competitor drops a product that steals your attention (and your customers) for the next month.
It adds up fast. Here’s where it breaks down.
- Checking 10 stores manually can burn about 2 hours, and that’s before you write any summary.
- Teams miss launches because “someone thought someone else was watching it.”
- Copy-pasting product URLs into spreadsheets creates messy history, so you can’t trust what changed.
- Generic monitoring tools alert on everything (themes, banners, tiny edits), so people mute the channel.
The Solution: Automatic competitor product monitoring with Sheets + Slack
This n8n workflow turns competitor tracking into a reliable background process. It runs on a schedule (daily is common), pulls your competitor list from a “master” Google Sheet, and checks each store one-by-one. For every competitor, it makes sure there’s a dedicated tracking worksheet, scrapes the current product list using BrowserAct, and writes that snapshot into the right place. Then it loads the previous product list, compares the two, and only if it finds a new product does it post an alert to Slack. Quiet when nothing happens, loud when it matters.
The workflow starts with a scheduled check and a Google Sheets read. From there it loops competitors, scrapes product lists via BrowserAct, and saves a time-stamped history to Sheets. Finally, a difference check confirms what’s new and triggers a Slack message to your team.
What You Get: Automation vs. Results
| What This Workflow Automates | Results You’ll Get |
|---|---|
|
|
Example: What This Looks Like
Say you track 12 competitor Shopify stores. A “quick check” is usually 10 minutes per store once you include loading pages, clicking into collections, and dropping notes into a sheet, which is about 2 hours each week if you do it daily on weekdays. With this workflow, your time is basically adding URLs to the master sheet (maybe 5 minutes) and skimming Slack alerts when they happen. The scrape and compare run in the background, and you only get pulled in when a new product is detected.
What You’ll Need
- n8n instance (try n8n Cloud free)
- Self-hosting option if you prefer (Hostinger works well)
- BrowserAct for scraping competitor product lists
- Google Sheets to store URLs and product history
- Slack to notify your team when products appear
- BrowserAct API key (get it from your BrowserAct dashboard)
Skill level: Intermediate. You’ll connect accounts, paste an API key, and be comfortable adjusting a couple of fields in Google Sheets.
Don’t want to set this up yourself? Talk to an automation expert (free 15-minute consultation).
How It Works
A scheduled check kicks things off. n8n runs this workflow on a cadence you choose (daily is typical). No one needs to remember to “go look.”
Your competitor list comes from Google Sheets. The workflow reads rows from a master sheet, then loops through each competitor link in batches so you can scale up without rewriting anything.
BrowserAct scrapes, then Sheets stores the snapshot. For each store, the workflow ensures a dedicated worksheet exists, runs a BrowserAct task to fetch the current product list, decodes the returned JSON, and appends the newest records to that competitor’s history.
A comparison step decides if it’s worth interrupting you. It pulls “previous” and “latest” product data, merges both streams, and a code-based difference check flags true additions. If something new shows up, Slack gets the alert. If not, it quietly moves on to the next store.
You can easily modify the schedule and what details get logged (title, URL, price, product handle) based on your needs. See the full implementation guide below for customization options.
Step-by-Step Implementation Guide
Step 1: Configure the Scheduled Trigger
This workflow starts on a schedule and immediately loads your competitor list.
- Open Scheduled Automation Start and set your preferred schedule interval in Rule.
- Confirm Scheduled Automation Start connects to Fetch Sheet Rows to begin the data pull.
- Optionally leave Flowpast Branding as a visual reference note in your canvas.
Step 2: Connect Google Sheets
Multiple Google Sheets nodes read and write product data. Configure these once and reuse credentials.
- Open Fetch Sheet Rows and set Document to
Shopify New Product Monitorand Sheet toCompetitor Store List. Credential Required: Connect your googleSheetsOAuth2Api credentials. - In Generate Worksheet, set Operation to
createand Title to={{ $json.Name }}. Credential Required: Connect your googleSheetsOAuth2Api credentials. - Configure the compare sheet nodes to the same document and target sheet: Load Compare Rows, Append Sheet Records, and Fetch Comparison Data should point to
Shopify New Product Monitorand the sheethiutdenim - Men. Credential Required: Connect your googleSheetsOAuth2Api credentials for all three nodes. - In Append Sheet Records, keep Operation as
appendOrUpdateand ensure the columns mapNameandPricewith Matching Columns set toName.
Step 3: Set Up Browser Automation and JSON Parsing
This section scrapes competitor products and converts the results into structured items.
- In Iterate Records, keep default settings to batch through rows from Fetch Sheet Rows.
- Open Execute Browser Task and confirm Workflow ID is
57142458383023994. Set input parameters: Competitor_Store_Link to={{ $('Iterate Records').item.json.Link }}, Pagination_Type to={{ $('Iterate Records').item.json["Pagination Type"] }}, and Total_Product to10. Credential Required: Connect your browserActApi credentials. - In Retrieve Task Output, set Operation to
getTask, Task ID to={{ $json.id }}, and enable Wait For Finish. Credential Required: Connect your browserActApi credentials. - Review Decode JSON Payload to ensure it parses
$input.first().json.output.stringinto items.
$input.first().json.output.string.Step 4: Configure Parallel Compare and Merge Logic
After parsing, the workflow compares new products against previous records to detect additions.
- Decode JSON Payload outputs to both Load Compare Rows and Append Sheet Records in parallel.
- Confirm Append Sheet Records flows into Fetch Comparison Data to pull the latest combined dataset.
- In Combine Streams, set Mode to
chooseBranchand Use Data Of Input to2. - Review Evaluate Lists to ensure it compares list values and outputs a single item with
AlertandMessage.
Alert flag before wiring notifications.Step 5: Configure Output and Slack Alerts
When a new product is detected, the workflow posts to Slack and loops back to the next record.
- In New Item Check, confirm the conditions check
={{ $json.Alert }}exists and equals=true. - Open Post Slack Alert and set Text to
=New Product Added to {{ $('Iterate Records').first().json.Name }} Website Please Check it out ------------------------------------------------------ {{ $('Scheduled Automation Start').first().json['Readable date']}}. Credential Required: Connect your slackOAuth2Api credentials. - Select your Slack channel in Channel (e.g.,
new_product_added). - Verify the flow continues from Post Slack Alert back to Iterate Records for the next store.
Step 6: Test and Activate Your Workflow
Validate the end-to-end flow and then enable automated monitoring.
- Click Execute Workflow to run Scheduled Automation Start manually.
- Confirm Fetch Sheet Rows pulls items and Execute Browser Task runs with expected inputs.
- Verify Decode JSON Payload outputs structured items and Evaluate Lists returns
Alertas expected. - Check Slack for a message from Post Slack Alert when New Item Check is true.
- Toggle the workflow to Active to enable scheduled execution.
Common Gotchas
- Google Sheets credentials can expire or need specific permissions. If things break, check the Google connection in n8n’s Credentials section 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.
- BrowserAct scraping can fail on stores with heavy bot protection or changing layouts. When alerts stop suddenly, review the BrowserAct task output and confirm the template is still extracting the right fields.
Frequently Asked Questions
About an hour if your Sheets, Slack, and BrowserAct accounts are ready.
No. You’ll connect services and paste the BrowserAct API key, then test a run. The only “code” here is already included for the comparison logic.
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 BrowserAct usage fees based on how often you scrape.
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 quick change. Update the “Scheduled Automation Start” schedule trigger to run weekly, and keep the rest as-is. Many teams also customize the Slack message in “Post Slack Alert,” and add extra fields to Sheets (like price or product type) by adjusting what gets appended after “Decode JSON Payload.”
Usually the credential expired or the Google account lost access to the spreadsheet. Reconnect Google Sheets in n8n, then confirm the exact sheet ID and worksheet names haven’t changed. If you’re creating new worksheets per competitor, make sure your Google account can create and edit sheets, not just view them.
Dozens, realistically.
Often, yes, because this workflow depends on scraping + comparison logic that isn’t a simple two-step “app to app” zap. n8n handles looping through many competitors, merging data streams, and running custom comparisons without pushing you into higher tiers for basic branching. It’s also easier to keep the Sheets history clean because you control how data is written. Zapier or Make can still work if you already have a scraper that returns a neat feed, but most teams end up fighting edge cases. Talk to an automation expert if you want help picking the cleanest route.
Once this is running, competitor monitoring becomes background noise. You get the alert, the context in Sheets, and your time back.
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.