Daily
Get AI follow-up suggestions for your deals on Telegram
Each morning, deals sitting at Proposal sent get a suggested follow-up message delivered to you on Telegram.
- Runs
- Daily
- Apps
- HubSpot, Telegram
- AI
- Yes, uses the built-in AI allowance
- Access
- crm.objects.deals.read; Telegram bot
Send this to your assistant
Create a ClickRuntime automation: each morning, look at my HubSpot deals in 'Proposal sent', write a short follow-up for each, and send them to me on Telegram.
First time? Adding ClickRuntime to your assistant takes about two minutes.
Why use it
Why teams use this automation
After a proposal goes out, the deal often sits in silence. The salesperson means to check in, but working out what to say to each prospect and when takes more effort than it should, so follow-ups slip by days.
This sends you a short message each morning on Telegram for every deal waiting at Proposal sent, with a follow-up you can copy, adjust and send. You start the day with the nudges already written, on the phone you check first.
What you get out of it
Follow-ups written before you start
Each deal comes with a two or three sentence message you can send as is or tweak.
Delivered where you'll see it
Telegram on your phone, not another dashboard to remember to check.
Only the deals that need it
Deals at the stage you choose are included, and ones you've already been sent recently are skipped for a few days.
Each suggestion fits the deal
AI uses the deal name, amount and how long it's been since the proposal, so the message reads naturally.
How it works
What happens, step by step
Each morning, ClickRuntime finds your HubSpot deals in the Proposal sent stage.
It skips any deal it sent you a suggestion for in the last three days.
AI writes a short follow-up message for each deal using its name, amount and how long it's been waiting.
The suggestions are sent to you in one Telegram message from your bot.
Before it runs live
- Connect HubSpot
- 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 HubSpot and Telegram steps into one automation
Under the hood
The code that runs this automation
import time
from clickruntime import on_trigger, credentials, http, ai, state
CHAT_ID = "123456789"
STAGE = "presentationscheduled"
def hs(method, path, **kw):
r = http.request(method, f"https://api.hubapi.com{path}", headers={"Authorization": f"Bearer {credentials.connection('hubspot', 'work')}"}, **kw)
return r.raise_for_status() or (r.json() if r.content else {})
def telegram(text, chat_id=CHAT_ID):
http.post(f"https://api.telegram.org/bot{credentials.secret('TELEGRAM_BOT_TOKEN')}/sendMessage", json={"chat_id": chat_id, "text": text}).raise_for_status()
@on_trigger
def run(event):
deals = hs("POST", "/crm/v3/objects/deals/search", json={"filterGroups": [{"filters": [{"propertyName": "dealstage", "operator": "EQ", "value": STAGE}]}],
"properties": ["dealname", "amount", "hs_date_entered_" + STAGE], "limit": 30})["results"]
sent = state.get("sent") or {}
now = time.time()
due = [d for d in deals if now - sent.get(d["id"], 0) > 3 * 86400]
if not due:
return {"suggested": 0}
lines = []
for d in due:
p = d["properties"]
entered = p.get("hs_date_entered_" + STAGE) or ""
text = ai.generate(f"Write a friendly 2-sentence follow-up to a prospect about our proposal for {p['dealname']} "
f"(value {p.get('amount')}, proposal sent {entered[:10]}). No subject line.", max_output_tokens=120).text.strip()
lines.append(f"{p['dealname']} ({p.get('amount') or 'no amount'}):\n{text}")
sent[d["id"]] = now
telegram("Follow-ups for today\n\n" + "\n\n".join(lines))
state.set("sent", sent)
return {"suggested": len(due)}FAQ
Common questions
Which deals are included?
How often is the same deal suggested?
Does it send anything to the customer?
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
Send lead details to your Telegram bot and save them in HubSpot
Forward or type a lead's details to your Telegram bot and they're saved as a HubSpot contact, with a link sent back to you.
See how it worksAdd new customers to HubSpot and get a Telegram alert
Every new sign-up or sale is added to HubSpot as a contact and you get a Telegram message straight away.
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 “Get AI follow-up suggestions for your deals on Telegram” from your assistant
Copy the prompt above, or connect your assistant first. Free plan, no credit card.