Send messages and photos, and manage chats and members, through the Telegram Bot API — from any Windmill script, flow or app.
Set up in 3 steps
Create a bot with BotFather
In Telegram, search for BotFather and start a chat. Send /newbot, then follow the prompts to name your bot — BotFather replies with the API token.
Add the resource in Windmill
Open Resources, add a resource of type telegram, and paste the token.
Run your first script
Fork any script below and send a message to a chat your bot has been added to.
Scripts
Building blocks, if none of the projects above fit. Fork one, run it, or call it as a step inside your own flow.
Send a Photo
Get the Number of Members in a Chat
Edit a Text Message
Unpin a Message
Send a Text Message or Reply
Export Chat Invite Link
List Chats
Create Chat Invite Link
Forward a Message
Pin a Message
Kick a Chat Member
Trigger flows from Telegram
Telegram is not only a destination. These inbound paths are supported today.
Bot webhooks
Register a flow's webhook URL with Telegram's setWebhook and every update your bot receives starts a run.
Resource type
The shape of the credential every script on this page expects.
telegram
View raw schema →| Field | Type | Required | What it is |
|---|---|---|---|
| token | string | No | Bot API token |
Questions
Is my token stored on the hub?
Never. It lives only in your own Windmill workspace, encrypted at rest.
How do I find a chat id?
The Bot API has no way to list chats — an id only arrives in an update. Message your bot, then run the list chats script below: it returns the pending updates, each carrying its chat id.
My bot does not see messages in a group
Bots run in privacy mode by default and only receive commands and replies. Send /setprivacy to BotFather to turn it off.