See llms.txt for all machine-readable content.

Back to Templates

Create dated Booking.com hotel shortlists with Apify and Google Sheets

Created by

Created by: Luka || luminar
Luka

Last update

Last update 2 days ago

Categories

Share


Quick overview

This workflow runs a Booking.com hotel search via an Apify Actor for a specific destination and date range, verifies the Actor output and pay‑per‑event charges, then upserts a dated, filterable shortlist of properties into Google Sheets using a stable key per property, dates, and currency.

How it works

  1. Runs manually or on a daily schedule trigger.
  2. Validates the destination, check-in/check-out dates, guest settings, language/currency/sort options, run limits, Google Sheets target, and the maximum allowed Apify charge before starting.
  3. Runs the Luminar Booking Hotels Scraper Actor on Apify once with a configured maximum total charge.
  4. Checks the Apify run status and fetches the Actor’s documented OUTPUT summary via HTTP to confirm coverage state and authoritative pay‑per‑event accounting.
  5. Retrieves all items from the Apify dataset (properties plus a single coverage record) using bounded pagination and reconciles counts against the summary.
  6. Builds a stable upsert key from the canonical Booking.com property path (with fallbacks), check-in, check-out, and currency, and prepares one row per property.
  7. Upserts the prepared rows into Google Sheets and returns a receipt, or returns an explicit no-write receipt when the result is empty, partial, failed, or invalid.

Setup

  1. Install the Apify community node and add an Apify OAuth2 credential for running the Actor and reading its dataset.
  2. Add a Google Sheets OAuth2 credential and create or choose a spreadsheet and sheet tab to receive the shortlist.
  3. Update the settings for destination, check-in/check-out (replace the placeholders), currency/language/sort options, and the spreadsheet ID and sheet name.
  4. Copy the expected header row into the target Google Sheets tab and refresh the Google Sheets node so the column mapping matches.
  5. Set an appropriate maxCostPerRunUsd value to cap Apify charges, run the workflow manually to verify the output and receipt, then enable the schedule if needed.