Wire @DigitalBulldogs_bot (or any bot) to a new channel and prove it works before you trust it. This validates the token, auto-fixes the -100 chat-ID gotcha, and sends a real test ping. If it goes green, it's wired correctly — no more silent failures.
The -100 prefix is the #1 killer. A channel/supergroup ID must start with -100. Without it, Telegram returns chat not found — and because the alert code is fire-and-forget, that error gets swallowed and the bot looks fine while sending nothing.
| Chat type | Format | Example |
|---|---|---|
| Channel / Supergroup | prefix -100 | -1003913718634 |
| Basic group | negative, no -100 | -123456789 |
| Direct message | positive, no prefix | 123456789 |
The other things that bite:
One bot serves many channels — reuse @DigitalBulldogs_bot with a different chat ID per channel. You don't need a new token each time.
Forum groups (Topics): to post into a specific topic, the send needs a message_thread_id — that's the topic ID. Paste the topic's t.me/c/… link at the top and it's filled for you; without it the ping lands in the group's General topic. In code, the alert sender reads TELEGRAM_THREAD_ID.
Deeper reference for developers lives in the repo at docs/telegram-bot-playbook.md.