Notify & Telegram setup
Dual-domain notify, plus BotFather bot creation, chat_id lookup, and binding in System Notify / Notifications with a test send.
Adswds Platform can deliver ops alerts (license expiring, domain unhealthy, and similar) over Telegram. Ops and account notify can also use Webhook (URL + optional signing), alone or together with Telegram. Webhook details: Notify & Webhook setup.
Two configs, fully separate
| Ops console System Notify | Console System → Notifications | |
|---|---|---|
| Who | Platform ops | Account admin |
| What you get | Ops-side alerts | Alerts for this account |
| Telegram | Ops bot token + chat ID | This account’s own bot token + chat ID |
| Webhook | Ops receive URL (optional signing) | Account receive URL (optional signing) |
| Language / templates | One system set; System Notify only | Per account; this account’s Notifications only |
| Inactive / expired account | — | Notify for that account is skipped |
The same business event can fan out to both sides. If one side is unconfigured or off, the other can still deliver alone. On the same side you can enable Telegram and Webhook together.
Notify events
- License expiring: advance notice by the configured day count
- Domain unhealthy: domain probe failure or certificate request/renewal failure
- Other events follow the list on each notify page (for example account Daily domain health, ops System health)
Each event has a toggle. Nothing is sent without a usable Telegram or Webhook binding, when the system master switch is off (ops side), or when the account is not in service.
Notify language and message templates
- Notify language (
zh/en/ja, default Chinese): controls message body language; independent of the console UI language - Templates: edit title/body per event;
{{placeholders}}are listed on the page - Edit and Reset to default apply only to the current notify language; switching language does not wipe other languages’ overrides
- Leave blank to use the built-in default for that language
Configure a Telegram bot
Ops and console use the same fields: Bot Token + Chat ID. You may share one bot or create two.
1. Create a bot with BotFather
- In Telegram, open the official @BotFather (verified)
- Send
/newbotand follow the prompts for display name and username (username must end withbot) - On success, BotFather returns an HTTP API token — that is the Bot Token for the product
- Do not post the token in public groups or screenshots; if leaked,
/revokein BotFather and replace it
Bot Token format (must be complete)
- Full form is
numericID:secret, e.g.7123456789:AAH... - Keep both sides of the colon
- Do not add a
botprefix (the product builds the API path) - Do not paste a full
https://api.telegram.org/bot...URL; token only - An incomplete token (only the part after
:) causes Telegram to return HTTP 404 Not Found
Validate the token
curl https://api.telegram.org/bot<TOKEN>/getMe"ok": true in the JSON means the token is valid.
2. Get the Chat ID
Private chat
- Find your bot in Telegram and tap Start (or send any message — the bot must have seen the chat at least once)
- Open in a browser (replace
<BOT_TOKEN>):
https://api.telegram.org/bot<BOT_TOKEN>/getUpdates- Find
"chat":{"id": ...}— that number is the Chat ID (private chats are usually positive)
Group / supergroup
- Add the bot to the target group
- Send a message in the group (if
getUpdatesstays empty, disable Group Privacy for the bot in BotFather, then send again) - Open the same
getUpdatesURL and readchat.id - Group / supergroup IDs are negative; after upgrade to a supergroup they often look like
-100... - Paste the full number (including the minus sign)
After a group upgrades to a supergroup
The old chat id may stop working. Send a message to the bot again, read the new -100... id from getUpdates, and update the product.
If a Telegram webhook was previously set on the bot, getUpdates may return empty — call deleteWebhook first, or obtain the chat ID another reliable way and paste it into the product.
3. Where to paste
Console (this account)
- Sign in as an account admin
- Open System → Notifications
- Under Channels, enable Telegram and paste Bot Token + Chat ID
- Enable the events you need, pick notify language, optionally edit templates
- Save, then Test send and confirm the message arrives
Ops console (platform alerts)
- Sign in to the ops console
- Open System Notify
- Configure master switch, advance days, events, language, and templates
- Under Channels, enable Telegram with the ops Bot Token and Chat ID
- Save and test; live alerts also need scheduled jobs (license scan, domain probes, etc.) deployed
Ops and account token / chat_id live in separate stores; changing one does not overwrite the other.
Common fill mistakes
When test send fails, check these first:
| Mistake | Symptom / cause | Fix |
|---|---|---|
Token missing the numeric ID before : | Only :AAH... was pasted; Telegram returns 404 Not Found | Full numericID:secret, both sides of the colon |
Token has a bot prefix or full API URL | Invalid field; path duplicated or unparsable | BotFather token only — no bot, no URL |
| Group Chat ID missing the minus sign | -100123... written as 100123... | Groups / supergroups need the minus sign |
| Still using the pre-upgrade group ID | Old id invalid after upgrade to supergroup | Read new -100... from getUpdates and update |
Test send and troubleshooting
| Symptom | Check |
|---|---|
| Test send fails | Section above; full token, Chat ID sign, bot has seen the chat; validate with getMe |
| Test OK but no live alerts | Event toggles; ops master switch; account still in service |
| Group gets nothing | Bot in group; group privacy; new supergroup id |
| Wrong copy | Current notify language vs templates; reset clears current language only |
Related: Notify & Webhook setup · System & Account · Console overview · FAQ.