Order Notifications
TimberCloud keeps your team and customers informed with a comprehensive notification system. Notifications are sent automatically when key order events occur, through multiple channels based on user preferences.
Notification Channels
TimberCloud supports three notification channels:
| Channel | Description | Use Case |
|---|---|---|
| In-App | Bell icon alerts in the Admin Panel | Real-time awareness while working |
| Templated emails to user inboxes | Detailed information, offline access | |
| SMS | Text messages to mobile phones | Urgent alerts, on-the-go updates |
Each user can configure their preferences for each channel and notification type.
Notification Events
Order Lifecycle Notifications
These notifications are triggered automatically when order events occur:
| Event | Notification Message | Recipients |
|---|---|---|
| Quote Created | "Quote #123 was created" | Company users, assigned sales rep |
| Order Created | "Order #123 was created" | Company users, customer |
| Quote Accepted | "Quote #123 was accepted" | Company users, sales rep |
| Order in Production | "Order #123 is in production" | Customer, relevant staff |
| Order in Inspection | "Order #123 is in inspection" | QC team, customer |
| Ready to Ship | "Order #123 is ready to ship" | Shipping team, customer |
| Order Shipped | "Order #123 was shipped" | Customer, sales rep |
| Order Delivered | "Order #123 was delivered" | Customer, company users |
| Order Canceled | "Order #123 was canceled" | Customer, company users |
Payment Notifications
| Event | Recipients | Contains |
|---|---|---|
| Payment Received | Customer, accounting | Amount, method, balance |
| Payment Pending | Customer | Request to confirm payment |
| Refund Processed | Customer | Refund amount, method |
Who Receives Notifications
Notification Recipients
When an order event occurs, notifications are sent to:
- Customer Users — All users linked to the customer profile
- Company Users — Based on role and settings:
- Admins — All order notifications (unless disabled)
- Sales Reps — Only for their assigned customers' orders
- Production Staff — Based on notification preferences
- Shipping Staff — Shipping-related events only
Sales Rep Filtering
Sales representatives only receive notifications for:
- Orders assigned to them directly
- Their customers' orders (via sales_rep_instance)
This prevents notification overload and keeps focus on relevant orders.
Real-Time Delivery
Socket-Based Notifications
In-app notifications are delivered instantly via WebSocket connections:
- Event Occurs — Order status changes, payment received, etc.
- Notification Created — Record stored in database
- Socket Emission — Pushed to all connected clients
- UI Update — Bell icon shows new notification count
- Notification Panel — User can view and dismiss notifications
How Socket Delivery Works
Server: Order status changed to "Shipped"
│
├─▸ Create notification record in database
│
├─▸ Find all connected sockets for recipient users
│
├─▸ Emit "notification" event to each socket
│
└─▸ Client receives and displays notificationReal-Time Updates to Storefront
Customer-facing notifications also flow to the embedded storefront:
- Order status changes update instantly
- Customers see real-time order tracking
- No page refresh required
Configuring Notifications
User Notification Settings
Each user configures their own notification preferences:
- Navigate to Settings → Account → Notifications
- For each notification type, toggle:
- In-App — Show in notification bell
- Email — Send to registered email
- SMS — Text to mobile number
Per-Company Settings
Notification preferences are stored per company, allowing users who work with multiple companies to have different settings for each.
Notification Types
Configure notifications for these event categories:
| Type | Events Included |
|---|---|
| quote_created | New quote submitted |
| order_created | New order placed |
| quote_to_order | Quote converted to order |
| order_in_production | Production started |
| order_in_inspection | QC check initiated |
| order_is_ready_to_ship | Ready for shipping |
| order_shipped | Order dispatched |
| order_delivered | Delivery confirmed |
| order_canceled | Order canceled |
Email Notifications
Email Templates
Email notifications use designed templates that include:
- Company branding (logo, colors)
- Order summary and status
- Customer and shipping information
- Action buttons (View Order, Track Shipment)
- Unsubscribe link
Email Content
A typical order notification email contains:
Subject: Order #12345 was created
Hi [Customer Name],
Your order #12345 has been created and is pending review.
Order Summary:
- Product A (qty: 5)
- Product B (qty: 10)
Total: $1,250.00
[View Order Button]
Thank you for your business!
[Company Name]Reply-To Address
Emails are sent from TimberCloud's platform but:
- Reply-to is set to the company's email address
- Customer replies go directly to your company
- Ensures seamless communication
SMS Notifications
Setting Up SMS
To receive SMS notifications:
- Add mobile number to your user profile
- Enable SMS for desired notification types
- Verify your phone number
SMS Content
SMS messages are concise:
TimberCloud: Order #12345 was shipped!
Track at: [tracking link]SMS Limitations
- Limited to text content only
- Shorter messages than email
- Standard carrier rates may apply
In-App Notifications
Notification Bell
The notification bell in the Admin Panel header shows:
- Red badge — Number of unread notifications
- Dropdown panel — List of recent notifications
- Mark as read — Click to dismiss
Notification Panel Contents
Each notification displays:
- Notification message
- Timestamp (relative: "2 hours ago")
- Source user (who triggered it)
- Order link (click to open order)
Managing Notifications
- Mark Individual as Read — Click the notification
- Mark All as Read — Button in notification panel
- Notification History — View older notifications
Seen/Unseen Logic
Notification Marking
Notifications use intelligent seen/unseen logic:
- Initiator sees as "seen" — If you create an order, you don't get an "unread" notification for it
- Others see as "unseen" — Team members get unread notifications
- In-app disabled = seen — If user disabled in-app, marked as seen
Why This Matters
This prevents:
- Getting notified for your own actions
- Notification clutter from your own activity
- Confusion about what needs attention
Notification Flow Example
Here's what happens when a customer places an order via the storefront:
1. Customer completes checkout
│
├─▸ Order created in database (status: "Ordered" or "Quote")
│
├─▸ orderNotification() called with "order_created" type
│
├─▸ Find all associated users:
│ ├─▸ Customer users (linked to customer profile)
│ └─▸ Company users (non-customer roles)
│
├─▸ For each user:
│ │
│ ├─▸ Check notification_settings for this company
│ │
│ ├─▸ If in_app enabled:
│ │ ├─▸ Create notification record
│ │ ├─▸ Emit to user's socket(s)
│ │ └─▸ User sees bell icon update
│ │
│ ├─▸ If email enabled:
│ │ └─▸ Send templated email
│ │
│ └─▸ If SMS enabled:
│ └─▸ Send text message
│
└─▸ Emit order update to company room (storefront real-time)Admin Panel Real-Time Updates
New Order Alerts
When a new order is placed:
- Socket Event —
admin:new-orderemitted - Toast Notification — Brief popup shows "New Order!"
- Order List Update — New order appears at top
- Bell Badge — Count increments
Order Status Updates
When order status changes:
- Socket Event —
admin:order-status-updateemitted - Status Badge — Updates in order list
- Order Detail — Timeline updates
- Dashboard — Production board refreshes
Storefront Real-Time Updates
Customer Portal
Customers see real-time updates in their order portal:
- Status changes update instantly
- Tracking information appears when added
- No page refresh needed
Event Types
| Event | Customer Sees |
|---|---|
status_updated | New status badge |
quote_accepted | Confirmation message |
invoice_created | New invoice available |
notification_sent | Notification in portal |
Troubleshooting
Not Receiving Notifications
If you're not getting notifications:
- Check Settings — Verify notifications are enabled for that type
- Check Channel — Ensure email/SMS is configured
- Check Role — Sales reps only get their customers' notifications
- Check Connection — In-app requires active socket connection
Email Not Arriving
If emails aren't being received:
- Check spam/junk folder
- Verify email address in profile
- Ensure email notifications are enabled
- Check company email configuration
SMS Not Arriving
If SMS messages aren't being received:
- Verify mobile number format (include country code)
- Ensure SMS is enabled for that notification type
- Check carrier isn't blocking messages
- Verify phone number is verified
Too Many Notifications
If you're getting too many notifications:
- Review notification settings
- Disable types you don't need
- Consider using in-app only for less critical events
- Sales reps: Only assigned orders trigger notifications
Best Practices
For Company Admins
- Configure defaults — Set sensible defaults for new users
- Train staff — Ensure everyone understands notification settings
- Monitor delivery — Check that emails are arriving
- Review templates — Customize email templates with branding
For Sales Teams
- Enable order notifications — Stay informed about customer activity
- Use SMS for urgent — Critical orders sent via text
- Check regularly — Don't let notifications pile up
- Respond quickly — Customers expect fast responses
For Customers
- Configure preferences — Set channels that work for you
- Keep contact info current — Ensure email and phone are accurate
- Check order portal — Real-time status available anytime