Email Notifications
Quackback sends email notifications to keep users and admins informed. Voters are notified when their requested features ship. Admins get alerts when new feedback arrives. Configure one sending provider (SMTP, Amazon SES, or Resend) and emails send automatically.
Overview
Email notifications cover two audiences:
For end users (voters and authors):
- Status change notifications when a post they voted on or authored changes status
- Comment notifications when someone replies to their post
- Subscription updates for posts they're watching
For admins and team members:
- New feedback alerts when a post is submitted
- Mentions when tagged in a comment
Prerequisites
- Admin access to your Quackback workspace
- Credentials for one sending provider: an SMTP server, Amazon SES, or Resend
Setup
Configure exactly one sending provider with environment variables, then restart Quackback. If more than one provider is configured, the app refuses to start and the log names the conflicting variables. Remove all but one.
Every provider also needs a sender address:
EMAIL_FROM=Quackback <feedback@yourcompany.com>Option 1: SMTP
SMTP works with any email provider: SendGrid, Postmark, Mailgun, Gmail, or your own mail server.
EMAIL_SMTP_HOST=smtp.example.com
EMAIL_SMTP_PORT=587
EMAIL_SMTP_USER=your-username
EMAIL_SMTP_PASS=your-password
# For port 465 (implicit TLS):
# EMAIL_SMTP_SECURE=trueCommon provider settings:
| Provider | Host | Port |
|---|---|---|
| SendGrid | smtp.sendgrid.net | 587 |
| Postmark | smtp.postmarkapp.com | 587 |
| Mailgun | smtp.mailgun.org | 587 |
| Gmail | smtp.gmail.com | 587 |
Option 2: Amazon SES
Send through the SES API. All three variables are required. An IAM user with ses:SendEmail is enough.
EMAIL_SES_ACCESS_KEY_ID=AKIA...
EMAIL_SES_SECRET_ACCESS_KEY=...
EMAIL_SES_REGION=us-east-1Set EMAIL_SES_REGION to the region your sending identity is verified in. Identities are regional, so there is no default, and the wrong region rejects every send.
Option 3: Resend
EMAIL_RESEND_API_KEY=re_xxxxxxxxxxxxRESEND_API_KEY is accepted as an alias.
Receiving through Resend while another provider sends. Resend's inbound webhook carries no message body, so Quackback fetches it with your Resend key. To keep a Resend key for receiving only while SMTP or SES sends, set EMAIL_INBOUND_PROVIDER=resend. The key is then used for inbound mail only and doesn't count as a second sending provider. See Inbound email.
If no provider is configured, OTP codes are printed to the server log instead of emailed. All other email notifications are skipped.
How Notifications Work
User Notifications
Users receive email when events occur on posts they're connected to:
| Event | Who gets notified |
|---|---|
| Status change (for example, "Planned" to "Shipped") | All voters and the post author |
| New comment on a post | Post author and users watching the post |
| Admin reply to a post | Post author |
Users can unsubscribe from individual posts or all notifications from their account settings.
Admin Notifications
Admins receive email for workspace-level events:
| Event | Who gets notified |
|---|---|
| New post submitted | Admins with new-post alerts enabled |
| @mention in a comment | The mentioned admin |
Configure admin notification preferences in Admin → Settings → Notifications.
Authentication Emails
Quackback uses email for passwordless authentication:
- OTP codes: six-digit codes sent when a user signs in with email
- Magic links: one-click sign-in links (when enabled)
These are sent regardless of notification preferences.
Configuration
Sender Identity
The EMAIL_FROM address appears in the "From" field of all emails. Use a domain you own and have configured with SPF, DKIM, and DMARC records. This improves deliverability and prevents emails from landing in spam.
Use a subdomain like feedback@mail.yourcompany.com to separate feedback notifications from your primary email domain's reputation.
Custom Branding
Emails automatically use your workspace branding:
- Logo: displayed in the email header
- Workspace name: used in email subjects and footers
- Accent color: applied to buttons and links
Configure branding in Admin → Settings → Branding.
Deliverability
To ensure emails reach inboxes:
- Set up SPF: add your email provider to your domain's SPF record
- Enable DKIM: sign outgoing emails with your domain's DKIM key
- Configure DMARC: set a DMARC policy for your sending domain
- Use a dedicated sending domain: avoid sharing reputation with marketing emails
Troubleshooting
Emails Not Sending
- Check that one provider is configured:
EMAIL_SMTP_HOST, the threeEMAIL_SES_*variables, orEMAIL_RESEND_API_KEY, plusEMAIL_FROM - Review server logs for connection or authentication errors
- Verify the SMTP port is not blocked by your hosting provider
- For SES, confirm
EMAIL_SES_REGIONmatches the region your sending identity is verified in
App refuses to start: more than one email provider
The log lists each configured provider and its variables. Remove all but one. If the extra one is a Resend key kept for inbound mail, set EMAIL_INBOUND_PROVIDER=resend.
Emails Going to Spam
- Verify SPF, DKIM, and DMARC records for your sending domain
- Avoid using free email providers (gmail.com, outlook.com) as the
EMAIL_FROMaddress - Check your sender reputation with mail-tester.com
Users Not Receiving Notifications
- Check the user's notification preferences in their account settings
- Verify they haven't unsubscribed from the post
- Check the admin inbox for delivery errors
Next Steps
- Slack Integration - Real-time Slack notifications
- Discord Integration - Discord channel notifications
- Webhooks - Build custom notification pipelines