Notifications across channels — complete guide
Notification categories, channels, preferences, Telegram, email, push, and Slack setup. Connect, customize, troubleshoot.
Written By Salvatore Sinigaglia
Last updated About 5 hours ago
Notification categories, channels, preferences, Telegram, email, push, and Slack setup. Connect, customize, troubleshoot.
Notifications across channels — complete guide
TL;DR: Wevion delivers alerts across in-app, email, push web/VAPID, Telegram, and Slack. Notification types and UI categories are defined in
apps/backend/src/lib/notification-defaults.ts. ROLE_DEFAULTS matrix per role × type × channel. Telegram + Slack are opt-in setup; in-app + email are role-based defaults.
Table of contents
- Notification categories
- Channels
- Connect Telegram
- Telegram bot commands + digest
- Email notifications
- Customize preferences
- Troubleshoot
- FAQ
- Next steps
Notification categories
Current notification types are verified in notification-defaults.ts:
ACCOUNT_STATUS_CHANGE, ACCOUNT_VERIFICATION_BLOCK, SPEND_CAP_WARNING, CAMPAIGN_DISAPPROVED, ADSET_DISAPPROVED, DELIVERY_ERROR, TOKEN_EXPIRING, PAYMENT_ISSUE, SYNC_COMPLETED, SYNC_FAILED, REPORT_READY, BULK_LAUNCH_COMPLETED, USER_ADDED, RULE_EXECUTED, CREATIVE_JOB, SYSTEM, RULE_ACTION_FAILED, BUDGET_DEPLETED, EXPORT_READY, SUBSCRIPTION_CHANGE, TEAM_MEMBER_REMOVED, KPI_THRESHOLD_ALERT, CREATIVE_FATIGUE, STRATEGIC_PLAN_STEP.
Grouped categories are defined in the same file: campaigns, budget, account, kpi, sync, operations, creative, team, system, strategy.
Channels
The NOTIFICATION_CHANNELS enum has 4 channels (in_app, email, push, telegram); Slack is delivered separately by a policy-gated allowlist, not part of the enum or ROLE_DEFAULTS.
Connect Telegram
/settings → Notifications → Connect Telegram. One-time link token via POST /api/v1/telegram/link → deep_link to bot → /start → telegram_link row created (user_id+chat_id unique).
Bot blocking auto-detection: 403 from Telegram → is_active = false.
Telegram bot commands + digest
5 verified bot commands: /start /status /stats /help /unlink.
Digest configs: daily_digest_enabled + hour, weekly_digest_enabled + day + hour, digest_timezone (IANA). Cron every 15 min (lock 100011) → dedup via telegram_digest_log past 14 days.
Email notifications
Mostly per-event delivery. The one batched exception is the Ad Fatigue email digest (daily/weekly, via creative-fatigue.service.ts cron). Owner fan-out included. Unsubscribe URL per-type.
Customize preferences
Per-user + team-scoped overrides + role defaults (ROLE_DEFAULTS matrix).
Troubleshoot
Common: Telegram silent (bot blocked / preference disabled), email in spam, push expired (410/404 → subscription hard-deleted), Slack token revoked, owner fan-out unwanted, digest skipped, in-app inbox empty.
FAQ
Why don't I get notifications I expect?
Check preferences precedence: team override → user override → role default → catalog default. Notification may be IGNORE'd by policy engine.
What's owner fan-out?
Owners receive notifications for team members' triggering actions (with "Team: [memberName]" prefix). Can disable in preferences.
Mobile push?
NO native mobile app. Web push via VAPID (browser / PWA only).
Email digest?
No general email digest of all notification types — general alerts are per-event. The one batched email is the Ad Fatigue digest (daily/weekly). Use Telegram digest for a broader batched summary.
Mute / snooze?
NOT implemented in notification core (DEFERRED).
Slack default events?
Conservative event set: account.disconnected, account.token_expiring, campaign.publish_failed, rule.action_failed, sync.failed, billing.payment_failed, billing.subscription_expired.
Multiple users, one Telegram bot?
Yes — same bot serves all users via per-user telegram_link rows + per-user preferences.
Bot also for tracker callbacks?
Yes — same bot infrastructure handles both notifications + tracker postback callbacks. Separate workflows.
Next steps
- First-time setup: ntf-103 notification categories → team-116 customize notifications
- Connect Telegram: ntf-104 Telegram connect
- Setup digest: ntf-106 Telegram digest
- Email setup: ntf-107 email notifications
- Stuck: ntf-110 notifications troubleshooting
FAQ
Why don't I get notifications I expect?
Check preferences precedence: team override → user override → role default → catalog default. Notification may be IGNORE'd by policy engine.
What's owner fan-out?
Owners receive notifications for team members' triggering actions (with "Team: [memberName]" prefix). Can disable in preferences.
Mobile push?
NO native mobile app. Web push via VAPID (browser / PWA only).
Email digest?
No general email digest of all notification types — general alerts are per-event. The one batched email is the Ad Fatigue digest (daily/weekly). Use Telegram digest for a broader batched summary.
Mute / snooze?
NOT implemented in notification core (DEFERRED).
Slack default events?
Conservative event set: account.disconnected, account.tokenexpiring, campaign.publishfailed, rule.actionfailed, sync.failed, billing.paymentfailed, billing.subscription_expired.
Multiple users, one Telegram bot?
Yes — same bot serves all users via per-user telegram_link rows + per-user preferences.
Bot also for tracker callbacks?
Yes — same bot infrastructure handles both notifications + tracker postback callbacks. Separate workflows.
Last updated: 2026-05-17