TrendRadarDocsA PROJECT BYsansansansan's personal projects and softwaresandev.cc
HomeDocumentationCommunityPartnershipsIndividual SupportCredits
  • Start here
    • Choose a deployment
    • No server: GitHub Actions
    • Server / NAS: Docker
    • Try locally: Run with uv
    • Configure content & delivery
  • Data Sources
    • Platform Configuration
    • Self-hosted sources (AI)
    • RSS Feed Configuration
  • Content Filtering
    • Keyword Configuration
    • AI Smart Filtering
  • Push Notifications
    • Push Channels
    • Push Modes
    • Scheduling
  • AI Enhancement
    • AI Analysis & Push
    • AI Translation
    • MCP Chat Analysis
    • MCP Query Guide
  • Data & Operations
    • Storage Configuration
    • Config Editor
    • Publish web reports
    • Architecture
  • More
    • FAQ
  1. Docs
  2. /
  3. Push Notifications
  4. /
  5. Push Channels
PreviousAI Smart FilteringNextPush Modes
© TrendRadar·GPL-3.0 License·Website·GitHub·by sansan

Push Channels

TrendRadar supports 10 push channels, and you can choose one or several to receive pushes at the same time based on your habits. You configure each channel by adding the corresponding Secret under Settings > Secrets and variables > Actions in your GitHub repository.
Things to know
  • Configuring at least one channel is enough to use the push feature
  • You can configure multiple channels at once, and the system pushes to all configured channels in parallel
  • The Secret Name must match the name noted in the docs exactly, and it is case-sensitive
  • Once a Secret is saved you cannot view its original value (a GitHub security mechanism); if you entered it incorrectly, simply update to overwrite it

Channel configuration details

WeCom
Personal WeChat
Feishu
DingTalk
Telegram
Email
ntfy
Bark
Slack
Custom Webhook

WeCom group bot

A WeCom group bot is the simplest and fastest push channel to set up, ideal for teams already using WeCom.
GitHub Secret configuration
Secret nameValue
WEWORK_WEBHOOK_URLWebhook URL of the WeCom group bot
Setup steps on mobile
1
Open the WeCom app and enter the internal group chat that should receive the push
2
Tap the "..." button in the top-right corner
3
Find and tap "Group Bot" (or "Message Push")
4
Tap the "Add" button
5
Set a bot name (e.g. "TrendRadar") and tap "Add"
6
Copy the Webhook URL that is shown
7
Add the copied URL to GitHub Secrets with the name WEWORK_WEBHOOK_URL
Setup steps on desktop
1
Open the WeCom desktop client and enter the internal group chat that should receive the push
2
Click the "..." icon in the top-right corner of the group chat
3
Find the "Group Bot" option and click it
4
Click "Add" and set a bot name (e.g. "TrendRadar")
5
Once created, copy the Webhook URL
6
Add the copied URL to GitHub Secrets with the name WEWORK_WEBHOOK_URL
Tip
The WeCom group bot is the easiest of all push channels to configure, usually done within 2 minutes. Pushed messages support Markdown formatting.

Multi-account push

TrendRadar supports configuring multiple accounts for the same channel, pushing messages to several recipients at once.
How to configure
In the Secret's value, separate multiple URLs or tokens with a semicolon ;:
# 企业微信多群推送
WEWORK_WEBHOOK_URL = https://qyapi.weixin.qq.com/xxx1;https://qyapi.weixin.qq.com/xxx2;https://qyapi.weixin.qq.com/xxx3

# 飞书多群推送
FEISHU_WEBHOOK_URL = https://open.feishu.cn/open-apis/bot/v2/hook/aaa;https://open.feishu.cn/open-apis/bot/v2/hook/bbb
Notes for Telegram multi-account
Telegram requires two Secrets — Token and Chat ID. For multiple accounts, the count and order on both sides must correspond one to one. For example:
TELEGRAM_BOT_TOKEN = token1;token2;token3
TELEGRAM_CHAT_ID = chatid1;chatid2;chatid3
where token1 corresponds to chatid1, token2 to chatid2, and so on.
Handling empty Token slots for ntfy multi-account
If a particular ntfy account doesn't need a Token (using the official free service), just leave the corresponding position empty. For example, if the second of three topics doesn't need a Token:
NTFY_TOKEN = token1;;token3
The empty space between the two middle semicolons means the second topic uses no authentication.
Multiple topics share the same ntfy server URL (NTFY_SERVER_URL accepts only a single value, semicolon separation is not supported).
Generic Webhook multi-account
The Generic Webhook also supports multi-account: separate multiple URLs with semicolons (GENERIC_WEBHOOK_URL), and each URL can have its own payload template (GENERIC_WEBHOOK_TEMPLATE, separated by semicolons; if only one template is provided, all URLs share it).
For example:
GENERIC_WEBHOOK_URL = https://hook1.example.com;https://hook2.example.com
GENERIC_WEBHOOK_TEMPLATE = {"text":"{content}"};{"message":"{content}"}
By default, each channel supports up to 3 accounts.

Configure via config.yaml

The GitHub Secrets approach described above is designed for GitHub Actions deployments. If you use Docker or local deployment, you can fill in channel credentials directly in the notification.channels section of config/config.yaml:
notification:
  enabled: true
  channels:
    feishu:
      webhook_url: "https://open.feishu.cn/open-apis/bot/v2/hook/your-token"

    telegram:
      bot_token: "123456:ABC-DEF..."
      chat_id: "987654321"

    wework:
      webhook_url: "https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=xxx"
      msg_type: "markdown"    # markdown=group bot, text=personal WeChat
Environment variables take priority
If both an environment variable (e.g. FEISHU_WEBHOOK_URL) and the corresponding field in config.yaml are set, the environment variable's value takes precedence. This lets you put defaults in config.yaml and flexibly override them per environment via environment variables.

Test your push

Once configured, you can send a test message to verify that all channels are working:
uv run python -m trendradar --test-notification
This command sends a test message to every configured push channel. Channels with empty credentials are skipped.
Troubleshooting push failures
If you don't receive the test message, check the terminal log output. Common issues include: misspelled Webhook URLs, invalid Telegram Bot Tokens, expired email app passwords, etc. The log will show the specific error.