Features

Notifications

Vextro includes a built-in notifications system that delivers in-app alerts to admin users. Notifications are triggered by workflow events, content state changes, and system alerts, and are surfaced through a bell icon in the admin header. By surfacing these events inside the admin panel, editors stay informed about workflow assignments and content changes without switching to email or a separate tool — reducing missed approvals and keeping editorial coordination visible in context. For teams with review cycles or multiple contributors, notifications are the primary mechanism for keeping work moving without requiring manual follow-up.

Notification UI

The notification bell (VextroNotificationBell) renders in the admin header and provides:

  • A bell icon with a numeric badge showing the unread count (capped at 9+ when above 9)
  • A dropdown panel that opens on click and lists the most recent 20 notifications
  • Per-notification actions: click to navigate to a linked document, or dismiss with the delete button
  • A "Mark all as read" button in the panel header when unread notifications exist
  • Keyboard support: Escape closes the panel and returns focus to the bell button

Unread notifications appear with a blue dot indicator and bold title. Read notifications are visually dimmed.

The component polls Convex for updates every 30 seconds by default. The interval is configurable via the pollInterval prop.

Notification types

TypeDescriptionBadge color
workflow_assignedA workflow item has been assigned to the userPrimary
workflow_approvedA workflow submission was approvedSuccess (green)
workflow_rejectedA workflow submission was rejectedDanger (red)
content_publishedA document was publishedSuccess (green)
content_updatedA document was updatedMuted
system_alertA system-level alert requiring attentionWarning (yellow)
mentionThe user was mentioned in a documentPrimary

Choosing the right notification type

Not all notification types are equally useful for every team. Use this guidance to decide which types to enable and when.

Workflow notifications (workflow_assigned, workflow_approved, workflow_rejected) are triggered automatically by the workflow system. Enable these for any collection that uses status-based review. They keep reviewers and authors in the loop without requiring email — the right person is notified at each stage transition without any additional configuration.

Content activity notifications (content_published, content_updated) are most useful for teams where editors need awareness of others' publishing activity — for example, a collection of landing pages where one editor's publish could affect another's work. For low-coordination collections (blog posts, FAQs), these often generate noise without value.

System alerts (system_alert) should be reserved for critical operational events such as quota warnings, sync failures, or auth errors. Use sparingly — alert fatigue is real, and editors who see too many system alerts start ignoring all alerts including important ones.

Mentions (mention) are intended for targeted editorial feedback on a specific document. Use when you need to draw a particular person's attention to content they should review or respond to, rather than broadcasting a change to a team.

Start with workflow notifications only. Add content notifications for high-coordination collections. Avoid enabling all types globally — notification fatigue causes editors to ignore important alerts.

Notification shape

Each notification record has the following fields:

FieldTypeDescription
_idstringUnique notification ID
_creationTimenumberConvex record creation timestamp
userIdstringThe recipient user's ID
typeNotificationTypeOne of the 7 type values above
titlestringShort notification title
messagestringFull notification message body
linkUrlstring?Optional URL to navigate to when clicked
isReadbooleanWhether the notification has been read
createdAtnumberTimestamp the notification was created

Admin module API

Queries

listNotifications — returns the current user's notifications, newest first.

ArgumentTypeDescription
limitnumber?Max notifications to return (default: 20)

Returns Array<AdminNotification>.


getUnreadNotificationCount — returns the number of unread notifications for the current user.

No arguments. Returns number.

Mutations

markNotificationAsRead — marks a single notification as read.

ArgumentTypeDescription
notificationIdstringThe ID of the notification to mark as read

Returns null.


markAllNotificationsAsRead — marks all of the current user's notifications as read.

No arguments. Returns number (count of notifications marked as read).


deleteNotification — permanently deletes a notification.

ArgumentTypeDescription
notificationIdstringThe ID of the notification to delete

Returns null.

When notifications are created

Vextro creates notifications automatically in response to admin events:

TriggerNotification type
A workflow item is assigned to a userworkflow_assigned
A workflow submission is approvedworkflow_approved
A workflow submission is rejectedworkflow_rejected
A document is publishedcontent_published
A document is updatedcontent_updated
A system-level event requires attentionsystem_alert
A user is mentioned in a documentmention

Notifications are scoped to the recipient user. Each user only sees their own notifications.

Previous
Audit Log