Collects as they arrive, acts daily
Run a giveaway for your channel subscribers
Only real subscribers can enter, and a random winner is announced on the day you choose.
- Runs
- Collects as they arrive, acts daily
- Apps
- Telegram
- AI
- Not needed
- Access
- bot is channel admin
Send this to your assistant
Create a ClickRuntime automation: when people send 'join' to my Telegram bot, check they're subscribed to my channel and add them to the draw. Every Friday at 6pm, pick a random winner and announce it in the channel.
First time? Adding ClickRuntime to your assistant takes about two minutes.
Why use it
Why teams use this automation
A creator runs a giveaway on a Telegram channel with the rule that you must be subscribed to enter. Entrants send a message to the bot, but verifying each one by hand is tedious, and some people claim to follow when they do not. The draw ends up either unfair, because cheaters slipped in, or delayed, because someone has to check a hundred names. Both problems cost you credibility with your own audience.
When someone messages the bot, ClickRuntime calls getChatMember to confirm the person is subscribed to your channel and stores valid entrants. On Friday it picks one at random, announces the winner and confirms the entry count. Verification and the draw happen without anyone watching a list. A winner is named without you opening a spreadsheet.
It suits creators, shops and communities who run regular promotions on Telegram.
What you get out of it
Only real subscribers can win
The check happens when the person enters, using Telegram's own membership data. That keeps the rules fair and protects the giveaway from people who join and leave, or never join.
The draw is demonstrably random
A random pick from the stored entrants is easy to explain and defend. Participants trust a giveaway more when the process is clear, and disputes are less likely. Followers can see the process is not rigged in anyone's favor.
Entry takes seconds for participants
Sending one message to a bot is easier than filling a form. Lower friction means more entries, which grows engagement and attention on your channel. Fewer steps for entrants means more people finish them.
The announcement is automatic
The winner is announced at a set time without you remembering to do it. Consistent timing builds a habit among followers who return to see the result each week. A reliable schedule builds anticipation among your followers every week.
You keep an entrant list
Stored entries show who took part and when. That helps if someone asks whether they were included, and gives you a list of engaged followers to thank or reward. It is also a handy list of your most engaged followers.
How it works
What happens, step by step
When someone messages your bot to enter the giveaway, ClickRuntime checks they are subscribed to your Telegram channel.
Subscribers are added to the list of entrants. Everyone else is told to subscribe first.
On Friday, it picks a winner at random from the entrants.
The winner and the number of entries are announced in your channel.
Before it runs live
- Connect Telegram
- Paste your automation's link into the other app's webhook settings
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
- Act only on the items that match your own rules, and skip the rest
- 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 Telegram steps into one automation
Under the hood
The code that runs this automation
import random
from clickruntime import on_event, on_trigger, http, credentials, state
CHANNEL = "@mychannel"
def tg(method, **params):
r = http.post(f"https://api.telegram.org/bot{credentials.secret('TELEGRAM_BOT_TOKEN')}/{method}", json=params)
r.raise_for_status()
return r.json()["result"]
@on_event
def join(event):
msg = (event.json or {}).get("message") or {}
if msg.get("text", "").strip().lower() != "join":
return {"joined": False}
user = msg["from"]
status = tg("getChatMember", chat_id=CHANNEL, user_id=user["id"])["status"]
if status not in ("member", "administrator", "creator"):
tg("sendMessage", chat_id=msg["chat"]["id"], text=f"Subscribe to {CHANNEL} first, then send join again.")
return {"joined": False}
entries = state.get("entries") or {}
entries[str(user["id"])] = user.get("first_name", "someone")
state.set("entries", entries)
tg("sendMessage", chat_id=msg["chat"]["id"], text="You're in this week's draw. Good luck!")
return {"joined": True}
@on_trigger
def draw(event):
entries = state.get("entries") or {}
if not entries:
return {"winner": None}
winner = random.choice(list(entries.values()))
tg("sendMessage", chat_id=CHANNEL, text=f"This week's giveaway winner is {winner}! 🎉 ({len(entries)} entries)")
state.set("entries", {})
return {"winner": winner, "entries": len(entries)}FAQ
Common questions
How does it know someone is a subscriber?
Can one person enter more than once?
How are ties or unreachable winners handled?
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
Schedule Telegram channel posts from your bot
Send your bot "/at 18:00" with a post, and ClickRuntime publishes it to your Telegram channel at that time.
See how it worksGet a daily summary of your Telegram group
Each evening you get what the group talked about, without reading every message.
See how it worksRead receipts you photograph
Send your bot a photo of a receipt and get the merchant, date and total back.
See how it worksKeep exploring
Set up “Run a giveaway for your channel subscribers” from your assistant
Copy the prompt above, or connect your assistant first. Free plan, no credit card.