Daily
Store new reviews in Pinecone and flag bad ones on Telegram
Every new review of your business is saved for later analysis, and you get a Telegram message the same day about any one- or two-star review.
- Runs
- Daily
- Apps
- Pinecone, Telegram
- AI
- Yes, uses the built-in AI allowance
- Access
- Pinecone write; Telegram bot token
Send this to your assistant
Create a ClickRuntime automation: every morning, fetch new reviews of my business, add them to my Pinecone index, and message me on Telegram about any 1 or 2 star review with a short summary.
First time? Adding ClickRuntime to your assistant takes about two minutes.
Why use it
Why teams use this automation
A family-run restaurant group with three locations lives and dies by its Google reviews. The owners read them when they remember to, which means a furious one-star review about a cold delivery can sit unanswered for a week while potential customers read it. They also have a sense that the same complaints keep coming up, but no easy way to check.
This automation handles both problems. Each morning new reviews are stored in a Pinecone index, building a searchable history of everything customers have said. Any review of one or two stars is summarised and sent straight to the owner on Telegram, so it can be answered while the customer is still listening.
What you get out of it
Reply to unhappy customers quickly
A fast, polite reply to a bad review shows future customers you care and sometimes turns the reviewer around. Getting the alert the same day makes that possible.
A searchable history of every review
Reviews stored in Pinecone can be searched by meaning later. Asking which reviews mention slow service or parking finds them even when customers used different words.
Spot patterns across locations
With every review in one place, recurring complaints at one site stand out. That turns scattered feedback into something managers can act on.
Only the reviews that need attention
Good reviews are stored quietly and only low ratings trigger a message. The owner's phone stays calm on good days and lights up when it matters.
How it works
What happens, step by step
Every morning, ClickRuntime fetches the latest reviews of your business from your review source.
It skips any review it has already stored, so each one is handled once.
New reviews are added to your Pinecone index with their rating, location and date.
For each review of one or two stars, AI writes a one-line summary of the complaint, and a Telegram message is sent to you with the rating, summary and a link to reply.
Before it runs live
- Connect Pinecone
- Connect Telegram
What you get
Build your own
Need it to work differently?
Your own rules
Conditions, thresholds, filters and exceptions, written the way you'd explain them to a colleague.
Any number of apps
One automation can read from one app and update several others. Over 248 apps are ready, and anything with an API works too.
AI where it helps
Summaries, classification, extraction and drafts use ClickRuntime's built-in AI, with no extra key.
On a schedule or on each event
Runs as often as every 5 minutes, or the moment an app sends an event, and keeps track of what it already handled.
Changes you can ask for
- Run it at a different time, more or less often, or only on weekdays
- Change what the AI looks for, or how it writes the result
- Add another app, for example also send it to Slack
- Combine it with other Pinecone and Telegram steps into one automation
Under the hood
The code that runs this automation
from clickruntime import on_trigger, credentials, http, state, ai, report_fetched
REVIEWS_URL = "https://api.example-reviews.com/v1/reviews?business=northwind-bistro"
OWNER_CHAT_ID = 123456789
@on_trigger
def run(event):
seen = set(state.get("seen") or [])
reviews = [r for r in http.get(REVIEWS_URL, headers={"Authorization": f"Bearer {credentials.secret('REVIEWS_API_KEY')}"}).json()["reviews"] if r["id"] not in seen]
report_fetched(len(reviews))
if not reviews:
return {"new": 0}
embeds = http.post("https://api.pinecone.io/embed", headers={"Api-Key": credentials.secret("PINECONE_API_KEY"), "X-Pinecone-API-Version": "2025-01"},
json={"model": "multilingual-e5-large", "inputs": [{"text": r["text"][:2000]} for r in reviews]}).json()["data"]
http.post(f"https://{credentials.secret('PINECONE_HOST')}/vectors/upsert", headers={"Api-Key": credentials.secret("PINECONE_API_KEY")},
json={"vectors": [{"id": r["id"], "values": e["values"], "metadata": {"text": r["text"][:2000], "rating": r["rating"], "date": r["date"]}} for r, e in zip(reviews, embeds)]})
bad = [r for r in reviews if r["rating"] <= 2]
for r in bad:
summary = ai.generate(f"Summarise this complaint in one line:\n{r['text'][:2000]}", max_output_tokens=60).text.strip()
http.post(f"https://api.telegram.org/bot{credentials.secret('TELEGRAM_BOT_TOKEN')}/sendMessage",
json={"chat_id": OWNER_CHAT_ID, "text": f"{'⭐' * r['rating']} review: {summary}\n{r.get('url', '')}"})
state.set("seen", list(seen | {r["id"] for r in reviews})[-2000:])
return {"new": len(reviews), "alerts": len(bad)}FAQ
Common questions
Where do the reviews come from?
Can I change the rating that triggers an alert?
Does it reply to the review for me?
What permissions does it need?
Does it need AI?
How many runs does it use?
Can I change how it works?
Related
You might also like
Ask a Telegram bot questions about your documents
Send a PDF to your bot and it is added to your library; ask a question and you get an answer drawn from those documents.
See how it worksA Telegram assistant that remembers what you tell it
Tell your bot facts worth keeping and it recalls them later when you ask, even months afterwards.
See how it worksGet a daily news digest in Slack
Each morning your team gets a short summary of what's new on the sites and blogs you follow.
See how it worksKeep exploring
Set up “Store new reviews in Pinecone and flag bad ones on Telegram” from your assistant
Copy the prompt above, or connect your assistant first. Free plan, no credit card.