Solution · Multi channel routing
One workspace. Many channels. Zero overlap.
The legacy engager had four hardcoded Telegram chats. The SaaS engager has unlimited. Subscribe each one to a tailored slice of events. The customer success channel sees revenue. The on call channel does not.
Three bots, three audiences
The on call bot. The leadership bot. The GitHub bot.
Add three Telegram bots in Channels. Subscribe the on call bot to outage and recovery and SSL expiry. Subscribe the leadership bot to weekly status and revenue digests. Subscribe the GitHub bot to repo events.
Engager fans out exactly the right slice to each. The on call bot never sees a revenue email. The GitHub bot never sees an outage page.
engager.rookhq.com / @realm / channels
Channels
4
Enabled
3
Failed test
1
Ops bot
AllBot ending …Df1Q · chat -1001234567
On call only
Alerts onlyBot ending …Hf2X · chat -1009876543
ops@team.rookhq.com
Reports onlyResend → ops@…, legal@…
GitHub admin chat
GitHub onlyBot ending …Kp9R · chat -1005556677
Email goes to lists
Add a recipient list, not a single address.
Email channels accept a comma separated list. ops, legal, finance, customer success · pick the recipient mix per channel.
Reports fan out through the same Resend integration. No SMTP, no per inbox config, no missing DKIM.
Routing pipeline
Event fires
alert.outage.down
Mute window
in future? drop
Subscribed kinds
in channel list?
Active days
in channel TZ
Quiet hours
critical only
Send
Telegram · Email · Slack
Channel kinds
Three transports, one routing model.
Telegram
Bot token plus chat ID. Add as many bots as your workspace needs. Each bot gets its own routing config.
Resend backed. From address plus recipient list per channel. restrained template across every report kind.
Slack
Incoming webhook URL. Pick the channel in Slack. Engager never asks for a bot token.
How a notification gets routed
Five filters, evaluated in order.
Test before save
Every channel ships with a Send test button. The engager hits Telegram or Resend with the stored secret, decrypted just in time.
Disable, do not delete
Pause a channel during a vendor migration. Re enable when ready. The history travels with it.
Audit row per fanout
Every send is recorded with a timestamp and the result. Replay a failed branch without resending the rest.