Customer Notifications
What customers receive, when, and how to manage their preferences.
Channels
| Channel | Always on? | Configured by |
|---|---|---|
| Yes (defaults) | Customer can disable per-trigger | |
| In-app toast / badge | Yes (when on the site) | Always on |
| Push | Optional | Customer enables Firebase push |
| SMS | Optional | Customer adds phone via Twilio |
Notification preferences page
My Account → Notification Preferences — customers tick / untick each notification.
| Trigger | Push | SMS | |
|---|---|---|---|
| Bid placed (your bid) | yes | yes | no |
| Outbid | yes | yes | optional |
| Auction starting soon (watching) | yes | yes | no |
| Auction ending soon (active bid) | yes | yes | yes |
| Auction won | yes | yes | yes |
| Auction lost | optional | no | no |
| Payment reminder | yes | no | yes |
| Payment confirmation | yes | no | no |
| Watchlist activity | yes | optional | no |
| Wallet credited | yes | no | no |
| Wallet debited (auction win) | yes | no | no |
| Withdrawal status | yes | no | optional |
| Direct message received | yes | yes | no |
| New auction from followed seller | yes | optional | no |
Default mix is friendly — mostly email with select push / SMS for time-sensitive events.
Email notifications
Bid placed (you bid)
Subject: "Bid placed — {auction title}" When: Every time you successfully place a bid Body: confirms amount + auction details + link
Outbid
Subject: "You've been outbid on {auction title}" When: Another bidder beats your bid Body: new high amount + one-click rebid button + link
Auction won
Subject: "🎉 You won {auction title}!" When: Auction closes with you as winner Body: winning amount + payment instructions + link to checkout
Auction lost
Subject: "Auction ended — {auction title}" When: Auction closes and you're not the winner Body: winning amount + similar lots + watchlist suggestion
Payment reminder
Subject: "Action needed: pay for {auction title}" When: N hours after win (if unpaid; default 24) Body: payment link + deadline + consequences (relist if not paid)
Watchlist activity
Subject: "Activity on a lot you're watching" When: Configurable triggers — auction starting, first bid, ending soon Body: auction state + link
In-app notifications
While the customer is browsing the site, in-app notifications appear as:
| Format | When |
|---|---|
| Toast (auto-dismiss) | Outbid, ending soon, watchlist activity |
| Persistent badge | Unread message count, won-auctions awaiting payment |
| Modal | Auction won, urgent action needed |
Toasts dismiss automatically after 5 seconds; can be clicked to open the source.
The bell icon in the site header shows the unread count. Clicking opens the notification drawer.
Push notifications
If Firebase is configured and the user has granted push permission:
| Trigger | Push? |
|---|---|
| Outbid | yes (instant) |
| Auction ending soon (5 min) | yes |
| Auction won | yes |
| Direct message | yes |
User opts in via:
- Visit the site
- Browser shows "Enable notifications?"
- Click Allow
- Token saved; pushes route via Firebase
SMS notifications
If Twilio is configured and the user has added a phone number:
| Trigger | SMS? |
|---|---|
| Outbid (final hour) | yes |
| Auction won | yes |
| Payment reminder | yes |
| Withdrawal paid | optional |
| OTP for wallet transfer | yes (always) |
User adds phone via:
My Account → Account details → Phone number.
Phone must be E.164 format (e.g. +15551234567). The plugin sends an OTP to verify ownership before saving.
Unsubscribe links
Every email includes an Unsubscribe link for that specific notification type. Clicking:
- Toggles that notification off in the user's preferences
- Confirms with a one-click landing page
- They can re-enable in Notification Preferences later
Bulk-unsubscribe (all auction emails) is available via a single link.
Snooze
Customers can Snooze all notifications for a period (1 hour / 1 day / 1 week / until I un-snooze). Useful for vacations.
Snoozed notifications are queued and delivered after the snooze ends — except time-sensitive ones (outbid, won) which are still delivered immediately.
Email digest
For low-priority notifications, customers can opt into a daily digest instead of individual emails:
| Setting | Effect |
|---|---|
| Digest enabled | Bundles non-urgent notifications |
| Digest send time | Customer's preferred hour (UTC) |
| Digest frequency | Daily / Weekly |
Time-sensitive notifications (outbid, won, ending soon) are always sent individually regardless of digest setting.
Privacy
- Email is required for any notifications
- Phone is opt-in only
- Push token is browser-stored; expires per Firebase
- Unsubscribe history is logged for compliance (GDPR)
GDPR exporter includes notification preferences.
