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:
| Notification | Description |
|---|---|
| Comment Replies | When someone replies to your comment |
| Discussion Comments | When someone comments on your discussion |
| Event Comments | When someone comments on your event |
| Feedback | When a moderator gives feedback on your content |
| Mentions | When someone @mentions you in a comment or discussion |
| Issue Updates | When there's activity on a moderation issue you're subscribed to |
| Event Updates | When an event you're attending is modified or canceled |
| Suspension Notices | When your actions are blocked due to suspension |
Setting Up Email
Option 1: Resend (Recommended)
Resend is a modern transactional email service with a generous free tier.
- Create an account at resend.com
- Add and verify your sending domain
- Create an API key
- 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.
- Create an account at sendgrid.com
- Verify your sending domain or single sender
- Create an API key with Mail Send permissions
- Configure environment variables:
EMAIL_PROVIDER=sendgrid
SENDGRID_API_KEY=SG.xxxxxxxxxx
EMAIL_FROM=noreply@your-domain.com
Environment Variables
| Variable | Description |
|---|---|
EMAIL_PROVIDER | resend (default) or sendgrid |
RESEND_API_KEY | Your Resend API key (if using Resend) |
SENDGRID_API_KEY | Your SendGrid API key (if using SendGrid) |
EMAIL_FROM | The sender email address |
SUPPORT_EMAIL | Email 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:
- User creates a comment
- Neo4j CDC triggers a
commentCreatedevent - Backend service receives the event
- Service queries for full comment context
- Determines notification recipients
- 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:
| Setting | Default | Description |
|---|---|---|
notifyOnReplyToCommentByDefault | true | Notify when someone replies to my comments |
notifyOnReplyToDiscussionByDefault | true | Notify when someone comments on my discussions |
notifyOnReplyToEventByDefault | true | Notify when someone comments on my events |
notifyWhenTagged | true | Notify when @mentioned |
notifyOnSubscribedIssueUpdates | true | Notify on subscribed issue activity |
notifyOnFeedback | true | Notify when receiving moderator feedback |
notifyOnSuspensionBlocks | true | Notify when actions are blocked by suspension |
Notification Bundling
To prevent notification spam, users can enable bundling:
| Setting | Description |
|---|---|
notificationBundleEnabled | Enable/disable notification bundling |
notificationBundleInterval | How often to send bundled notifications |
Troubleshooting
Emails Not Sending
- Verify API key is correct
- Check that
EMAIL_FROMdomain is verified with your provider - Check backend logs for error messages
- Verify the email provider service is not experiencing outages
Emails Going to Spam
- Configure SPF, DKIM, and DMARC records for your domain
- Use a consistent
EMAIL_FROMaddress - Avoid spam trigger words in notification content
- Build sender reputation by starting with low volume
Missing Notifications
- Check user's notification preferences
- Verify the notification service is running
- Check Neo4j CDC is enabled and working
- Review backend logs for notification creation errors
Testing
During development, you can:
- Use Resend's test mode (emails go to dashboard only)
- Set up a test email account
- Check backend logs for notification creation
- Verify in-app notifications appear in the user's notification list