Real-time event notifications, located all in one place
Keep users aware of events on the web application at any time and any moment
- Roles
- UX Designer · UI Designer
- Duration
- 3 weeks
- Year
- 2020
Adobe Illustrator
Google Docs
Miro
Slack

The problem
I need the information, and I need it now
The system has two main dashboards: Quotes, for sending and receiving price quotes, and Loads, for communication, documents, and tracking. Each dashboard shows multiple loads, runs private chats, and sends quote requests to carriers. Dispatchers had to keep an eye on messages and updates across both, but the only signal was a small blue icon — meaning they had to flip between dashboard pages to find what changed.
The solution
Global notifications
A notification system that surfaces what matters, anywhere in the app. Users can filter the feed to only see the events relevant to their role.
The context
Why timing matters in shipping negotiations
Brokers, shippers, and carriers communicate constantly, especially during price negotiations for lanes (the start and end points of a journey). A shipper might request quotes from 100 carriers and chat with 20 at once. Prices vary by the mile and depend on route difficulty, weather, load type, and fuel surcharges. A missed notification turns into lost money.
The goals
- Cut dispatcher stress by making the system trustworthy
- Deliver load updates fast and accurately
- Shorten the time it takes to resolve issues
- Prevent the delays and misunderstandings that come from missed signals
- Put every event in one place dispatchers can see at a glance
The research
Internal needs, feedback from experts
I ran unstructured interviews with experts, stakeholders, customers, and dispatchers to figure out what the system actually needed to surface.
Highlighting events
Important events from Quotes and Loads in one place
Filtering by type
Messages, status updates, bids, exceptions, attachments
Read / unread
Clear visual differentiation
Centralized actions
Act on an event without navigating away
Chat messages
Never miss a reply during active negotiation
Exceptions & cancellations
Immediate alerts when plans change
Design variations
First explorations
I worked through icon choices, colors, what information each event card needed, and how the elements should sit on the card. Early on, users could not tell read events from unread ones — that was the cue I needed to make the read/unread affordance much stronger.
User feedback: different users have different needs
Feedback on the early concepts made it clear: one feed for everyone wasn't going to work. Dispatchers care about exceptions and messages on active loads. Accountants want balances on completed loads. Other users sit on the quoting side and need RFQ activity. Same notification stream, very different priorities.
The results
Real-time event notifications, located all in one place
- Real-time events from across the system, all in one place
- Faster issue resolution that fed straight into the business
- Dispatchers could multitask without losing the thread
- Far fewer dropped messages between parties
- Per-role filtering kept the feed signal-heavy instead of overwhelming
Explore more case studies
Waco3.ioAI-Powered Proposal Platform
Full-stack SaaS with AI proposal generation, RAG pipeline, LangGraph agents, client analytics, Stripe integration, and session recordings.
ReactZeroZero-Dependency Component Libraries
4 accessible React primitives shipped to npm: combobox (ARIA 1.2), datepicker (WCAG 2.1 AA), animation orchestration, and cell-first data grid. All zero-dependency.
Dispatcher Dashboard Redesign
Cut load-scanning time by 10x with a custom card-based table layout. Research with 5 dispatchers, responsive design.