Skip to content

Notifications and Communication ​

Communication is the nervous system of a marketplace β€” notifications keep transactions moving, messaging builds trust between strangers, and getting the balance right means the difference between engagement and annoyance.

Why This Matters ​

  • 🏒 Owner: Communication drives transaction completion rates. Missed notifications mean missed bookings, unanswered inquiries, and lost revenue. But over-notification drives users to mute you entirely.
  • πŸ’» Dev: You'll build the messaging infrastructure, notification delivery pipeline, real-time alert systems, and anti-disintermediation safeguards. This spans email, push, SMS, and in-app channels.
  • πŸ“‹ PM: Notification strategy is a product lever β€” every message is an opportunity to move a transaction forward or re-engage a dormant user. You'll define what gets sent, when, and through which channel.
  • 🎨 Designer: Notification design, inbox UX, message thread layouts, and communication templates shape how users experience your marketplace between visits. This is where relationships form.

The Concept (Simple) ​

Think of marketplace communication like a wedding planner coordinating between the couple, vendors, and venue.

Without the planner, the florist doesn't know when to deliver, the caterer doesn't know the headcount, and the DJ doesn't know the schedule. Chaos. The planner sends the right message to the right person at the right time β€” confirmations, reminders, updates, and alerts β€” so everyone stays coordinated without being overwhelmed.

A marketplace notification system does the same thing. It coordinates buyers and sellers through a transaction lifecycle β€” from initial inquiry to booking confirmation to fulfillment to review request β€” sending the right information at the right time through the right channel.

How It Works (Detailed) ​

Communication Architecture ​

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                NOTIFICATION SYSTEM ARCHITECTURE                   β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚                                                                 β”‚
β”‚  EVENT SOURCE                                                   β”‚
β”‚  (Transaction service, User service, etc.)                      β”‚
β”‚       β”‚                                                         β”‚
β”‚       β”‚ publishes event: "booking.confirmed"                    β”‚
β”‚       β–Ό                                                         β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”              β”‚
β”‚  β”‚          NOTIFICATION ENGINE                  β”‚              β”‚
β”‚  β”‚                                              β”‚              β”‚
β”‚  β”‚  1. Route: Which users need to know?         β”‚              β”‚
β”‚  β”‚  2. Template: What message for each role?    β”‚              β”‚
β”‚  β”‚  3. Channel: Email, push, SMS, or in-app?   β”‚              β”‚
β”‚  β”‚  4. Timing: Immediately, batched, or delayed?β”‚              β”‚
β”‚  β”‚  5. Preferences: Has user opted out?         β”‚              β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜              β”‚
β”‚         β”‚       β”‚       β”‚       β”‚                               β”‚
β”‚         β–Ό       β–Ό       β–Ό       β–Ό                               β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”                       β”‚
β”‚  β”‚ EMAIL  β”‚ β”‚ PUSH β”‚ β”‚ SMS β”‚ β”‚ IN-APP β”‚                       β”‚
β”‚  β”‚        β”‚ β”‚      β”‚ β”‚     β”‚ β”‚ INBOX  β”‚                       β”‚
β”‚  β”‚ SendGridβ”‚ β”‚ APNS β”‚ β”‚Twilioβ”‚ β”‚WebSocketβ”‚                      β”‚
β”‚  β”‚ SES    β”‚ β”‚ FCM  β”‚ β”‚     β”‚ β”‚        β”‚                       β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”˜                       β”‚
β”‚                                                                 β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

The Three Communication Types ​

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚           THREE TYPES OF MARKETPLACE COMMUNICATION       β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚                                                         β”‚
β”‚  1. TRANSACTIONAL NOTIFICATIONS                         β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”       β”‚
β”‚  β”‚  System-generated, triggered by events      β”‚       β”‚
β”‚  β”‚  β€’ Booking confirmed / order placed         β”‚       β”‚
β”‚  β”‚  β€’ Payment received / payout sent           β”‚       β”‚
β”‚  β”‚  β€’ Shipping update / delivery confirmation  β”‚       β”‚
β”‚  β”‚  β€’ Review request after completion          β”‚       β”‚
β”‚  β”‚  Channel: Email + push (critical path)      β”‚       β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜       β”‚
β”‚                                                         β”‚
β”‚  2. PEER-TO-PEER MESSAGING                              β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”       β”‚
β”‚  β”‚  Buyer-seller conversation                  β”‚       β”‚
β”‚  β”‚  β€’ Pre-transaction questions                β”‚       β”‚
β”‚  β”‚  β€’ Coordination during fulfillment          β”‚       β”‚
β”‚  β”‚  β€’ Post-transaction follow-up               β”‚       β”‚
β”‚  β”‚  Channel: In-app inbox + email notification β”‚       β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜       β”‚
β”‚                                                         β”‚
β”‚  3. MARKETING / RE-ENGAGEMENT                           β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”       β”‚
β”‚  β”‚  Platform-initiated, growth-driven          β”‚       β”‚
β”‚  β”‚  β€’ "New listings matching your search"      β”‚       β”‚
β”‚  β”‚  β€’ "Price drop on your wishlist"            β”‚       β”‚
β”‚  β”‚  β€’ "You have unused credits"                β”‚       β”‚
β”‚  β”‚  β€’ Seasonal promotions                      β”‚       β”‚
β”‚  β”‚  Channel: Email + push (respect frequency)  β”‚       β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜       β”‚
β”‚                                                         β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Transactional Notification Map ​

Every marketplace transaction triggers a sequence of notifications to both sides:

EventBuyer NotificationSeller NotificationChannel
Inquiry sent"Your message was sent""New inquiry from [Buyer]"Push + in-app
Booking requested"Request sent, awaiting confirmation""New booking request β€” respond in 24h"Push + email
Booking confirmed"Your booking is confirmed!""You confirmed [Buyer]'s booking"Email + push
Payment captured"Payment of $X processed""Payment of $X received"Email
Reminder"Your booking is tomorrow""Upcoming booking with [Buyer] tomorrow"Push + email
In progress"Your order is being prepared""Time to start [Buyer]'s order"Push
Completed"How was your experience? Leave a review""Transaction complete. Payout in 2 days"Email + push
Review receivedβ€”"[Buyer] left you a 5-star review!"Push + email
Payout sentβ€”"$X has been sent to your bank"Email
Dispute opened"We received your dispute""A dispute has been filed on order #X"Email

Channel Selection Strategy ​

Choose the right channel for the right message:

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚           CHANNEL SELECTION MATRIX                        β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚                                                         β”‚
β”‚                    URGENCY                               β”‚
β”‚              Low          High                          β”‚
β”‚         β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”                     β”‚
β”‚    Low  β”‚            β”‚            β”‚                     β”‚
β”‚  IMPORT β”‚   EMAIL    β”‚   PUSH     β”‚                     β”‚
β”‚  ANCE   β”‚  Weekly    β”‚  Real-time β”‚                     β”‚
β”‚         β”‚  digest    β”‚  alert     β”‚                     β”‚
β”‚         β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€                     β”‚
β”‚    High β”‚            β”‚            β”‚                     β”‚
β”‚         β”‚   EMAIL    β”‚ SMS + PUSH β”‚                     β”‚
β”‚         β”‚  (rich     β”‚  (must not β”‚                     β”‚
β”‚         β”‚   detail)  β”‚   miss)    β”‚                     β”‚
β”‚         β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜                     β”‚
β”‚                                                         β”‚
β”‚  Examples:                                              β”‚
β”‚  β€’ New listing match β†’ Email (low urgency, low import) β”‚
β”‚  β€’ Booking request β†’ Push (high urgency, high import)  β”‚
β”‚  β€’ Payout summary β†’ Email (low urgency, high import)   β”‚
β”‚  β€’ Order arriving β†’ SMS + Push (high urgency, critical)β”‚
β”‚                                                         β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

In-App Messaging System ​

The buyer-seller messaging system is critical for building trust before a transaction:

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚           IN-APP MESSAGING ARCHITECTURE                   β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚                                                         β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”       β”‚
β”‚  β”‚  MESSAGE THREAD                              β”‚       β”‚
β”‚  β”‚                                              β”‚       β”‚
β”‚  β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”       β”‚       β”‚
β”‚  β”‚  β”‚ Buyer: "Is parking available?"   β”‚       β”‚       β”‚
β”‚  β”‚  β”‚ 2:30 PM                          β”‚       β”‚       β”‚
β”‚  β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜       β”‚       β”‚
β”‚  β”‚                                              β”‚       β”‚
β”‚  β”‚       β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”‚       β”‚
β”‚  β”‚       β”‚ Seller: "Yes, free street parkingβ”‚  β”‚       β”‚
β”‚  β”‚       β”‚ and a private driveway."         β”‚  β”‚       β”‚
β”‚  β”‚       β”‚ 2:45 PM                          β”‚  β”‚       β”‚
β”‚  β”‚       β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β”‚       β”‚
β”‚  β”‚                                              β”‚       β”‚
β”‚  β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”       β”‚       β”‚
β”‚  β”‚  β”‚ Buyer: "Great! Booking now."     β”‚       β”‚       β”‚
β”‚  β”‚  β”‚ 2:47 PM                          β”‚       β”‚       β”‚
β”‚  β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜       β”‚       β”‚
β”‚  β”‚                                              β”‚       β”‚
β”‚  β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”       β”‚       β”‚
β”‚  β”‚  β”‚ SYSTEM: Booking confirmed βœ“      β”‚       β”‚       β”‚
β”‚  β”‚  β”‚ 2:48 PM                          β”‚       β”‚       β”‚
β”‚  β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜       β”‚       β”‚
β”‚  β”‚                                              β”‚       β”‚
β”‚  β”‚  [Type a message...            ] [Send]     β”‚       β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜       β”‚
β”‚                                                         β”‚
β”‚  Features:                                              β”‚
β”‚  β€’ Threaded per transaction/listing                    β”‚
β”‚  β€’ System messages injected (confirmations, updates)   β”‚
β”‚  β€’ Quick reply templates for sellers                   β”‚
β”‚  β€’ Photo/file attachment support                       β”‚
β”‚  β€’ Read receipts and typing indicators                 β”‚
β”‚  β€’ Auto-translate for international marketplaces       β”‚
β”‚                                                         β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Preventing Disintermediation ​

Disintermediation is when buyers and sellers exchange contact info to transact off-platform, avoiding your fees:

Risk SignalDetection MethodPrevention
Phone numbers in messagesRegex pattern matchingBlock or flag messages with phone patterns
Email addresses sharedPattern detection + MLMask or warn, allow after booking confirmed
External linksURL detectionBlock non-whitelisted URLs pre-transaction
"Pay me directly"NLP keyword detectionFlag for review, educate on platform benefits
Repeated off-platform termsKeyword + context analysisGentle reminder of platform protections

Important balance: Too aggressive blocking feels hostile and drives users away. Too lenient means revenue leakage. Best practice:

  • Pre-transaction: Moderate messaging β€” prevent contact info sharing
  • Post-transaction: Relax controls β€” they've already transacted on-platform
  • Always: Emphasize why transacting on-platform is better (protection, escrow, reviews, support)

Notification Preferences and Fatigue ​

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚           NOTIFICATION PREFERENCE SYSTEM                  β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚                                                         β”‚
β”‚  Category              Email   Push   SMS               β”‚
β”‚  ─────────────────     ─────   ────   ───               β”‚
β”‚  Booking updates       βœ“ ON    βœ“ ON   βœ“ ON   (locked)  β”‚
β”‚  Payment & payouts     βœ“ ON    βœ“ ON   β—‹ OFF            β”‚
β”‚  Messages              βœ“ ON    βœ“ ON   β—‹ OFF            β”‚
β”‚  Review reminders      βœ“ ON    β—‹ OFF  β—‹ OFF            β”‚
β”‚  Promotions            β—‹ OFF   β—‹ OFF  β—‹ OFF            β”‚
β”‚  New listing alerts    βœ“ ON    β—‹ OFF  β—‹ OFF            β”‚
β”‚  Tips & education      β—‹ OFF   β—‹ OFF  β—‹ OFF            β”‚
β”‚                                                         β”‚
β”‚  Rules:                                                 β”‚
β”‚  β€’ Transaction-critical notifications can't be muted   β”‚
β”‚  β€’ Default to fewer notifications, let users opt in    β”‚
β”‚  β€’ Batch non-urgent notifications into digests         β”‚
β”‚  β€’ Honor quiet hours (no push between 10pm - 8am)     β”‚
β”‚  β€’ Track unsubscribe rate per notification type        β”‚
β”‚                                                         β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Real-Time Notifications for On-Demand Marketplaces ​

On-demand platforms need sub-second notification delivery:

EventLatency TargetChannelTech
New order< 2 secondsPush + sound + vibrationWebSocket + FCM/APNS
Driver assigned< 3 secondsPush + in-app updateWebSocket
Location updatesEvery 5 secondsIn-app mapWebSocket
Order status change< 2 secondsPush + in-appWebSocket + push fallback
Chat message< 1 secondIn-app + push if backgroundedWebSocket + push fallback

In Practice ​

What Good Looks Like: Airbnb's Communication System ​

  • Smart messaging β€” messages are threaded per listing/trip, with system messages (booking status, payment confirmations) injected inline
  • Quick replies β€” hosts get suggested response templates for common questions
  • Translation β€” automatic message translation for cross-language communication
  • Response rate tracking β€” host response rate and time are visible to guests and factor into search ranking
  • Scheduled messages β€” hosts can set up automatic check-in instructions sent the day before arrival

What Good Looks Like: Uber's Real-Time Notifications ​

  • Sub-second matching β€” rider gets push notification within 2 seconds of driver assignment
  • Live map β€” real-time driver location via WebSocket, no polling
  • ETA updates β€” dynamic, adjusting based on traffic every 15 seconds
  • Trip receipt β€” email with full trip details, route map, and fare breakdown sent within 60 seconds of trip end
  • Rating prompt β€” in-app prompt immediately after trip, before the next action

Common Anti-Patterns ​

  • Notification spam β€” sending every possible update via every channel. Users disable notifications and disengage entirely.
  • Generic templates β€” "You have a new notification" instead of "Sarah confirmed your booking for July 12-15."
  • No quiet hours β€” sending push notifications at 3 AM. Implement time-zone-aware delivery windows.
  • Email-only critical alerts β€” relying on email for time-sensitive notifications (new orders, booking requests). Email has low open rates and high latency.
  • Blocking all contact sharing β€” aggressively preventing any off-platform communication, which feels controlling. Focus on pre-transaction, allow post-transaction.
  • No escalation ladder β€” sending the same notification repeatedly instead of escalating channel (in-app β†’ push β†’ SMS β†’ phone call for critical events).
  • Missing system messages β€” not injecting transaction updates into the messaging thread, forcing users to check separate notification screens.

Notification Metrics ​

MetricTargetWhy It Matters
Delivery rate>99% (email), >95% (push)Undelivered notifications = missed transactions
Open rate>40% (push), >25% (email)Low open rate means wrong channel or content
Click-through rate>10% (push), >5% (email)Users should act on notifications
Unsubscribe rate<0.5% per email sendHigh unsubscribe = notification fatigue
Response time<1 hour (messages), <24h (booking requests)Faster response = higher conversion
Notification-to-action rate>20% for transactionalNotifications should drive behavior

Key Takeaways ​

  • Marketplace communication serves three purposes: transactional (move transactions forward), peer-to-peer (build buyer-seller trust), and marketing (re-engage users)
  • Choose notification channel based on urgency and importance: SMS for critical, push for urgent, email for detailed, in-app for everything
  • In-app messaging between buyers and sellers is essential for high-consideration transactions β€” it builds the trust needed to transact with strangers
  • Prevent disintermediation by moderating pre-transaction communication while relaxing controls post-transaction β€” and always emphasize platform benefits over restrictions
  • Default to fewer notifications and let users opt in β€” notification fatigue is a leading cause of app uninstalls and email unsubscribes
  • On-demand marketplaces need sub-second notification delivery via WebSocket with push notification fallback
  • Inject system messages (booking confirmations, payment updates, status changes) into conversation threads so users have one place to track everything
  • Track notification metrics by type and channel β€” delivery rate, open rate, and notification-to-action rate tell you if your communication system is working

Action Items ​

  • ☐ 🏒 Owner: Define your notification philosophy: which messages are mandatory (can't mute) vs optional (user controls)
  • ☐ 🏒 Owner: Set a response time SLA for sellers (e.g., respond to inquiries within 24 hours) and communicate consequences
  • ☐ πŸ’» Dev: Build an event-driven notification engine that routes events to the right users, templates, channels, and timing
  • ☐ πŸ’» Dev: Implement WebSocket-based real-time messaging with push notification fallback for offline users
  • ☐ πŸ“‹ PM: Map every transaction event to its notification β€” who gets notified, what channel, what content, what timing
  • ☐ πŸ“‹ PM: Design a disintermediation strategy that balances revenue protection with user trust β€” don't be heavy-handed
  • ☐ 🎨 Designer: Design a unified inbox that combines peer messages and system notifications in chronological threads per transaction
  • ☐ 🎨 Designer: Create notification preference controls that are easy to find and understand, with sensible defaults that don't overwhelm

Next: Marketplace Metrics That Matter

The Product Builder's Playbook