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 price changes.
This tutorial shows how to build an Amazon price monitoring workflow that:
- Reads Amazon ASINs from Google Sheets
- Retrieves the latest product data through ScrapeHero’s Amazon Product Details and Pricing API
- Compares the current prices with previously recorded values
- Sends an email alert through Gmail when a price changes
Before creating the workflow to automate Amazon product scraping with n8n, prepare the following: Your Google Sheet should contain at least two columns: 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. 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: Choose the interval based on how quickly you need to know about a price change and how many API requests your workflow will make. 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. Next, click Connect to Google Sheets. Paste your Google Cloud Client ID and Client Secret, then click Sign in with Google. Complete the authorization process and return to n8n. Now select: The node will read each product row and pass the data to the next node. 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. 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. In the configuration window, click Connect ScrapeHero to create the credentials. Then: Select Amazon Product Details and Pricing API from the API dropdown. This API returns structured Amazon product data, including product identifiers, names, and prices. 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. 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. The ScrapeHero response contains many fields, but this workflow only needs: Add an Edit Fields node after the ScrapeHero 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. Click the plus icon, search for If, and add the node after the Edit Fields node. 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: 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.” Add a Gmail node to the true branch of the If node with “Send a message” as the 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: Set the recipient’s email address. In the subject field, use an expression that includes the product name. For example: This makes it easy to identify the product from your inbox. 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: 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. 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. Add another Google Sheets node to the true branch after the Gmail node. For the action, choose Update. The Google Sheets credentials should already be available. Select: 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: For example: “$129.95” becomes: 129.95 The update node should now: 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. Unpin all the pinned outputs in the nodes and click Execute Workflow at the bottom of the canvas to test the entire 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: With this workflow, you can monitor Amazon prices automatically without repeatedly checking product pages yourself. Building this workflow to automate Amazon product scraping with n8n helps you: Prefer not to handle API integration? Check out the Amazon Product Details and Pricing Scraper instead. You can extend this workflow with: 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. 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.What You’ll Learn
Before You Begin
ASIN
Price
B098XP1Y38
129.95
B079Y45KTJ
89.99
Create the Workflow
1. Add a Schedule Trigger

2. Read Products from Google Sheets



3. Process Each ASIN Individually

4. Add the ScrapeHero Node




5. Configure the API Request


6. Keep Only the Required Fields


Compare the Prices
7. Add an If Node

{{ $json.PRICE.replace('$','').toNumber() }}{{ $('Loop Over Items').item.json.Price }}
Send the Email Alert
8. Add Gmail to the True Branch


9. Create a Dynamic Subject
Amazon price change: {{ $json.NAME.split('–')[0] }}
10. Add the Price-Change Message
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 }}

Update the Google Sheet
11. Add an Update Google Sheets node

{{ $json.PRICE.replace('$','').toNumber() }}
Test and Complete the Loop
Connect the Loop

Test the Workflow
Publish the Workflow
What This Unlocks for Your Business
Next Steps
Wrapping Up
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.