How to Automate Amazon Product Scraping With n8n and ScrapeHero

Share:

Amazon prices can change frequently, so manually checking product pages is inefficient at scale. Automate Amazon product scraping with n8n to check prices at regular intervals and notify you whenever a change occurs.

This tutorial shows how to automate an Amazon price monitoring workflow that:

  1. Reads Amazon ASINs from Google Sheets
  2. Retrieves the latest product data through ScrapeHero’s Amazon Product Details and Pricing API
  3. Compares the current prices with previously recorded values
  4. Sends an email alert through Gmail when a price changes

Key Takeaways

  • Build an n8n workflow that automatically monitors Amazon product prices using ScrapeHero’s Amazon Product Details and Pricing API.
  • Store ASINs and previous prices in Google Sheets.
  • Use Schedule Trigger to run the workflow hourly, daily, or weekly.
  • Send each ASIN through the ScrapeHero node, extract the name and price, then compare the new price with the stored price.
  • Send a Gmail alert when the price changes and update Google Sheets with the latest price.
  • Extend the workflow with price-history tracking, Slack/Telegram alerts, threshold alerts, or a database for long-term analysis.

Before You Begin

Before creating the workflow to automate Amazon product scraping with n8n, prepare the following:

  1. An n8n account or self-hosted n8n installation.
  2. A Google Cloud OAuth client ID and client secret.
  3. A Google Sheets document containing the products you want to track.
  4. A ScrapeHero account and API key.

Your Google Sheet should contain at least two columns:

ASIN Price
B098XP1Y38 129.95
B079Y45KTJ 89.99

The ASIN identifies the Amazon product, while the Price column stores the last price recorded by the workflow.

You can add additional columns, such as Product Name or Amazon URL, but the workflow described here uses ASIN and Price.

Create the Workflow

1. Add a Schedule Trigger

On your n8n dashboard, click “Create Workflow” to create a new workflow in n8n. This will open up a canvas with a big plus sign in the center. 

Click the plus icon, search for Schedule Trigger, and click it to add it to the workflow. Adding the node immediately opens up its configuration window.

The Schedule Trigger determines how often n8n checks your products. In the configuration window, you can set it to run hourly, daily, weekly, or at another interval that suits your use case.

For example, you could run the workflow:

  • Every hour for frequently changing products.
  • Once per day for regular price monitoring.
  • Once per week for products with relatively stable prices.

Choose the interval based on how quickly you need to know about a price change and how many API requests your workflow will make.

Searching and adding Schedule Trigger in an n8n workflow

2. Read Products from Google Sheets

After exiting the configuration window of the node, the Scheduled Trigger will be on the canvas with a plus icon on its right side.

Click the plus icon, search for Google Sheets, and click to add the node. (This is similar to all the other nodes in this tutorial)

For the Sheet action, choose Get Row(s) in Sheet.

Searching and adding Google Sheets node with Create sheet action in an n8n workflow

Next, click Connect to Google Sheets

Connecting to Google Sheets in an n8n workflow

Paste your Google Cloud Client ID and Client Secret, then click Sign in with Google.

Pasting Google Client ID and Client Secret in the Google Sheets configuration window

Complete the authorization process and return to n8n.

Now select:

  1. The Google Sheets document containing your product list.
  2. The sheet or tab containing the ASINs and prices.

The node will read each product row and pass the data to the next node.

3. Process Each ASIN Individually

You want each ASIN to move through the workflow before it processes new ASINs; this ensures that you wait for appropriate time before subsequent requests to the ScrapeHero API.

To do so, add a “Loop Over Items” node.

Click the plus icon to the right of the Google Sheet node, search for Loop Over Items, and click it.

This node processes the products one at a time. That is useful because each ASIN needs to be sent separately to the ScrapeHero API before its price can be compared with the value stored in Google Sheets.

Searching and adding a Loop Over Items node in an n8n workflow

4. Add the ScrapeHero Node

Next, add the ScrapeHero node, which serves as an Amazon scraper integration for n8n.

If you are adding the node for the first time, you need to install the ScrapeHero community node first.

Searching and adding a ScrapeHero n8n node

In the configuration window, click Connect ScrapeHero to create the credentials.

Clicking connect to ScrapeHero button in the ScrapeHero node's configuration window

Then:

  1. Go to app.scrapehero.com.
  2. Sign in to your account.
  3. Click your profile icon.
  4. Open API Key.
  5. Copy your API key.
  6. Return to n8n.
  7. Paste the key into the ScrapeHero credential field.
  8. Save the credentials.

Pasting ScrapeHero Cloud API key

Select Amazon Product Details and Pricing API from the API dropdown.

This API returns structured Amazon product data, including product identifiers, names, and prices.

Selecting Amazon Product Details and Pricing API in the ScrapeHero n8n node

5. Configure the API Request

Next, locate the ASIN field and drag the ASIN value from the Loop Over Items node into this field. This creates an expression that allows the workflow to dynamically check every ASIN in the sheet.

You also need to select the Country Code.

Configuring the ScrapeHero n8n node to fetch data from Amazon product Details and Pricing API

Click Execute Step to test the request.

After the test succeeds, pin the output temporarily. Pinning the response prevents repeated test executions from making unnecessary API requests while you configure the remaining nodes.

Pinning the ScrapeHero n8n node's output

6. Keep Only the Required Fields

The ScrapeHero response contains many fields, but this workflow only needs:

  • ASIN.
  • Name.
  • Price.

Add an Edit Fields node after the ScrapeHero node.

Searching and adding the Edit Fields node

In the Edit Fields node, add fields for the three values above. Drag the corresponding values from the ScrapeHero output into the area that says “Drag the input fields here.”

A typical price response may look like this:

“$129.95”

The workflow will remove the dollar later when it writes the new price back to Google Sheets.

Configuring the Edits field in an n8n workflow

Compare the Prices

7. Add an If Node

Click the plus icon, search for If, and add the node after the Edit Fields node.

Adding an If node in an n8n workflow

The If node determines whether the current Amazon price differs from the previous price stored in Google Sheets.

Use a JavaScript expression to extract values:

  1. Value1:
    {{ $json.PRICE.replace('$','').toNumber() }}
  2. Value2:
    {{ $('Loop Over Items').item.json.Price }}

Value1 gets the price from the output of the last node (ScrapeHero), removes the dollar sign, and converts it into a number.

Value2 gets the price from the output of the “Loop Over Items” node.

Select the comparison option to “is not equal to” from the number section in the drop down. 

Note: You can also compare the size of the price change. Put the difference of the two values in the Value1 field and the threshold value in the Value2 field with the comparison option as “is greater than.”

Configuring If node and adding conditions to compare prices

Send the Email Alert

8. Add Gmail to the True Branch

Add a Gmail node to the true branch of the If node with “Send a message” as the Message Action.

Adding a Gmail node with send message action

The workflow will only send the email when the current price is different from the price stored in Google Sheets.

Connect your Gmail account using the same general process used for Google Sheets credentials:

  1. Click Connect to Gmail.
  2. Add or select your Google OAuth credentials.
  3. Sign in with Google.
  4. Authorize n8n to send email.

Set the recipient’s email address.

Adding recipients address in Gmail node's configuration window

9. Create a Dynamic Subject

In the subject field, use an expression that includes the product name.

For example:

Amazon price change: {{ $json.NAME.split('–')[0] }}

This makes it easy to identify the product from your inbox.

Adding a dynamic subject in the Gmail node's configuration window

10. Add the Price-Change Message

Set the Gmail message type or field type to Text.

Then add a message containing the product name, previous price, current price, and difference.

For example:


The price of {{$json.Name}} has changed.
New Price: {{ $json.PRICE }}
Previous Price: {{ $('Loop Over Items').item.json.Price }}
Change: {{ (($json.PRICE.replace('$','').toNumber() - $('Loop Over Items').item.json.Price)/$('Loop Over Items').item.json.Price*100).round(2) }}
Product Name: {{ $json.NAME }}

If the result is negative, the product becomes cheaper. If it is positive, the price increases.

The exact expression used to reference the previous Google Sheets value may vary depending on your node names and n8n version. Use the expression editor to select the Google Sheets output rather than typing the reference manually when possible.

Setting up the message in the Gmail node's configuration window

Update the Google Sheet

The workflow now sends an alert, but the stored price still contains the old value. If you do not update it, the workflow will send the same alert every time it runs.

11. Add an Update Google Sheets node

Add another Google Sheets node to the true branch after the Gmail node.

For the action, choose Update.

Adding a Google sheets node with Update row in sheet action

The Google Sheets credentials should already be available. Select:

  1. The same document used in the Get Row(s) in Sheet node.
  2. The same sheet or tab used earlier.

Set Mapping Column Mode to Map Manually.

For the column used to identify the row, choose ASIN.

This tells n8n to find the row whose ASIN matches the current product.

Next, in the ASIN matching field, drag and drop the ASIN from the current item.

Then map the new price to the Price column.

Because the API may return the price with a dollar sign, use an expression that removes the currency symbol and converts the result to a number:

 

{{ $json.PRICE.replace('$','').toNumber() }}

 

For example:

“$129.95”

becomes:

129.95

Configuring the Google Sheet's node to update prices

The update node should now:

  1. Find the row whose ASIN matches the current item.
  2. Replace the old price with the latest price.
  3. Leave the ASIN and other columns unchanged.

Test and Complete the Loop

Connect the Loop

Finally, connect the output of the final Gmail node back to the Loop Over Items node; this tells the loop node to proceed with the next item.

Also, connect the false branch of the If node back to the Loop Over Items node; this ensures that the workflow continues with the next ASIN even if the price didn’t change and the mail wasn’t sent.

The Complete n8n workflow to track prices using ScrapeHero

Test the Workflow

Unpin all the pinned outputs in the nodes and click Execute Workflow at the bottom of the canvas to test the entire workflow.

Publish the Workflow

Confirm that there are no errors, including in the received mail.

When everything works as expected, publish the workflow.

From then on, n8n will:

  1. Run at the configured schedule.
  2. Read ASINs and stored prices from Google Sheets.
  3. Check each product through ScrapeHero.
  4. Compare the latest price with the stored price.
  5. Send an email if the price changed.
  6. Update Google Sheets with the new price.
  7. Continue to the next ASIN. 

With this workflow, you can monitor Amazon prices automatically without repeatedly checking product pages yourself.

What This Unlocks for Your Business

Building this workflow to automate Amazon product scraping with n8n helps you:

  • Eliminate manual price checks. No more opening Amazon product pages repeatedly to track competitor prices. The workflow checks every ASIN automatically.
  • React to price changes faster. The moment a competitor changes their price, your team receives an email alert, reducing reaction time from hours or days to minutes.
  • Protect your Buy Box eligibility. Timely visibility into competitor pricing helps you respond before a lower-priced listing takes sales away from your offer.
  • Make margin-aware pricing decisions. Pair competitor prices with your cost and minimum price so alerts highlight opportunities and risks, not just raw price changes.
  • Monitor your entire catalog at scale. Adding a new product is as simple as adding its ASIN and current price to your Google Sheet.
  • Build a reliable price history. Each run creates a record of market movement, helping you identify pricing patterns, promotional cycles, and seasonal trends.
  • Reduce missed revenue opportunities. When competitor prices rise, you can review your own pricing and avoid unnecessary discounts or promotions.

Next Steps

You can extend this workflow with:

  • Slack/Telegram notifications: Add channel-specific alerts for “price dropped below threshold” and separate notifications for “workflow errors”.
  • Price-history tracking: Append each scrape to a “History” sheet (columns: ASIN, Timestamp, Price) for trend analysis and charts.
  • Minimum-price alerts: Add a second threshold (e.g., Min_Price) and trigger a high-priority alert when the price hits that level.
  • Database for long-term analysis: Replace or mirror the Google Sheet with a lightweight database (e.g., SQLite, Postgres, or Airtable) for better querying and retention.

Wrapping Up

Tracking price changes at scale doesn’t have to be a manual, error-prone process. You can use ScrapeHero’s Amazon Product Data and Pricing API and automate Amazon product scraping with n8n.

The ScrapeHero API, accessed via the ScrapeHero node, handles the data extraction part. You just have to focus on building the workflow that improves your business. 

Sign up for a ScrapeHero API key and build your price tracking workflow. Do you want additional data points? Tell us your requirements, and we will build a custom API just for you.

ScrapeHero is your #1 web scraping service provider for fully outsourcing data extraction. We combine automated scraping power with human-in-the-loop oversight to ensure maximum accuracy. Contact ScrapeHero today to get started.

Table of contents

Scrape any website, any format, no sweat.

ScrapeHero is the real deal for enterprise-grade scraping.

Clients love ScrapeHero on G2

Ready to turn the internet into meaningful and usable data?

Contact us to schedule a brief, introductory call with our experts and learn how we can assist your needs.

Continue Reading

McDonald’s Australia store analysis

McDonald’s Australia Store Analysis: 2026 Data

data-driven look at McDonald's 1,076 stores across Australia — by state, city, and format.
Free People Movement vs. Anthropologie

How Do Free People Movement and Anthropologie Compare to Each Other in the US?

How different are FP Movement and Anthropologie in their retail approach?
Personal Care on Blinkit

Who Rules Blinkit’s Personal Care Aisle? We Analyzed the Data

A Full Breakdown of Personal Care on Blinkit Bangalore.
ScrapeHero Logo

Can we help you get some data?