π Track hotel rate positioning with Bright Data, GPT-5.6, Google Sheets and Slack
β‘ 0 views Β· π Market Research & Insights
π‘ Pro Tip β HTTP Request scraping tends to break when sites update their markup. If youβre scraping a major platform, check if ScraperNode covers it β it has maintained scrapers for LinkedIn, Instagram, TikTok, YouTube, and 20+ other platforms that return structured data.
Description
Quick overview
This workflow runs every Monday to scrape Google Hotels rates via Bright Data for four future check-in dates, calculates your propertyβs price position against a star-banded comp set, appends the results to Google Sheets, and posts a short GPT-5.6 summary to Slack.
How it works
- Runs every Monday morning on a schedule.
- Builds a four-date Google Hotels search grid from your settings (market term, stay length, guests, country/currency, and date horizons) and triggers a single Bright Data dataset job with all inputs.
- Polls Bright Data until the snapshot is ready (or a maximum poll limit is reached) and then downloads the full rate snapshot.
- Cleans and filters the results by removing sponsored booking options and excluding out-of-band properties by star rating, then computes per-date comp-set quartiles, your cheapest rate, your rank, and your channel spread.
- Sends the computed per-date stats to GPT-5.6 (OpenAI) to generate a short narrative note without inventing new numbers or recommending a new rate.
- Appends one row per date to a Google Sheets βRatesβ tab and posts a single combined digest message to the configured Slack channel.
Setup
- Create a Bright Data Web Scraper API header-auth credential and ensure it has access to the Google Hotels dataset used by the workflow.
- Add an OpenAI (Chat) credential for the GPT-5.6 model, plus Google Sheets OAuth credentials and a Slack OAuth credential.
- Update the Settings values (property name, market search term, horizons in
nights_ahead, star band, and Slack channel), keepingaccommodation_typeandsort_byexactly as expected (case-sensitive). - Replace the Google Sheets document URL/ID in the Google Sheets append step and ensure the spreadsheet has a sheet/tab named βRatesβ with columns that match the fields being appended.
π Nodes Used
Google Sheets, HTTP Request, Slack, Schedule Trigger, Basic LLM Chain, OpenAI Chat Model
π₯ Import
Download workflow.json and import into n8n:
Workflow menu β Import from File