Compare Hotel Prices Across Booking Platforms with Scrape.do and Google Sheets

🏨 Hotel Price Comparison Workflow with Scrape.do

This template requires a self-hosted n8n instance to run.

A complete n8n automation that extracts hotel prices from multiple booking platforms (Booking.com, Hotels.com, Expedia, etc.) using Scrape.do API, compares prices across platforms, and saves structured results into Google Sheets for price monitoring and decision-making.

📋 Overview

This workflow provides an automated hotel price comparison solution that monitors hotel rates across different booking platforms for specific destinations and dates. Ideal for travel agencies, price comparison websites, travelers, and hospitality analysts who need real-time pricing insights without manual searching.

Who is this for?

Travel agencies automating price comparisons Price comparison website operators Budget-conscious travelers tracking best deals Hospitality analysts monitoring market pricing Hotel managers tracking competitor rates Travel bloggers researching accommodation options

What problem does this workflow solve?

Eliminates manual price checking across multiple sites Processes multiple hotels and date ranges automatically Extracts structured pricing data (price, rating, amenities) Identifies the cheapest option across platforms Automates saving results into Google Sheets Ensures consistent and repeatable price monitoring

⚙️ What this workflow does

Manual Trigger → Starts the workflow manually or on schedule Get Search Parameters from Sheet → Reads hotel names, destinations, check-in/check-out dates from Google Sheet URL Encode Parameters → Converts search parameters into URL-safe format Process Hotels in Batches → Handles multiple searches sequentially to avoid rate limits Fetch Hotel Data from Multiple Platforms → Calls Scrape.do API to retrieve pricing from Booking.com, Hotels.com, and Expedia Extract and Structure Price Data → Parses HTML into structured hotel data (name, price, rating, amenities) Compare Prices Across Platforms → Identifies best price and calculates savings Append Results to Sheet → Writes comparison results into Google Sheet

📊 Output Data Points

| Field | Description | Example | |-------|-------------|---------| | Hotel Name | Name of the hotel | Hilton Garden Inn Downtown | | Destination | City or location | New York, NY | | Check-in Date | Arrival date | 2025-12-15 | | Check-out Date | Departure date | 2025-12-18 | | Nights | Number of nights | 3 | | Booking.com Price | Price from Booking.com | $450 | | Hotels.com Price | Price from Hotels.com | $425 | | Expedia Price | Price from Expedia | $440 | | Best Price | Lowest price found | $425 | | Best Platform | Platform with lowest price | Hotels.com | | Savings | Difference from highest price | $25 | | Average Rating | Average customer rating | 8.5/10 | | Total Reviews | Number of reviews | 1,247 | | Free Cancellation | Cancellation policy | Yes | | Breakfast Included | Breakfast availability | No |

⚙️ Setup

Prerequisites

n8n instance (self-hosted) Google account with Sheets access Scrape.do account with API token

Google Sheet Structure

This workflow uses one Google Sheet with two tabs:

Input Tab: "Search Parameters"

| Column | Type | Description | Example | |--------|------|-------------|---------| | Hotel Name | Text | Name of hotel (optional) | Hilton Garden Inn | | Destination | Text | City or location | New York, NY | | Check-in Date | Date | Arrival date (YYYY-MM-DD) | 2025-12-15 | | Check-out Date | Date | Departure date (YYYY-MM-DD) | 2025-12-18 | | Guests | Number | Number of guests | 2 | | Rooms | Number | Number of rooms | 1 |

Output Tab: "Price Comparison"

| Column | Type | Description | Example | |--------|------|-------------|---------| | Search Date | Timestamp | When search was performed | 2025-11-17 10:30:00 | | Hotel Name | Text | Name of the hotel | Hilton Garden Inn Downtown | | Destination | Text | City/location | New York, NY | | Check-in | Date | Arrival date | 2025-12-15 | | Check-out | Date | Departure date | 2025-12-18 | | Nights | Number | Number of nights | 3 | | Booking.com Price | Currency | Price from Booking.com | $450 | | Hotels.com Price | Currency | Price from Hotels.com | $425 | | Expedia Price | Currency | Price from Expedia | $440 | | Best Price | Currency | Lowest price | $425 | | Best Platform | Text | Cheapest platform | Hotels.com | | Savings | Currency | Potential savings | $25 | | Rating | Number | Average rating | 8.5 | | Reviews | Number | Total reviews | 1,247 |

🛠 Step-by-Step Setup

Import Workflow: Copy the JSON → n8n → Workflows → + Add → Import from JSON Configure Scrape.do API: Endpoint: https://api.scrape.do/ Parameter: token=YOUR_SCRAPEDO_TOKEN Add render=true for JavaScript-heavy booking sites Add country=US (or target country) for localized results Configure Google Sheets: Create a sheet with two tabs: Search Parameters (input), Price Comparison (output) Set up Google Sheets OAuth2 credentials in n8n Replace placeholders: YOUR_GOOGLE_SHEET_ID and YOUR_GOOGLE_SHEETS_CREDENTIAL_ID Configure Platform URLs: Update base URLs for Booking.com, Hotels.com, Expedia in HTTP Request nodes Customize search parameters based on platform URL structure Run & Test: Add test data in Search Parameters tab Execute workflow → Check results in Price Comparison tab

🧰 How to Customize

Add more platforms**: Include Agoda, Trivago, or direct hotel websites by adding new HTTP Request nodes Price alerts**: Add conditional logic to send email/Slack notification when price drops below threshold Historical tracking**: Store daily snapshots to track price trends over time Filtering**: Add filters for amenities (pool, gym, parking) or star ratings Batch Size**: Adjust "Process Hotels in Batches" based on API rate limits Rate Limiting**: Insert Wait nodes (20–30 seconds) between platform requests Currency conversion**: Add currency API integration for multi-currency comparison Scheduling**: Add Schedule Trigger to run automatically (daily/weekly)

📊 Use Cases

Travel Planning**: Find the best hotel deals for upcoming trips Price Monitoring**: Track price changes for specific hotels over time Agency Operations**: Automate price research for client bookings Market Analysis**: Monitor competitor pricing in hospitality market Deal Alerts**: Get notified when prices drop below target threshold Budget Planning**: Compare costs across multiple destinations

📈 Performance & Limits

Single Hotel (3 platforms): ~30–45 seconds (depends on Scrape.do response) Batch of 10 hotels: 8–12 minutes typical Large Sets (50+ hotels): 45–90 minutes depending on API credits & batching API Calls: 3 Scrape.do requests per hotel (one per platform) Reliability**: 90%+ extraction success, 95%+ price accuracy

🧩 Troubleshooting

API error** → Check YOUR_SCRAPEDO_TOKEN and API credits on Scrape.do dashboard No hotels loaded* → Verify Google Sheet ID & tab name = Search Parameters* Permission denied** → Re-authenticate Google Sheets OAuth2 in n8n Empty prices** → Check if Scrape.do rendered JavaScript (render=true) Parsing errors** → Booking sites change HTML structure; update CSS selectors in Extract nodes Workflow timeout** → Reduce batch size or add more Wait nodes between requests Wrong currency** → Add country parameter to Scrape.do request for localized pricing

🤝 Support & Community

n8n Forum**: https://community.n8n.io n8n Docs**: https://docs.n8n.io Scrape.do Dashboard**: https://dashboard.scrape.do Scrape.do Documentation**: https://scrape.do/docs

🎯 Final Notes

This workflow provides a powerful foundation for automated hotel price comparison across multiple booking platforms using Scrape.do and Google Sheets.

You can extend it with: Real-time price alerts via email/Slack Historical price tracking and trend analysis Integration with travel planning dashboards Automated booking when price threshold is met Multi-destination comparison for trip planning

Pro Tip: Schedule this workflow to run daily to catch early-bird discounts and flash sales automatically!

0
Downloads
1
Views
8.32
Quality Score
beginner
Complexity
Created:11/28/2025
Updated:11/30/2025

🔒 Please log in to import templates to n8n and favorite templates

Workflow Visualization

Loading...

Preparing workflow renderer

Comments (0)

Login to post comments