Skip to main content

Email Notifications

Multiforum supports email notifications to keep users informed about activity on their content. The platform supports two email providers: Resend (default) and SendGrid.

Notification Types

Users receive email notifications for:

NotificationDescription
Comment RepliesWhen someone replies to your comment
Discussion CommentsWhen someone comments on your discussion
Event CommentsWhen someone comments on your event
FeedbackWhen a moderator gives feedback on your content
MentionsWhen someone @mentions you in a comment or discussion
Issue UpdatesWhen there's activity on a moderation issue you're subscribed to
Event UpdatesWhen an event you're attending is modified or canceled
Suspension NoticesWhen your actions are blocked due to suspension

Setting Up Email

Resend is a modern transactional email service with a generous free tier.

  1. Create an account at resend.com
  2. Add and verify your sending domain
  3. Create an API key
  4. Configure environment variables:
EMAIL_PROVIDER=resend
RESEND_API_KEY=re_xxxxxxxxxx
EMAIL_FROM=noreply@your-domain.com

Option 2: SendGrid

SendGrid is a widely-used email service with robust deliverability.

  1. Create an account at sendgrid.com
  2. Verify your sending domain or single sender
  3. Create an API key with Mail Send permissions
  4. Configure environment variables:
EMAIL_PROVIDER=sendgrid
SENDGRID_API_KEY=SG.xxxxxxxxxx
EMAIL_FROM=noreply@your-domain.com

Environment Variables

VariableDescription
EMAIL_PROVIDERresend (default) or sendgrid
RESEND_API_KEYYour Resend API key (if using Resend)
SENDGRID_API_KEYYour SendGrid API key (if using SendGrid)
EMAIL_FROMThe sender email address
SUPPORT_EMAILEmail address for support-related notifications

How Notifications Work

Real-Time Comment Notifications

The notification system uses Neo4j's Change Data Capture (CDC) to detect new comments in real-time:

  1. User creates a comment
  2. Neo4j CDC triggers a commentCreated event
  3. Backend service receives the event
  4. Service queries for full comment context
  5. Determines notification recipients
  6. Sends both email and in-app notifications

This approach ensures:

  • No events are missed during high load
  • Fast API responses (notifications are asynchronous)
  • Automatic recovery from temporary failures

Notification Content

Each notification includes:

  • Who created the content
  • What they commented on or did
  • A snippet of the content
  • A direct link (permalink) to view it

User Settings

Users can control their notification preferences in Account Settings:

SettingDefaultDescription
notifyOnReplyToCommentByDefaulttrueNotify when someone replies to my comments
notifyOnReplyToDiscussionByDefaulttrueNotify when someone comments on my discussions
notifyOnReplyToEventByDefaulttrueNotify when someone comments on my events
notifyWhenTaggedtrueNotify when @mentioned
notifyOnSubscribedIssueUpdatestrueNotify on subscribed issue activity
notifyOnFeedbacktrueNotify when receiving moderator feedback
notifyOnSuspensionBlockstrueNotify when actions are blocked by suspension

Notification Bundling

To prevent notification spam, users can enable bundling:

SettingDescription
notificationBundleEnabledEnable/disable notification bundling
notificationBundleIntervalHow often to send bundled notifications

Troubleshooting

Emails Not Sending

  1. Verify API key is correct
  2. Check that EMAIL_FROM domain is verified with your provider
  3. Check backend logs for error messages
  4. Verify the email provider service is not experiencing outages

Emails Going to Spam

  1. Configure SPF, DKIM, and DMARC records for your domain
  2. Use a consistent EMAIL_FROM address
  3. Avoid spam trigger words in notification content
  4. Build sender reputation by starting with low volume

Missing Notifications

  1. Check user's notification preferences
  2. Verify the notification service is running
  3. Check Neo4j CDC is enabled and working
  4. Review backend logs for notification creation errors

Testing

During development, you can:

  1. Use Resend's test mode (emails go to dashboard only)
  2. Set up a test email account
  3. Check backend logs for notification creation
  4. Verify in-app notifications appear in the user's notification list