https://github.com/brunoramos321/reviewrestaurants_workflow

Automated workflow (n8n + Google Sheets + OpenAI) that monitors ~1,300 restaurants, logs rating/review changes, and sends a 5-day digest.

https://github.com/brunoramos321/reviewrestaurants_workflow

Science Score: 26.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (9.1%) to scientific vocabulary
Last synced: 9 months ago · JSON representation

Repository

Automated workflow (n8n + Google Sheets + OpenAI) that monitors ~1,300 restaurants, logs rating/review changes, and sends a 5-day digest.

Basic Info
  • Host: GitHub
  • Owner: brunoramos321
  • Default Branch: main
  • Size: 187 KB
Statistics
  • Stars: 0
  • Watchers: 0
  • Forks: 0
  • Open Issues: 0
  • Releases: 0
Created 10 months ago · Last pushed 10 months ago
Metadata Files
Readme

README.md

🍽️ ReviewPulse – Automated Restaurant Ratings & Reviews Monitor

End-to-end automation built with n8n, Google Sheets, and OpenAI, designed to track restaurant reputation changes at scale.


✨ What it does

  • 🔄 Daily updates (~1,300 restaurants, split into 5 groups to save API calls)
  • 📝 Change logging → Only rating/review changes are appended to a “Deltas” sheet
  • 📩 Digest reports → Every 5 days, changes are summarized into a report and emailed automatically
  • 🤖 AI summary (optional) → Generate highlights like “Top movers” or “Biggest shifts”

🚀 Workflow Architecture

1. Daily Workflow

  • ⏰ Triggered by schedule (runs every day)
  • 🗂️ Reads full restaurant list and splits into groups (~260/day)
  • 🔍 Pulls fresh ratings & reviews (Google Places API)
  • 📊 Merges with existing data → calculates deltas
  • ✅ If something changed → appends to Deltas sheet

Daily Workflow


2. Digest Workflow (every 5 days)

  • ⏰ Triggered every 5th day
  • 📥 Reads all entries from Deltas sheet for the last 5 days
  • 📊 Summarizes key changes (biggest rating shifts, most new reviews)
  • 🤖 (Optional) Sends the summary through OpenAI for a polished report
  • 📧 Delivers via Gmail

Digest Workflow


🛠️ Tech Stack

  • n8n (self-hosted) → Orchestration, scheduling, error handling
  • Google Sheets → Source of truth & append-only change log
  • Google Places API → Fetches ratings and reviews
  • OpenAI (optional) → Creates natural-language digests
  • Gmail/SMTP → Sends automated reports

📊 Data Model

Restaurants (master list)
rownumber | name | address | placeid | rating | userRatingCount | lastchecked | runtoday | group

Deltas (append-only log)
date | placeid | rownumber | name | rating | userRatingCount | deltarating | deltareviews | changed


⚡ Challenges & Learnings

🔒 API Quotas & Limits

  • Problem: Google Places API has strict daily request limits. With ~1,300 restaurants, calling all at once would burn through quota.
  • Solution: Split the dataset into 5 rotating groups (~260/day) → only one group updates per run, keeping calls within limits.

🔀 Change Detection

  • Problem: Pulling ratings daily would quickly fill sheets with duplicate data.
  • Solution: Implemented a delta calculation step → only new or changed values (ratings/reviews) are logged.

📊 Data Merge Logic

  • Problem: Combining new API results with the existing dataset while keeping row order and metadata consistent.
  • Solution: Built a merge-and-calculate step in n8n → ensures updated ratings/reviews are written in place, while old data persists.

⏱️ Digest Scheduling

  • Problem: If emails were sent daily, they would become noise and lose value.
  • Solution: Introduced a 5-day batching workflow → aggregates all deltas before sending a digest, creating a useful “newsletter-style” report.

🧩 Workflow Structure

  • Problem: A single massive workflow was harder to debug and maintain.
  • Solution: Split into two modular workflows:
    • Daily updater (lightweight, API-focused)
    • 5-day reporter (summarization + email)

🛠️ Key Takeaways

  • Respect API limits from day one
  • Always log only the deltas
  • Modular automation = easier debugging + better scalability
  • AI summaries add polish, but the core automation works even without them

🚧 Next Steps / Improvements

  • Add visual dashboards (Tableau/Looker Studio) to track long-term trends
  • Integrate alerts (e.g., Slack/Telegram) for major rating drops
  • Expand beyond restaurants → cafes, bars, or other local businesses
  • Add multi-city support with a single consolidated pipeline

💡 Why this project?

I’m passionate about food 🍜, but I also wanted to build something that shows automation + data engineering skills:
- ✅ Automates real-world data collection
- 📈 Tracks changes without manual effort
- 🗞️ Produces clean, shareable digests
- 🔧 Shows modular workflow design and problem-solving

Owner

  • Name: Bruno Jorge Alves Ramos
  • Login: brunoramos321
  • Kind: user

GitHub Events

Total
  • Push event: 4
Last Year
  • Push event: 4