Email notifications — what you'll receive
Last updated: May 19, 2026
Email notifications — what you'll receive
Wevion sends emails per event (not batched / no digest worker implemented for email). Backed by send-email-notification.worker.ts via emailService.sendNotificationAlert(). Direct user + owner fan-out (if user.owner_id exists). Per-type unsubscribe link in every email points to ${frontendUrl}/settings/personal/notifications?unsubscribe=${notificationType}. Failures non-blocking.
Who is this for
Anyone wondering what email notifications Wevion sends, when, from whom, and how to manage them.
Per-event delivery (no digest)
Each qualifying notification triggers one email. There is no email digest worker — meaning:
No batched daily / weekly email summary
No "10 events combined into one email"
Every alert that passes your preferences → one email
For batched summaries: use Telegram digest (ntf-106).
How delivery works
Notification event triggers in backend (e.g. campaign disapproved)
Policy engine evaluates preferences → if email enabled for this type × user → enqueue
SQS message routed to
send-email-notification.worker.tsWorker calls
emailService.sendNotificationAlert()Email sent via plugin
12.email.ts(typically AWS SES / Mailgun / similar)If
user.owner_idexists: owner also gets email (with implicit "Team: [memberName]" context)
Failure (provider error, invalid address): event recorded; worker doesn't retry indefinitely (typical SQS retry pattern with DLQ).
Email content
Each email includes:
Subject:
[Wevion] {Notification Type}or similarBody: notification message + severity + context
Entity link:
entityUrl = ${frontendUrl}/backoffice/${entity_type}s/${entity_id}— click to open the relevant entity in WevionUnsubscribe link:
${frontendUrl}/settings/personal/notifications?unsubscribe=${notificationType}— clicking unsubscribes from this specific type (not all emails)
Branded HTML template + plain-text fallback.
Owner fan-out
If you're a team member (e.g. mediabuyer) with user.owner_id set to your team owner:
Direct notifications go to you (your email)
AND to your owner (their email)
This lets owners stay informed of team activity. Owner can disable in their own preferences.
If you're an owner: you receive your team members' notifications by default (per ROLE_DEFAULTS for owner role).
Unsubscribe per type
Each email's unsubscribe link is per-notification-type, not all-emails:
${frontendUrl}/settings/personal/notifications?unsubscribe=${notificationType}
Click → opens Wevion settings → toggles email channel off for that specific notification type.
To unsubscribe from ALL emails: visit /settings/personal/notifications directly → toggle email channel off across all types.
Who sends
From address: typically
noreply@wevion.ai(varies per deployment)Reply-to: typically not monitored (use support channels for replies)
Email domain: workspace's configured domain (
apps/backend/src/plugins/external/12.email.ts)
Allowlist noreply@wevion.ai in your email provider's spam filter to ensure delivery.
What notification types email by default
Per ROLE_DEFAULTS matrix in apps/backend/src/lib/notification-defaults.ts:
Role | Email default for |
|---|---|
| Most critical types (account, payment, sync errors) |
| Critical types + team member actions |
| Critical types relevant to admin scope |
| Limited subset; most types email-off by default |
| Limited subset; most types in-app only by default |
| Billing-related only |
| Minimal |
Override via /settings → Notifications.
When email is the right channel
Use email for | Use other channel |
|---|---|
Important events worth archiving | Real-time alerts (use push / telegram) |
Cross-team async coordination | Team chat |
Compliance / audit trail | In-app inbox |
Notifications for users without Telegram | Telegram users → use Telegram |
Email's strengths: durable, searchable, shareable. Weakness: slower than push / Telegram.
Email vs in-app
Channel | Latency | Persistence |
|---|---|---|
in-app | ~30s polling | Persisted in |
Near-instant | Persisted in your inbox forever (until you delete) |
For critical alerts you may want both. For high-frequency types: maybe in-app only to avoid email overload.
Bounces + invalid addresses
If user.email is missing or invalid:
Worker skips email send for that user
Other channels still attempted (in_app, telegram, push)
No bounce-retry mechanism (admin / user fixes email in profile)
Privacy
Email recipients see:
Your
user.email(the address)The notification content (subject + body)
Entity link (opens Wevion — requires login)
Email does NOT include:
Other users' notifications
Cross-team data
Sensitive tokens / secrets (output is sanitized server-side via similar mechanism to Wavo's
sanitizeToolOutput)
Common questions
Why am I getting so many emails?
Your role + per-type defaults trigger emails for many notification types. Disable specific types via /settings → Notifications or click unsubscribe in any email.
Why am I getting emails for someone else's actions?
Owner fan-out: you're an owner; team member actions notify you. Disable in your preferences.
Why didn't I get an email I expected?
Check: preferences (email channel enabled for this type?), spam folder, user.email correct, role default doesn't enable email for this type.
Can I get daily / weekly email digest?
No (not implemented). Use Telegram digest (ntf-106) for batched summaries.
Can I forward Wevion emails to my team?
Yes (standard email forward). But beware: forwarded emails leave Wevion's auth scope; the entityUrl link requires Wevion login.
Can I reply to a notification email?
Typically no (noreply@ address). For support: open ticket via Wevion Help Center or via Wavo (create_support_ticket tool).
Common issues
No emails received: check
user.email, spam folder, allowlistnoreply@wevion.ai, verify preferencesToo many emails: disable specific types via
/settings → Notificationsor unsubscribe link in any emailUnsubscribe link broken: very rare; report to support; meanwhile manage via
/settings → NotificationsdirectlyEmail with sensitive token / secret visible: should not happen (sanitization). If observed: report immediately as security concern
Owner / member separate emails for same event: by design (owner fan-out); owner can disable
Related
Notification categories — what types email by default
Customize notifications — full preference UI
Troubleshooting — diagnose missing / wrong emails