See llms.txt for all machine-readable content.

Back to Templates

Track hotel rate positioning with Bright Data, GPT-5.6, Google Sheets and Slack

Created by

Created by: Daniel Shashko || tomax
Daniel Shashko

Last update

Last update 3 days ago

Categories

Share


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

  1. Runs every Monday morning on a schedule.
  2. 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.
  3. Polls Bright Data until the snapshot is ready (or a maximum poll limit is reached) and then downloads the full rate snapshot.
  4. 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.
  5. 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.
  6. Appends one row per date to a Google Sheets “Rates” tab and posts a single combined digest message to the configured Slack channel.

Setup

  1. Create a Bright Data Web Scraper API header-auth credential and ensure it has access to the Google Hotels dataset used by the workflow.
  2. Add an OpenAI (Chat) credential for the GPT-5.6 model, plus Google Sheets OAuth credentials and a Slack OAuth credential.
  3. Update the Settings values (property name, market search term, horizons in nights_ahead, star band, and Slack channel), keeping accommodation_type and sort_by exactly as expected (case-sensitive).
  4. 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.