Hacker News new | comments | show | ask | jobs | submit login
Show HN: Push More – Receive Webhook Requests in Telegram (pushmore.io)
53 points by keesj 8 months ago | hide | past | web | favorite | 12 comments

We switched from Slack to Telegram a few months ago for our team communication at BetaList. Some of our website notifications (new signups, certain errors, etc) still were sent to Slack though through a variety of integrations.

I made a simple service that accepts webhook requests and posts them to Telegram. You can interface with the bot directly (@pushmorebot) or add it to a group to have notifications show up there.

You can use it in multiple groups and have different notifications for each.

One caveat right now is that that the webhook URL is visible to anyone in the group so be careful when using it in a public group. (If there's enough interest I'll add some privacy controls.)

Wow, care to elaborate more about the switch from Slack to Telegram? I've been thinking of doing the same with my team, and this webhook feature was exactly what I was going to build. Thanks for releasing this.

We're only a 2-(wo)man team and already on Telegram so it was a pretty easy switch. We also didn't have too many integrations and the ones we did are now migrated with Push More.

This kind of feature can easily be implemented by oneself as we described here: https://www.curry-software.com/en/blog/telegram_unit_fail/

No need for an external service and dependency!

Also this approach allows very simple integration into code. I.e. in rust:

    pub fn telegram(msg: &str) {
        use std::process::Command;

        if let Err(e) = Command::new("telegram").arg(msg).status() {
            println!("Error occured while calling the telegram command! {:?}", e);

Absolutely. Their API as well as community's convenience wrappers are pretty excellent. Wrote an entire bot in a day (@LiveCoinWatchBot) and that's a testament to the development ease, not really my skills. Definitely the case for considering not depending on anything there, even a library. Let alone 3rd party service. BUT...

There's a case for users without running available endpoints for the hooks. I'd bet those people who also have need for Telegram integration with some 3rd party webhooks are in majority over us.

Haha, I started building something similar using python (not that I like that language, but it seemed like the right tool for what I wanted). Additional features I (partially) added: User verification (click link that's reachable only via company IP), notification categories (users can configure which they want to receive) with attachable priority (sender site), user-configurable nagging (based on category and priority, e.g. for build errors the bot can ask the user for an ack) and user-configurable work hours.

But my boss decided we wouldn't need that, so I stopped working on it. Maybe I can release the code as open source.

Edit: User-configuration was via /command messages for the 1337 kids and clickable buttons for most options (better convenience/less steep learning curve).

I built a quick app with PushMore, to send limited 80 character alerts. It requires a passphrase to send, so that you're not spammed all the time.


Mmmm, I quickly broke it by giving it invalid data:

TypeError: name.split(...)[0] is not a function at /app/server.js:74:37 at Layer.handle [as handle_request] (/rbd/pnpm-volume/649f928c-a1e2-4468-8355-00786f42479e/node_modules/.registry.npmjs.org/express/4.16.3/node_modules/express/lib/router/layer.js:95:5) at next (/rbd/pnpm-volume/649f928c-a1e2-4468-8355-00786f42479e/node_modules/.registry.npmjs.org/express/4.16.3/node_modules/express/lib/router/route.js:137:13) at Route.dispatch (/rbd/pnpm-volume/649f928c-a1e2-4468-8355-00786f42479e/node_modules/.registry.npmjs.org/express/4.16.3/node_modules/express/lib/router/route.js:112:3) at Layer.handle [as handle_request] (/rbd/pnpm-volume/649f928c-a1e2-4468-8355-00786f42479e/node_modules/.registry.npmjs.org/express/4.16.3/node_modules/express/lib/router/layer.js:95:5) at /rbd/pnpm-volume/649f928c-a1e2-4468-8355-00786f42479e/node_modules/.registry.npmjs.org/express/4.16.3/node_modules/express/lib/router/index.js:281:22 at Function.process_params (/rbd/pnpm-volume/649f928c-a1e2-4468-8355-00786f42479e/node_modules/.registry.npmjs.org/express/4.16.3/node_modules/express/lib/router/index.js:335:12) at next (/rbd/pnpm-volume/649f928c-a1e2-4468-8355-00786f42479e/node_modules/.registry.npmjs.org/express/4.16.3/node_modules/express/lib/router/index.js:275:10) at serveStatic (/rbd/pnpm-volume/649f928c-a1e2-4468-8355-00786f42479e/node_modules/.registry.npmjs.org/serve-static/1.13.2/node_modules/serve-static/index.js:75:16) at Layer.handle [as handle_request] (/rbd/pnpm-volume/649f928c-a1e2-4468-8355-00786f42479e/node_modules/.registry.npmjs.org/express/4.16.3/node_modules/express/lib/router/layer.js:95:5)

You really shouldn't echo out stacktraces to the internet ;).

Hahaha yes.

Quick build => Quick break

I love it but it has a few catches.

could you please escape the whitespace? "hello world" returns me "hello+world" . Also I am trying to configure a nice template on zapier, so I'd need it to reckon "newline\n" last but not least, parse URLs please!

EDIT: looks way better if I send data in JSON instead that raw/form

cool I can get the bot to post a PM to me but the website says it also works in group chats..how? no documentation

Invite the bot into the group :) (and send /start to get the webhook URL)

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact