Templates / Automate hotel price comparison with multi-platform scraping and email reporting

Automate hotel price comparison with multi-platform scraping and email reporting

Ready for 3.0

by Oneclick AI Squad ✓ · 1,390 views · created 2025-10-16 · Market Research

Ready for 3.0. This template uses no nodes that n8n 3.0 removes. No removed nodes, versions or helpers found. Static check, last run 2026-10-19.

Nodes used (8)

Google Sheets

What it does

This is a production-ready, end-to-end workflow that automatically compares hotel prices across multiple booking platforms and delivers beautiful email reports to users. Unlike basic building blocks, this workflow is a complete solution ready to deploy. --- ✨ What Makes This Production-Ready ✅ Complete End-to-End Automation - Input: Natural language queries via webhook - Processing: Multi-platform scraping & comparison - Output: Professional email reports + analytics - Feedback: Real-time webhook responses ✅ Advanced Features - 🧠 Natural Language Processing for flexible queries - 🔄 Parallel scraping from multiple platforms - 📊 Analytics tracking with Google Sheets integration - 💌 Beautiful HTML email reports - 🛡️ Error handling and graceful degradation - 📱 Webhook responses for real-time feedback ✅ Business Value - For Travel Agencies: Instant price comparison service for clients - For Hotels: Competitive pricing intelligence - For Travelers: Save time and money with automated research --- 🚀 Setup Instructions Step 1: Import Workflow 1. Copy the workflow JSON from the artifact 2. In n8n, go to Workflows → Import from File/URL 3. Paste the JSON and click Import Step 2: Configure Credentials A. SMTP Email (Required) Settings → Credentials → Add Credential → SMTP Host: smtp.gmail.com (for Gmail) Port: 587 User: [email protected] Password: your-app-password (not regular password!) Gmail Setup: 1. Enable 2FA on your Google Account 2. Generate App Password: https://myaccount.google.com/apppasswords 3. Use the generated password in n8n B. Google Sheets (Optional - for analytics) Settings → Credentials → Add Credential → Google Sheets OAuth2 Follow the OAuth flow to connect your Google account Sheet Setup: 1. Create a new Google Sheet 2. Name the first sheet "Analytics" 3. Add headers: timestamp, query, hotel, city, checkIn, checkOut, bestPrice, platform, totalResults, userEmail 4. Copy the Sheet ID from URL and paste in the "Save to Google Sheets" node Step 3: Set Up Scraping Service You need to create a scraping API that the workflow calls. Here are your options: Option A: Use Your Existing Python Script Create a simple Flask API wrapper: python apiwrapper.py from flask import Flask, request, jsonify import subprocess import json app = Flask(name) @app.route('/scrape/<platform>', methods='POST') def scrape(platform): data = request.json query = f"{data'checkIn'} to {data'checkOut'}, {data'hotel'}, {data'city'}" try: result = subprocess.run( 'python3', 'pricescrap2.py', query, platform, captureoutput=True, text=True, timeout=30 ) Parse your script output output = result.stdout Assuming your script returns price data return jsonify({ 'price': extractedprice, 'currency': 'USD', 'roomType': 'Standard Room', 'url': bookingurl, 'availability': True }) except Exception as e: return jsonify({'error': str(e)}), 500 if name == 'main': app.run(host='0.0.0.0', port=5000) Deploy: bash pip install flask python apiwrapper.py Update n8n HTTP Request nodes: URL: http://your-server-ip:5000/scrape/booking URL: http://your-server-ip:5000/scrape/agoda URL: http://your-server-ip:5000/scrape/expedia Option B: Use Third-Party Scraping Services Recommended Services: - ScraperAPI (scraperapi.com) - $49/month for 100k requests - Bright Data (brightdata.com) - Pay as you go - Apify (apify.com) - Has pre-built hotel scrapers Example with ScraperAPI: javascript // In HTTP Request node URL: http://api.scraperapi.com Query Parameters: apikey: YOURAPIKEY url: https://booking.com/search?hotel={{$json.hotelName}}... Option C: Use n8n SSH Node (Like Your Original) Keep your SSH approach but improve it: 1. Replace HTTP Request nodes with SSH nodes 2. Point to your server with the Python script 3. Ensure error handling and timeouts javascript // SSH Node Configuration Host: your-server-ip Command: python3 /path/to/pricescrap2.py "{{$json.hotelName}}" "{{$json.city}}" "{{$json.checkInISO}}" "{{$json.checkOutISO}}" "booking" Step 4: Activate Webhook 1. Cli

View the original on n8n.io → Check your own copy

Get the weekly “what broke” email

New templates, newly broken ones, and n8n release changes. One short email a week.

Form not loading? Subscribe here.