Monitor Swiggy and Zomato reviews with GPT-4o-mini, Telegram, and Google Sheets

Go to Workflow
0 views
Built by Rahul Joshi Rahul Joshi
Created on October 05, 2026

Description

Quick Overview
This workflow monitors Swiggy and Zomato reviews via an HTTP feed polled every 30 minutes or a webhook, uses OpenAI to analyze sentiment and draft replies, logs results to Google Sheets, and sends Telegram/Gmail alerts for critical reviews plus a weekly dish-level sentiment report.

How it works
Triggers every 30 minutes to fetch reviews from an HTTP endpoint or receives pushed reviews via a webhook.
Normalizes incoming Swiggy/Zomato payloads into a consistent review format with IDs, ratings, text, dates, and ordered items.
Loads previously logged review IDs and your menu from Google Sheets, then filters out duplicates and attaches the menu list for dish matching.
Sends each new review and menu context to OpenAI (gpt-4o-mini) to classify sentiment/urgency, extract dish mentions and issues, and generate a suggested public reply and internal action.
Writes one row per review to the Google Sheets “Reviews Log” tab and one row per dish mention to the “Dish Mentions” tab.
Sends critical reviews (low rating or high urgency) to Telegram and escalates them via Gmail, while non-critical reviews are posted to Telegram as ready-to-paste reply drafts.
Every Monday at 9 AM, reads the last two weeks from Google Sheets, aggregates week-over-week platform and dish sentiment, uses OpenAI to write insights, emails the full HTML report via Gmail, posts a Telegram summary, and archives the report to the “Weekly Reports” tab.

Setup
Create a Google Sheets file with tabs named “Reviews Log”, “Dish Mentions”, and “Weekly Reports”, and a separate menu sheet (for example “Menu”) that includes a dish name column (for example dish_name).
Add credentials in n8n for Google Sheets, Gmail, Telegram (bot token), OpenAI, and (if using the poller) HTTP Header Auth for your review-feed endpoint.
Update the configuration values in “Set Monitor Config” and “Set Report Config” (sheet IDs, menu sheet ID, Telegram chat ID, escalation/owner email addresses, brand voice, and thresholds).
If using the webhook intake, copy the webhook URL from “Receive Reviews via Webhook” and configure your review source to POST reviews to /restaurant-reviews.
Replace https://YOUR-REVIEW-FEED.example.com/reviews?since=last_30_min with your real review-feed URL if using the scheduled poll.

Nodes Used (6)

Code
n8n-nodes-base.code
Gmail
n8n-nodes-base.gmail
Google Sheets
n8n-nodes-base.googleSheets
HTTP Request
n8n-nodes-base.httpRequest
OpenAI
@n8n/n8n-nodes-langchain.openAi
Telegram
n8n-nodes-base.telegram