Every 5 min + daily
Monitor your sites and SSL certificates with Telegram alerts
Your websites are checked every 5 minutes and their certificates daily, and you hear on Telegram and by email when something is wrong.
- Runs
- Every 5 min + daily
- Apps
- Gmail, Telegram
- AI
- Not needed
- Access
- Telegram bot token; Gmail gmail.send
Send this to your assistant
Create a ClickRuntime automation: every 5 minutes check my websites, once a day check when their SSL certificates expire, and alert me on Telegram and by email when a site is down or a certificate expires within 14 days.
First time? Adding ClickRuntime to your assistant takes about two minutes.
Why use it
Why teams use this automation
A web developer runs a handful of client sites on different hosts. One morning a client calls because their shop shows a browser security warning: the certificate expired over the weekend and the automatic renewal had quietly failed. Another site was down for two hours the week before and nobody noticed.
Checking that each site responds and that its certificate is not about to expire catches the two most common ways a small website breaks. Freelancers, agencies and small businesses use it to hear about problems on their phone before customers do.
What you get out of it
Alerts reach you wherever you are
A Telegram message arrives on your phone within minutes, and the email gives you a record to forward to the host or client.
Expiring certificates are caught early
A warning two weeks before expiry leaves time to fix a failed renewal before visitors see a security warning.
Downtime is noticed in minutes
Checks every 5 minutes mean an outage is spotted quickly instead of when a customer complains.
Messages only when something changes
You are alerted when a site goes down and when it recovers, not on every check, so alerts stay worth reading.
How it works
What happens, step by step
Every 5 minutes ClickRuntime visits each of your websites and checks that it responds.
Once a day it also checks when each site's security certificate expires.
It only alerts when a site's status changes, so you are not messaged on every check.
Problems and recoveries are sent to your Telegram chat and to your email.
Before it runs live
- Connect Google through your own Google app (a one-time, 10-minute setup), so it works with your own Gmail
- 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
- Add an AI step, for example to summarize, sort or draft a reply
- Add another app, for example also send it to Slack
- Combine it with other Gmail and Telegram steps into one automation
Under the hood
The code that runs this automation
import socket, ssl
from datetime import datetime, timezone
from clickruntime import on_trigger, credentials, http, state, notify
SITES = ["shop.example.com", "www.example.org"]
CHAT_ID = "your-chat-id"
def alert(text):
http.post(f"https://api.telegram.org/bot{credentials.secret('TELEGRAM_BOT_TOKEN')}/sendMessage", json={"chat_id": CHAT_ID, "text": text})
notify.email_me(text[:200], text)
@on_trigger
def run(event):
status = state.get("status") or {}
for host in SITES:
try:
up = http.get(f"https://{host}", timeout=10).status_code < 500
except Exception:
up = False
if host in status and status[host] != up:
alert(f"{host} is {'back up' if up else 'DOWN'}")
status[host] = up
today = datetime.now(timezone.utc).date().isoformat()
if state.get("ssl_checked") != today:
for host in SITES:
with ssl.create_default_context().wrap_socket(socket.create_connection((host, 443), timeout=10), server_hostname=host) as s:
expires = datetime.strptime(s.getpeercert()["notAfter"], "%b %d %H:%M:%S %Y %Z").replace(tzinfo=timezone.utc)
days = (expires - datetime.now(timezone.utc)).days
if days <= 14:
alert(f"SSL certificate for {host} expires in {days} days")
state.set("ssl_checked", today)
state.set("status", status)
return {"checked": len(SITES)}FAQ
Common questions
How early am I warned about a certificate?
What counts as a site being down?
Do I need my own Telegram bot?
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
Get a morning newsletter digest on Telegram
Yesterday's newsletters arrive as one short digest on Telegram at 7am, as text or a voice message.
See how it worksGet new videos from your favourite YouTube channels with AI summaries
New videos from the channels you follow arrive on Telegram and by email, each with a short summary so you know which to watch.
See how it worksClear out old promotional emails every night
Old promotions that are truly junk move to trash each night, and you get a short Telegram report of what went.
See how it worksKeep exploring
Set up “Monitor your sites and SSL certificates with Telegram alerts” from your assistant
Copy the prompt above, or connect your assistant first. Free plan, no credit card.