The simplest way to get a message from a script into Telegram: send /start to this Notifine bot, and it gives the chat a webhook URL; anything you POST to that URL arrives as a plain-text message. Free, open source, no token of your own and no account.
Beep Beep is the «simple webhook notifications» bot of Notifine, the open-source Rust project by developer Mehmet Hüseyin Kafadar that also runs GitHub, GitLab and uptime bots. Its README links the bot directly, and the project publishes a public uptime page for its bots.
There is no dashboard and nothing to configure. Send /start in a personal chat, a group or a forum topic, and the bot replies with a URL on webhook.notifine.com for that chat. From then on, a POST request with any text in the body, from a cron job, a backup script, a CI step or a home server, is delivered to the chat as a message. According to the source code, the body is sent as plain text with HTML characters escaped, and an empty body is ignored.
That simplicity sets the limits. There is no formatting, no files, no per-message recipient and no authentication beyond the secrecy of the URL itself: anyone who learns it can post to your chat, so keep it out of public repositories. If you need formatting or a guarantee, create your own bot in BotFather and call the Bot API; for a quick «backup finished» ping, Beep Beep saves you that work.
/startGet the webhook URL for this chatFree
| Criterion | Weight | Points | |
|---|---|---|---|
| Functionality | 25 | 7 / 10 | |
| Reliability & speed | 15 | 8 / 10 | |
| Popularity & trust | 15 | 3 / 10 | |
| Price & free tier | 10 | 10 / 10 | |
| Usability | 10 | 8 / 10 | |
| Safety & privacy | 10 | 6 / 10 | |
| Freshness | 5 | 8 / 10 | |
| Localization | 5 | 10 / 10 | |
| No intrusive ads | 5 | 10 / 10 | |
| Score | 100 | 71.5 |
Send the text as a POST body to the URL the bot gave you, for example curl -d "Backup finished" followed by the URL. The body arrives in the chat as plain text.
Treat it like a password: the bot does not check who sends the request, so anyone with the URL can post to your chat. Keep it in an environment variable, not in a public repository.